hallo,

ik had net een error met mijn programmer, maar die is komen te vervallen.

nu heb ik een ander probleem: mijn PIC wil niet opstarten in zijn circuit. het is een PIC18F2550. de voeding is ontkoppend met 100nf. deze zit direct naast het voetje. daarnaast heb ik op de oscillator een 20MHz met 2x 15pF condensators. vanuit de 5V loopt een 100K weerstand naar de MCLR, welke softwarematig toch disblad moet zijn, amar hij moet toch opgetrokken worden voor een schakelaar aan de grond. (NO)

op Portc.1 en portc.2 zit een LED constructie:

V+)-->I-(1)->I--(2)-->I--1K--(GND
vanuit 1 een 1K weerstand naar C.2 en vanuit 2 direct naar c.1.

dan zou ik bij, c1 = 1 en c2 = 2 de led dichst bij GND moeten zien branden, bij c1 = 0 en c 2 = 1 de middelste led zien branden, en bij beiden 0 de led dicht bij V+ zien branden.


Device 18F2550
XTAL 20 

Config_Start
   PLLDIV = 4 ; Divide by 5 (20 MHz oscillator input)
   CPUDIV = OSC1_PLL2 ; [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
   FOSC = HS ; HS oscillator, HS used by USB
   PWRT = OFF ; PWRT disabled
   BOR = OFF ; Brown-out Reset disabled in hardware and software
   WDT = OFF ; HW Disabled - SW Controlled
   WDTPS = 1 ; 1:1
   MCLRE = On ; RE3 input pin enabled; MCLR disabled
   STVREN = On ; Stack full/underflow will cause Reset
   LVP = OFF ; Single-Supply ICSP disabled
   XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   Debug = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
   CP0 = OFF ; Block 0 (000800-001FFFh) not code-protected
   CP1 = OFF ; Block 1 (002000-003FFFh) not code-protected
   CP2 = OFF ; Block 2 (004000-005FFFh) not code-protected
   CP3 = OFF ; Block 3 (006000-007FFFh) not code-protected
   CPB = OFF ; Boot block (000000-0007FFh) not code-protected
   CPD = OFF ; Data EEPROM not code-protected
   WRT0 = OFF ; Block 0 (000800-001FFFh) not write-protected
   WRT1 = OFF ; Block 1 (002000-003FFFh) not write-protected
   WRT2 = OFF ; Block 2 (004000-005FFFh) not write-protected
   WRT3 = OFF ; Block 3 (006000-007FFFh) not write-protected
   WRTB = OFF ; Boot block (000000-0007FFh) not write-protected
   WRTC = OFF ; Configuration registers (300000-3000FFh) not write-protected
   WRTD = OFF ; Data EEPROM not write-protected
   EBTR0 = OFF ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
   EBTR1 = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
   EBTR2 = OFF ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
   EBTR3 = OFF ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
   EBTRB = OFF ; Boot block (000000-0007FFh) not protected from table reads executed in other blocks
CONFIG_END

ALL_DIGITAL TRUE
                            
while 1 = 1
portc.1 = 1
portc.2 = 1
delayms 500
portc.1 =0
delayms 500
portc.2 = 0
delayms 500
wend

end

dit heb ik erin geprogrammeerd, de verification was goed.
na er spanning op gezet te hebben gebeurt er niks.
de V+ is 4.97V en GND zit aan zowel pin 19 en 8.

ik ben overigens niet van plan de USB te gaan gebruiken. MSSP, EUSART en ADC wel.

wat doe ik fout?

MCLRE = On ; RE3 input pin enabled; MCLR disabled

Commentaar klopt niet met de setting. Wellicht pull-up aan MCLR?

er zit al een pullup aan, 100K vanuit V+. deze is laag te brengen met een grouded switch.
MCLRE_OFF maakt re3 een ingang?

[Bericht gewijzigd door The Engineer op (24%)]

Ja, MCLR staat dan uit...
100k is veel te hoog. Niet meer als 10k gebruiken.

Als je je programma een label geeft

programma:

while
....
wend
end

Mclr gebruik ik altijd 33k
En volgens mij moet je deze toevoegen

osc = fs

[Bericht gewijzigd door 19roland70 op (23%)]

nog niks... heb m aangepast, erin gezet. daarnaast toegevoegd HIGH PORTB.7, voor de loop.
portb.7 blijft 0V.

@ roland, het maakt ook geen verschil in de verify. oud programma in de PIC, nieuw programma ter verificatie.
erin geladen, no difference either....
EDIT2: heb hem tidden cofig-start en config-end gezet. assembler herkent hem niet, dus geen HEX gekregen.

EDIT:
misschien oscillator niet goed?
na het laden van de HEX staan de geristers namelijk wel goed. misschien start-ie wel niet.

foto van de XTAL constructie maken? kan even duren...

[Bericht gewijzigd door The Engineer op (11%)]

kijk eens op pagina 25 over de oscillator

Bij een 18F hoor je eigenlijk LATB.7 te gebruiken i.p.v. PORTB.7

CPUDIV 00 maken?
laatmaar, was al 00.

Arco; geen verschil.

Programma:

HIGH LATB.7                            
while 1 = 1
LATc.1 = 1
LATc.2 = 1
delayms 500
LATc.1 =0
delayms 500
LATc.2 = 0
delayms 500
wend

ik vermoed nogsteeds de oscillator, ammer dat ik gee scoop heb.

[Bericht gewijzigd door The Engineer op (12%)]

Download " fuse generator " eens dan zie je gelijk alle optie die je nodig hebt ,want volgens mij staan er dingen aan die niet aan moeten

Ik heb dit ooit eens geprobeert on te kijken of de pic "loopt "
probeer die eens , ( device en de port effe aanpassen)

  
Device 18F4525             
Config_Start
OSC   = HS  ; HS Oscillator
IESO  = OFF ; Internal External Switch Over mode disabled
PWRT  = On  ; Enabled
WDT   = OFF ; Disabled
MCLRE = On  ; Enabled
LVP   = OFF ; Disabled
Debug = OFF ; Disabled
Config_End
        Xtal 20 
All_Digital TRUE              ;Alle ingangen digitaal

Opnieuw:                      ;Label met zelf te verzinnen naam
Toggle PORTE.0                ;Aan moet uit, uit moet aan
DelayMS 500                   ;500 milliseconden = 0,5 seconde
GoTo Opnieuw                  ;Spring naar 'Opnieuw' en ga zo steeds door 

End                           ;Einde programma

Probeer anders even of het wel werkt met de internal oscillator.

Oscillator moet zo te zien HS_PLL zijn.
Als je niet weet of de oscillator werkt, probeer dan de interne eens ipv. het kristal.
(Draden aan kristal ook niet te lang / 2 condensatoren 22pF)

@pieterd28 : volgens mij zit er geen interne klok in

Jawel, heeft int.osc. van 31kHz tot 8MHz.

interne osc heeft hij geloof ik niet...

FOSC = INTHS herkent de assembler niet.

onfig_Start
   IESO = 1
   PLLDIV = 4 ; Divide by 5 (20 MHz oscillator input)
   CPUDIV = OSC1_PLL2 ; [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
   FOSC = INTHS ; HS oscillator, HS used by USB
   PWRT = OFF ; PWRT disabled
   BOR = OFF ; Brown-out Reset disabled in hardware and software
   WDT = OFF ; HW Disabled - SW Controlled
   WDTPS = 1 ; 1:1
   MCLRE = OFF ; RE3 input pin enabled; MCLR disabled
   STVREN = On ; Stack full/underflow will cause Reset
   LVP = OFF ; Single-Supply ICSP disabled
   XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   Debug = OFF ; Back
;daarna CP bits.

USB krijgt dan de externe, PIC krijgt de interne. we'll see.
ik moet die Ext. osc wel werkend krijgen, maar kan ik iig kijken of het probleem daar ligt.

[Bericht gewijzigd door The Engineer op (57%)]

De eerste keer dat ik met een 16F877A werkte, werkte die ook niet, en lag toen aan het kristal, nieuw geprobeerd en het werkte.

OSC moet zoals gezegd ook wel HS_PLL zijn ipv HS, anders werkt de PLL niet...

ik heb zo'n low-profile kristal. misschien kan dat het zijn?
http://www.google.nl/imgres?q=low+profile+crystal&um=1&hl=nl&sa=N&rls=com.microsoft:nl:IE-SearchBox&rlz=1I7GGLL_nl&biw=1024&bih=571&tbm=isch&tbnid=htsN6E1Ta8KsoM:&imgrefurl=http://www.mcustore.com/11_miscellaneous&docid=ZvJbX0HBvFPBPM&w=129&h=129&ei=T3RCTuGCMsKd-wb46c2tCQ&zoom=1&iact=rc&dur=515&page=1&tbnh=103&tbnw=103&start=0&ndsp=14&ved=1t:429,r:9,s:0&tx=9&ty=52

dan fiets ik zo naar de stad, want ik heb er geen meer hier. kan een uurtje duren. condensatoren zijn overigens 15pF.

Low-profile is prima. Maakt niet uit.

FOSC = HS_PLL is geen valide setting, FOSC = HSPLL ook niet?

pfew dan hoef ik niet te fietsen :) scheelt weer.

ehm... ik moet even voor m moeder boodschappen halen... :D
ben zo terug... *schaam*

[Bericht gewijzigd door The Engineer op (30%)]

Geen idee hoe je dan de PLL inschakelt in Picbasic...

Hallo daar!
Ga even naar Help>Documents. Daar staat 3 - PIC18 Config fuses.
Nu even de goede familie en vervolgens processor kiezen.......tada!

iets meer toelichting graag... verder weet ik ook niets over het inschakelen van de PLL.

ik ga eens een nieuw kristal pakken. dit heeft ook geen zin gehad. ik heb nog een 16F913 liggen, die ook in het voetje past en welke ik ook kan gebruiken. eens kijken of deze wel ik lopen op het cristal.

913 draait ook niet op het kristal. een 4 mhz model werkt ook niet. 10pf condensatoren werken ook niet. er staat overuidelijk 4.96V op de PIC pinnen waar dat nodig is. het zijn zeker 15pF condensatoren.

help????? ik ben nu al een hele dag bezig dit werkend te rkijgen en wordt langzaam gek!

EDIT; geen topickick... testresultaten.

[Bericht gewijzigd door Henry S. op (36%)]

Controleer dan eens of je schakeling wel helemaal goed is. Klinkt naar missende/verkeerde aansluitingen en kortsluitingen.

Voor de oscillator van de 18F2550 moet je heel hoofdstuk 2 en 25 doorlezen, vooral de tabellen geven inzicht.


DEVICE = 18F2550

XTAL = 20          'voor 48 MHz: 20 / 5 = 4Mhz, 4Mhz * 24 = PLL(96Mhz), PLL / 2 = 48Mhz   
  
CONFIG_START
   PLLDIV   = 12         ; Divide by 12 (20 MHz oscillator input)
   CPUDIV   = OSC1_PLL2 ; [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
   FOSC     = HSPLL_HS    ; HS oscillator, PLL enabled, HS used by USB
   PWRT     = Off          ; PWRT disabled
   BOR      = OFF          ; Brown-out Reset disabled in hardware and software
   LVP      = OFF          ; Low voltage programming off
   WDT      = OFF          ; watch dog timer off
CONFIG_END

ALL_DIGITAL = TRUE
ONBOARD_USB = 0

Dit moet gewoon werken (werkt bij mij prima). De goede instelling is dus HSPLL_HS. Deze configuratie is voor 20 Mhz.

Bovendien klopt je eerste configuratie van geen kant. Je hebt

PLLDIV = 4 ; Divide by 5 (20 MHz oscillator input)
   CPUDIV = OSC1_PLL2 ; [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
   FOSC = HS ; HS oscillator, HS used by USB

Als je dus een 20 MHz kristal hebt moet je met deze configuratie 20/4 * 24 / 2 doen. Daar komt dus 60 (kan de 18F2550 niet) uit, wat je bij xtal in moet vullen. Als je nu gewoon de bovenste instellingen neemt heb je 20/12 * 24/2 = 20, wat je dan dus weer invult bij xtal.

[Bericht gewijzigd door kloppertje op (25%)]