DSPIC 30F2010 konfigürasyon bitleri program içerisine nasıl yazılır bilen var mı?

karaapak

Profesyonel Üye
Katılım
2 May 2011
Mesajlar
1,933
Puanları
507
Yaş
36
Arkadaşlar elimde PICKIT2 programlayıcı var bununla yazdığım programı pic e atabilmek için yazdığım program içerisinde konfigürasyon bitleri olmak zorunda ve ben DSPIC 30F2010 için konfigurasyon bitleri nasıl yazılır bulamadım bilen arkadaşlar var ise yardımlarını bekliyorum. Veya PICKIT2 ile bu pic i programlarken başka bir çözüm yolu varsa o da kafi. Yardımcı olmaya çalışan herkese şimdiden teşekkür ederim.
 
Sen yazdığın programın içerisinde konfigürasyonu belirtirsin.. Sonra hexi pickit2 ye atarsın PIC e yüklersin.. Eğer hala konfigürasyon ayarlarını yapmak istiyorsan Configuration diye sağ üstte bi label var programda. Ona tıkla ve açılan formdan hex olarak konfigürasyon değerlerini değiştir.. Kolay gelsin..
 
'Sen yazdığın programın içerisinde konfigürasyonu belirtirsin..' zaten bende bunu sotuyorum mesela 16f877a için konfigurasyon __CONFIG _CP_OFF&_WDT_OFF&_XT_OSC &_PWRTE_ON&_BODEN_OFF&_DEBUG_OFF &_LVP_OFF şeklinde yazılıyor dspic için nasıl yazılıu-yor onu soruyorum. Ayrıca sağ üstteki configuration kısmını denedim ama sonuç alamadım.
 
Şimdi sorduğunuz soru çok cevaplı bir soru. Ayrıca kullandığınız derleyici nedir? Yapmak istediğiniz nedir. Konfigürasyon bilgisi illa şu olacak diye bir kaide yok. Yapacağınız işe bağlı. Bu verdiğiniz Microchip C derleyicisi ile yapılmış bir konfigürasyon..

mesela CCS'de
#FUSES NOBROWNOUT diye bir konfigürasyon yaptık. Burda ben diyorum ki gerilim düşümünde reset atma.
#FUSES NOWDT burada watchdogtimer'i kapat.
#FUSES BORV45 " Gerilim 4.5v 'un altına düşünce chipe reset at.
#FUSES ICSP4 " ICSP pinlerini tayin et..

ama bu yapacağınız ürünlere göre çok farklılık gösterir..
Yani bazı ürünlerde brownout'un sakıncaları varken, bazı ürünlerde çok gereklidir.
vs..

pdf yi bir incele derim..
http://ww1.microchip.com/downloads/en/DeviceDoc/70071E.pdf

birde kullandığınız derleyicide bulunan header dosyalarını ve helplerini..
bu istediklerinizin bir çoğuna erişebilirsiniz..
 
dsPIC işlemcilerde konfigürasyon bitleri serilere göre farklılık gösteriyor. C30 için şöyle bir yol izleyebilirsiniz.

Projenize dahil ettiğiniz "p30F2010.h" dosyasını açın.
Dosyanın alt kısımlarında kesme tanımlarınan sonra konfigürasyon tanımları yer alır. Genellikle ilk olarak da _FOSC veya _OSCSEL ile başlar. Burada tanımlamaları, yazım tarzını ve #define edilmiş seçenekleri görebilirsiniz. Bu şekilde o işlemci için olası tanımlamaların ne olduğu kolayca görülebilir. Seçenekler AND operatörü ile birleştirilerek kullanılır.
Örneğin 2010 için _OSC ile ilgili tanımlamalar şu şekilde
Kod:
extern __attribute__((space(prog))) int _FOSC;
#define _FOSC(x) __attribute__((section("__FOSC.sec"),space(prog))) int _FOSC = (x);

/*
** Only one invocation of FOSC should appear in a project,
** at the top of a C source file (outside of any function).
**
** The following constants can be used to set FOSC.
** Multiple options may be combined, as shown:
**
** _FOSC( OPT1_ON & OPT2_OFF & OPT3_PLL )
**
**   Primary Oscillator Mode:
**     XTL                  XTL
**     HS                   HS
**     XT                   XT
**     XT_PLL4              XT w/PLL 4x
**     XT_PLL8              XT w/PLL 8x
**     XT_PLL16             XT w/PLL 16x
**     ERCIO                ERCIO
**     ERC                  ERC
**     EC                   EC
**     ECIO                 ECIO
**     ECIO_PLL4            ECIO w/ PLL 4x
**     EC_PLL4              ECIO w/ PLL 4x
**     ECIO_PLL8            ECIO w/ PLL 8x
**     EC_PLL8              ECIO w/ PLL 8x
**     ECIO_PLL16           ECIO w/ PLL 16x
**     EC_PLL16             ECIO w/ PLL 16x
**
**   Oscillator Source:
**     LPOSC                Low-Power 32KHz Osc <TMR1 Osc>
**     LP                   Low-Power 32KHz Osc <TMR1 Osc>
**     FRC                  Internal Fast RC
**     LPRC                 Internal Low-Power RC
**     PRI                  Primary Oscillator
**
**   Clock Switching and Monitor:
**     CSW_FSCM_ON          Sw Enabled, Mon Enabled
**     CSW_ON_FSCM_OFF      Sw Enabled, Mon Disabled
**     CSW_FSCM_OFF         Sw Disabled, Mon Disabled
**
*/

