pic18f452 reset problemi

Başlatan picman, 07 Şubat 2014, 10:22:54

picman

arkadaşlar pic18f452 li bir devre üzerinde çalışıyorum. derleyici olarak xc8 kullandım config ayarlarını da yaptım fakat devre de reset butonuna bastığımda devre kilitleniyor resetlenmiyor. delirmek üzereyim proteusta çalışan devre gerçek ortamda böyle problem çıkardı sebebi ne olabilir sizce.
Bilgi paylaştıkça artar..

Maxim


picman

#2
arkadaşım 4,7k pull up direnci ile mclr ucuna vcc den bağlantı yaptım. arada bir de 1n4148 diyot var.  devre üzerinde icsp portu da olduğu için diyot üzerinden mclr ucu 5v alıyor. reset butonu ise 1n4148 in çizgili ucu ile gnd arasında. çimdi mclr ucuna elimi değdiriyorum devre kilitleniyor. problem bu sebep ne olabilir.
Bilgi paylaştıkça artar..

sadogan

Mclr ile gnd arasında 100nF varmı.Config ayarların neler ?

picman

// CONFIG1H
#pragma config OSC = HS         // Oscillator Selection bits (HS oscillator)
#pragma config OSCS = OFF       // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source))

// CONFIG2L
#pragma config PWRT = ON       // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOR = ON         // Brown-out Reset Enable bit (Brown-out Reset enabled)
#pragma config BORV = 20        // Brown-out Reset Voltage bits (VBOR set to 2.0V)

// CONFIG2H
#pragma config WDT = OFF        // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit))
#pragma config WDTPS = 128      // Watchdog Timer Postscale Select bits (1:128)

// CONFIG3H
#pragma config CCP2MUX = ON     // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1)

// CONFIG4L
#pragma config STVR = ON        // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET)
#pragma config LVP = ON         // Low Voltage ICSP Enable bit (Low Voltage ICSP enabled)

// CONFIG5L
#pragma config CP0 = OFF        // Code Protection bit (Block 0 (000200-001FFFh) not code protected)
#pragma config CP1 = OFF        // Code Protection bit (Block 1 (002000-003FFFh) not code protected)
#pragma config CP2 = OFF        // Code Protection bit (Block 2 (004000-005FFFh) not code protected)
#pragma config CP3 = OFF        // Code Protection bit (Block 3 (006000-007FFFh) not code protected)

// CONFIG5H
#pragma config CPB = OFF        // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected)
#pragma config CPD = OFF        // Data EEPROM Code Protection bit (Data EEPROM not code protected)

// CONFIG6L
#pragma config WRT0 = OFF       // Write Protection bit (Block 0 (000200-001FFFh) not write protected)
#pragma config WRT1 = OFF       // Write Protection bit (Block 1 (002000-003FFFh) not write protected)
#pragma config WRT2 = OFF       // Write Protection bit (Block 2 (004000-005FFFh) not write protected)
#pragma config WRT3 = OFF       // Write Protection bit (Block 3 (006000-007FFFh) not write protected)

// CONFIG6H
#pragma config WRTC = OFF       // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected)
#pragma config WRTB = OFF       // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected)
#pragma config WRTD = OFF       // Data EEPROM Write Protection bit (Data EEPROM not write protected)

// CONFIG7L
#pragma config EBTR0 = OFF      // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks)
#pragma config EBTR1 = OFF      // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks)
#pragma config EBTR2 = OFF      // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks)
#pragma config EBTR3 = OFF      // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks)

// CONFIG7H
#pragma config EBTRB = OFF 

#define _XTAL_FREQ 20000000


config ayarları bunlar. Bahsettiğiniz kondansatör devrede yok. daha önce mclr ucuna hiç kondansatör bağlamamıştım ve bunun gibi bir problemle de karşılaşmadım.
Bilgi paylaştıkça artar..

esensoy

LVP ve BOR un gerçekten ON olması gerekmiyor ise OFF yapınız, hele ki LVP yi, zinhar OFF yapınız,
En tehlikeli an "zafer" anıdır.

picman

#6
tamam şimdi deniyorum.

mesaj birleştirme:: 07 Şubat 2014, 11:51:41

arkadaşım sana çok teşekkür ederim. Şu an devre problemsiz çalışıyor. bu BOR ve LVP hakkında bilgi verirmisin ne işe yaradıklarını açıkçası bilmiyordum.
Bilgi paylaştıkça artar..

LukeSkywalker

Datasheet bu bilgileri barındırmaktadır. 28. Sayfada detaylı bir anlatım mevcut.
Brown Out Reset : Eğer besleme voltajı belirlediğiniz voltajın altına düşerse işlemci voltaj düzelene kadar reset pozisyonunda kalır.
LVP: Düşük voltaj programlama. Programlamayı başlatmak için Vpp pinine 13 Volt gibi bir voltaj uygulamak gerekir. LVP aktif ise besleme gerilimi dahi Vpp pinine uygulandığında işlemci programlama moduna geçer.

picman

anladım tekrar teşekkür ederim
Bilgi paylaştıkça artar..