18F2550 Fuse ayarları yapınca reset alma sorunu.

Başlatan Cenk_Unur, 21 Mayıs 2013, 08:51:36

Cenk_Unur

Merhaba arkadaşlar,

Ben 18F2550 ile bir devre hazırladım ve AN0 dan okuduğum analog değere göre CCP1 den HPWM sinyali üretiyorum ve bununla bir motor sürüyorum.

Eğer hiçbir fuse ayarı yapmaz isem devrem sorunsuz çalışıyor. Devre motor kontrol ettiği için parazitlerden etkilenip reset almaması adına fuse ayarlarını belirlemek istiyorum.

Ancak sadece OSC seçimini bile belirlesem  reset alma konusunda aşırı derecede hassaslaşıyor. Eksiye el ile dokunsam bile reset alma sorunu oluyor. PWM değeri sıfır olsa dahi.

Hiç bir fuse ayarı yapmaz isem devre çok sağlıklı çalışıyor.

Bu sorunun nedeni ne olabilir.

Device = 18F2550
Xtal = 4

Config_Start
'   PLLDIV = 1 ; No prescale (4 MHz oscillator input drives PLL directly)
   FOSC = XT_XT ; XT oscillator, XT used by USB
'   FCMEN = OFF ; Fail-Safe Clock Monitor disabled
'   IESO = OFF ; Oscillator Switchover mode disabled
'   PWRT = ON ; PWRT enabled
'   BOR = OFF ; Brown-out Reset disabled in hardware and software
'   WDT = OFF ; HW Disabled - SW Controlled
'   MCLRE = OFF ; MCLR pin enabled; RE3 input pin disabled
Config_End

 
TRISA=%00010001
TRISB=0
TRISC=0  

CCP1_Pin = PORTC.2      ' PORTC.1 is the CCP1 pin on the 

CCP1CON = %00111100

Adin_Res 10 ' Set the resolution to 10
Adin_Tad FRC ' Choose the RC osc for ADC samples
Adin_Stime 100 ' Allow 100us for charge time
ADCON0=%00000011
ADCON1 = %10001110
ADCON2.7 =1

Input PORTA.0
Output PORTB
Input PORTA.4
'Output PORTC

Dim ADCDegeri As Word
Dim PWMDegeri As Byte
Dim Dongu   As Byte

PORTB=%00111111
DelayMS 500
PORTB=%00011111
DelayMS 500
PORTB=%00001111
DelayMS 500
PORTB=%00000111
DelayMS 500
PORTB=%00000011
DelayMS 500
PORTB=%00000001
DelayMS 500 
PORTB=%00000000

DelayMS 100
Cls  


BASLA:   
   
    ADCDegeri=ADIn 0     

If PORTA.4 = 1 Then
    PWMDegeri=ADCDegeri/4
    Else
    PWMDegeri=0
End If   
'  PWMDegeri=ADCDegeri/4
    HPWM 1,PWMDegeri,150         ' Send a 50% duty cycle PWM signal at 1KHz   
        
Select PWMDegeri

  Case 40 To 83
    PORTB=%0000001      
  Case 84 To 124
    PORTB=%0000010
  Case 125 To 167
    PORTB=%0000100
  Case 168 To 208
    PORTB=%0001000
  Case 209 To 250
    PORTB=%0010000
  Case 251 To 255
    PORTB=%0100000  
  Case Else
    PORTB=%0000000
 EndSelect
    DelayMS 5


    
    
GoTo BASLA

Kabil ATICI

Devrenin en azından işlemci ile ilgili bölümünün bir resmini ve şemasını da görebilseydik daha kolay yardımcı olabilirdik.
Muhtemelen <belki>
İşlemcinin yanında 100nf gibi bir kondansatör var mı? (Besleme bacaklarına mümkün olduğu kadar yakın olacak şekilde)
Besleme devresi olarak nasıl bir devre kullanıyorsun?
Kristalin kondansatörleri var mı?
(gerekirse kristalin dış kılıfını GND'ye bağlayabilirsin)
Kartın üzerinde EMC ile ilgili gerekli düzenlemeler var mı? Besleme hatları kalın, vs.
ambar7

Cenk_Unur

Alıntı yapılan: ambar7 - 21 Mayıs 2013, 10:24:37
Devrenin en azından işlemci ile ilgili bölümünün bir resmini ve şemasını da görebilseydik daha kolay yardımcı olabilirdik.
Muhtemelen <belki>
İşlemcinin yanında 100nf gibi bir kondansatör var mı? (Besleme bacaklarına mümkün olduğu kadar yakın olacak şekilde)
Besleme devresi olarak nasıl bir devre kullanıyorsun?
Kristalin kondansatörleri var mı?
(gerekirse kristalin dış kılıfını GND'ye bağlayabilirsin)
Kartın üzerinde EMC ile ilgili gerekli düzenlemeler var mı? Besleme hatları kalın, vs.


Dedikleriniz devremde var. Asıl sorun hiçbir config ayarı yapmadan devrem çok iyi çalışıyor hiç reset alma sorunu yaşamıyorum.
Anlayamadığım nokta  neden  bir config ayarı yaptığımda reset almalar aşırı derecede artıyor.

Mefe

Eğer hiç bir ayar yapmazsan, config ayarları default ayarlarında çalışır. Datasheet inde default olarak hangi değerlerde ayarlı bulabilirsin. Daha sonra default ayarından farklı olan ayar hangibi bulup, sorunun kaynağına ulaşabilirsin.
Muhammet EFE || http://muhammetefe.com