#define XTL                  0xFFF0
#define HS                   0xFFF2
#define XT                   0xFFF4
#define XT_PLL4              0xFFF5
#define XT_PLL8              0xFFF6
#define XT_PLL16             0xFFF7
#define ERCIO                0xFFF8
#define ERC                  0xFFF9
#define EC                   0xFFFB
#define ECIO                 0xFFFC
#define ECIO_PLL4            0xFFFD
#define EC_PLL4              0xFFFD
#define ECIO_PLL8            0xFFFE
#define EC_PLL8              0xFFFE
#define ECIO_PLL16           0xFFFF
#define EC_PLL16             0xFFFF

#define LPOSC                0xFCFF
#define LP                   0xFCFF
#define FRC                  0xFDFF
#define LPRC                 0xFEFF
#define PRI                  0xFFFF

#define CSW_FSCM_ON          0x3FFF
#define CSW_ON_FSCM_OFF      0x7FFF
#define CSW_FSCM_OFF         0xBFFF

Buna göre dahili osilatörle çalışmak , clock anahtarlaması ve izlemeyi disable için
_FOSC(FRC & CSW_FSCM_OFF),

Harici örneğin 5Mhz lik kristal ile ve 16x PLL kullanarak 20MIPS hızla çalışmak için de
_FOSC(PRI & XT_PLL16 & CSW_FSCM_OFF) satırı yazılabilir.

Anlamını bilmediğiniz seçeneklerin ne anlama geldiğini öğrenmek için işlemcinin datasheet lerine bakmaktan başka yol yok..
 
Öncelikle ilginize teşekkür ederim, microchip in sitesindeki tüm dökümanları indirmiştim ve halen inceliyorum malum 1000 sayfadan fazla bilgi var dspic30f2010 ile ilgili. Soruda yazdığımı sanıyordum kusura bakmayın unutmuşum, ben assembler ile program yazıyorum ve mplap da derliyorum, bugüne kadar 16f877a kullanıyordum onda hiç sıkıntım yok programlayıcı belirttiğim gibi pickit2 kendi arayüzünde configuration diye bir sekme var konfigürasyon bitlerini binary olarak girebileceğimiz bir ayar grubu sunuyor fakat buradan konfigürasyon yazarak sonuç elde edemedim. Aklıma mplab programında dspic için bulunan .inc dosyasını incelemek gelmişti ki orada tüm konfigürasyon bitleri mevcuttu baktığımda bende dspic in datasheet i ile karşılaştırıp istediğim konfigürasyonu sağlayacak şekilde ve tüm konfigürasyon bitlerini belirterek yazdığım programa config kısmınıda ekledim fakat bu seferde pickit2 programlayıcısı yazdığınız konfigürasyon bitleri eksik bu haliyle doğru olduğuna eminmisiniz yüklensin mi? anlamında vir uyarı verdi bende evet yüklensin dedim ilk denememde çalışmadı ve tekrar tekrar kontrol edip konfigürasyon bitlerini envayi çeşit kombinasyonla yazmama rağmen yinede çalışmadı. elimdeki pic ve yazdığım program doğru çalışıyor çünkü başka programlayıcıyla (brenner idi herhalde) programlayınca program çalışıyor. Birebir pickit2 ile assembler programını dspic30f2010 a başarıyla yükleyebilen var ise bana yardımcı olabileceğini ve böyle birinin var olduğunu düşünüyorum yoksa çok uğraşacağım herhalde.
 
Diğer bir seçenekte, konfigürasyon bitlerini program içerisinde belirtmeniz gerekmiyorsa, MPLAB da Configure, Configuration Bits Ekranında direkt tanımlamak olabilir. Pickit2 yi MPLAB içerisinde direkt kullanırsanız sorun yaşamazsınız.

Ayrıca Pickit2 nin kendi programında da konfigürasyon bitlerini direkt olarak bit bit tanımlamak mümkün. Ama önce ilgili datasheeti okumak gerek.
 

Forum istatistikleri

Konular
129,867
Mesajlar
930,872
Kullanıcılar
452,732
Son üye
erencok

Yeni konular

Geri
Üst