Goedemiddag.
Ik ben uit interesse begonnen aan de cursus "PICBASIC" te vinden op picbasis.nl. Men begind mij het prille begin, een LED in serie op poortje A1. Deze moet gaan knipperen.
Ik heb alles stap voor stap opgevolgd en een printje gebouwd. Voeding word verzorgd door een L7805CV. 5V. Primair een elco van 100uF. Secundair een elco van 0,47uF. De gemeten spanning op de PIC is exact 5V.
Het volgende programma heb ik foutloos in de PIC geprogrammeerd met een "Leaper-48" universal IC writer. Ook helemaal ingesteld volgens de gebruiksaanwijzing, en de juiste PIC geselecteerd in het menu.
programma:
DEVICE 16F628A ;We gebruiken een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
Opnieuw: ;Label met zelf te verzinnen naam
TOGGLE PORTA.1 ;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
Nu is alles aangesloten en de spanning staat op het sircuitje. De LED zou moeten knopperen, maar doet erg wijnig op poort A1. Als ik met een vinger over de PIC 16F628A wrijf, daat de LED zwakjes branden. Soms weer iets veller. Bij loslaten van de PIC gaat de LED direct weer uit. Als ik mijn vinger op de PIC houd, brsndt de LED soms vel, en gaat ook uit. Een enkele keer knippert de LED zelfs een paar keer, onregelmatig, en blijft daarna weer uit.
Ik dacht al aan een slecht contact in het IC voetje, maar ik heb alles al geprobeerd. Niets helpt. Een andere PIC geeft geen verbetering, en opnieuw programmeren ook niet.De voeding is gebouwd, exact zoals op de website www.picbasic.nl, les 1 is aangegeven.
heeft iemand een idee wat fout gaat? Ik zou graag wat verder experimenteren met PIC's, maar bij les 1 gaat het al mis.
Groeten, Klaas uit Leeuwarden.
kloppertje
Diverse projecten en experimenten: www.elexperiment.nl
Probeer eens xtal 4 onder de config regel. Heb je ook een 100 nF ontkoppelcondensator geplaatst bij de PIC? Deze moet zo dicht mogelijk bij de voedingspinnen zitten.
[Bericht gewijzigd door kloppertje op (59%)]
Hier heb je een voorbeeld, zo doe ik het zelf altijd bij iedere pic.
De MCLR_PIN is erg gevoelig, daar zet ik altijd 10K naar de plus, en 100nF naar de gnd.
Je voeding moet je ook ontkoppelen met 100nF, één aan de ingangs kant van je regelaar en één aan de uitgangs kant.
Wat Kloppertje oppert kan soms ook helpen.
kloppertje
Diverse projecten en experimenten: www.elexperiment.nl
De MCLR pin wordt niet gebruikt, dus dat zou ook niet uit moeten maken. Dus zit het waarschijnlijk in de voeding. Pas kwam het ook in een topic naar boven dat er tegenwoordig in sommige versies van Proton XTAL 4 toegevoegd moet worden, ook al wordt de interne oscillator gebruikt.
Op 25 januari 2013 19:32:17 schreef kloppertje:
De MCLR pin wordt niet gebruikt......
Dat weet ik, maar ik zet het er standaard altijd bij. Kan geen kwaad.
Bedankt voor de tips. Ik ben nog een beginneling, wel enthousiast!
Ik heb de regel XTAL 4 toegevoegd, met resultaat dat de LED nu aan gaat bij aanraken bovenkant PIC, op goed vermogen, maar constant blijft branden. Dat ie blijft branden is al een goede vooruitgang.
Ik ga de voeding eerst even aanpassen volgens voorbeeld van Lambiek.
U hoort nog van me.
Klaas.
Helaas, de voeding is nu exact als Lambiek aangeeft, maar de LED blijft uit. Deze gaat alleen branden als ik de PIC even aanraak aan de bovenkant. Daarna gaat deze ook niet meer uit.
XTAL misschien aanpassen? Wie heeft ervaring?
kloppertje
Diverse projecten en experimenten: www.elexperiment.nl
Probeer eens het volgende:
DEVICE 16F628A ;We gebruiken een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
PORTA = %00000000 ;Alle uitgangen laag
TRISA = %11111101 ;Stel porta.1 als uitgang in
Opnieuw: ;Label met zelf te verzinnen naam
PORTA.1 = 0
DELAYMS 500 ;500 milliseconden = 0,5 seconde
PORTA.1 = 1
DELAYMS 500
GOTO Opnieuw ;Spring naar 'Opnieuw' en ga zo steeds door
END ;Einde programma
Weet je zeker dat alles goed contakt maakt, en goed aan gesloten is.
Heb je al een andere pic geprobeerd, het moet gewoon werken als alles klopt. Heb je de pic in een voetje zitten, en is er misschien een pin krom, og zit er niet goed in.
Post je programma eens zoals het nu is.
vanavond ga ik testen.
Bedankt voor het meedenken!
Helaas,ik geef de moed bijna op!
Nogsteeds een continue brandende LED, ook met het programma van kloppertje. 5 PIC's geprobeerd!
Ik ga twijfelen aan mijn LEAPER-48 writer.
[Bericht gewijzigd door Henry S. op (63%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Je kunt de PIC ook weer uitlezen (code protection staat niet aan zo te zien), en die dan vergelijken met de originele HEX file.
Die kun je ook eventueel hier posten om eens te bekijken...
Gewoon Klaas
Henry Rolls (van Rolls- Royce): "The quality remains long after the price is forgotten,"
Hé, leuk een naam en provincie genoot nog wel 
Heb je al eens hier en daar op je printplaat, de spanning gemeten, als je spanning niet goed en stabiel is, heb ik ook wel eens vage klachten gehad. En is je led nog wel goed?
kloppertje
Diverse projecten en experimenten: www.elexperiment.nl
Oeps, ik was zelf nog vergeten xtal 4 erbij te zetten. Zonder dat knippert de led veel sneller dan normaal.
Ik heb mijn programma (inclusief xtal 4) in een 16f628A gezet, en het werkt gewoon. Plus van de led aan de PIC, min aan een 1k weerstand en de andere kant van de weerstand aan de GND (= Vss van de PIC).
Heb je ook al met de multimeter gemeten aan porta.1? En meet dan ook gelijk even de voedingsspanning van de PIC over de Vdd en Vss pinnen.
OK. Beginnen bij het begin:
programma PIC basic:
DEVICE 16F628A ;We gebruiken een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ;Alle ingangen digitaal
Opnieuw: ;Label met zelf te verzinnen naam
TOGGLE PORTA.1 ;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
Nu maak ik middels PROTON IDE lite dit HEX bestand door op F9 te drukken:
:100000002828A301A200FF30A207031CA307031C9A
:1000100023280330A100DF300F200328A101E83E90
:10002000A000A109FC30031C1828A00703181528FC
:10003000A0070000A10F152820181E28A01C2228A8
:100040000000222808008313831203130000080015
:1000500007309F0002308506831685100130831219
:0C006000A300F43002202A28630034289A
:02400E00503F21
:00000001FF
Dit programmeer ik met LEAPIC WRITER in de PIC:
Dan lees ik de PIC uit, en zie:
:200000002828A301A200FF30A207031CA307031C23280330A100DF300F200328A101E83E3A
:20002000A000A109FC30031C1828A00703181528A0070000A10F152820181E28A01C2228D4
:200040000000222808008313831203130000080007309F000230850683168510013083127E
:20006000A300F43002202A2863003428FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1A
:20008000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F80
:2000A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F60
:2000C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F40
:2000E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F20
:20010000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF
:20012000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDF
:20014000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBF
:20016000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9F
:20018000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7F
:2001A000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5F
:2001C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3F
:2001E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1F
:20020000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFE
:20022000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDE
:20024000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBE
:20026000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9E
Iets anders dus!
Ik zie ook dat bij het laden van het HEX file, de data al veranderd is. Dus daar gaat het al fout. Toch staan alle instellingen in IC writer goed.
Wie weet nog raad?
LastLoad File Name: C:\PIC programmas\TEST.HEX
File Format: Intel HEX
Start adress: 0000000 End adress: 000400F Buffersize: 0020400
Check Sum : 003F7A9B H Get SUM Range: 0000000H - 000400FH
[Bericht gewijzigd door Henry S. op (0%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Beide files zijn zo te zien gelijk, dus daar ligt het ook niet aan.
(De ene hex file gebruikt 16 bytes per regel, en de andere 32, maar dat maakt niet uit.)
Ik denk toch dat er iets hardwarematig niet goed zit, misschien tijd voor een fotootje?...
hadv
Just find out what you like and let it kill you
Dat het gegenereerde hex bestand er anders uitziet dan het uitgelezen hex bestand komt op mij niet vreemd over.
Wat ik in de gauwigheid vergelijk ziet er wel hetzelfde uit.
En welke 'data' is er dan veranderd bij het laden? Klinkt als een mal verhaal, hoe kan data door het te laden nu veranderen.
Ten aanzien van je code: commentaar is goed, maar dit is ronduit overdreven. Al het commentaar dat je hebt geschreven is volstrekt overbodig, het voegt helemaal niets toe, het legt niets uit.
Het is bekend dat heel veel programma's wereldwijd veel beter zouden moeten worden gedocumenteerd, maar dan wel zodanig dat je er later wat aan hebt.
kloppertje
Diverse projecten en experimenten: www.elexperiment.nl
Eh, heb je wel het goede bestand gebruikt voor het programmeren, en niet een oud bestand? Kijk even naar de datum die erachter staat.
Op 30 januari 2013 00:16:59 schreef hadv:
Ten aanzien van je code: commentaar is goed, maar dit is ronduit overdreven.................
Dat is een beetje flauw; die TS is het aan het leren, en dit is gewoon overgenomen van Frits.
@ TS,
Ik twijfel toch aan hoe je de pic aangesloten hebt, of aan je programmer. Zelf gebruik ik een pickit_2 hier voor, met prima resultaat.
Eigenlijk heb ik geen zin meer in dit project. Hoe jammer ook...
Ik heb alles goed aangesloten. Ook het programma is goed. Ik meet op de PIC keurig 5,02V. Constant.
Maar het werkt totaal niet.
Op penA1 meet ik zonder LED constant 5,02V Met brandende led, meet ik over de LED 2,4V. (De LED gaat pas na een tijdje aan...)
Geen knipper... 7 PICs getest. Andere voedingsadapter geprobeerd. Geen verschil.
Er gaat te veel tijd in zitten. Ik stop er denk ik maar mee.
Bedankt voor de reacties.
Klaas.
Fredjuhh
"Ben nog een N00B, maar dat is al aan het veranderen ;)
Op 30 januari 2013 22:07:02 schreef Buizentvklaas:
Eigenlijk heb ik geen zin meer in dit project. ...... Ik stop er denk ik maar mee.....
Bedankt voor de reacties.
Goed idee, de electronica mensen die ik ken geven niet (snel) op. Dus als je nu al geen zin meer hebt... so be it.
Anderzijds, post nou toch maar eens een leuke scherpe foto van je opstelling
Andere vinden het juist machtig om zo'n probleempje te tackelen...
He, niet opgeven hè. We komen er best uit met zijn allen, iedereen zit te tobben in het begin.
En bij deze, je mag best een keer langs komen.
Maar plaats nu eerst maar eens een foto.
Op 25 januari 2013 19:29:37 schreef Lambiek:
Hier heb je een voorbeeld, zo doe ik het zelf altijd bij iedere pic.
[afbeelding]
De MCLR_PIN is erg gevoelig, daar zet ik altijd 10K naar de plus, en 100nF naar de gnd.
Dat van die 100nF tussen Vdd en Vss wist ik en plaats ik ook altijd dicht bij de PIC16F690.
Dat de MCLR_PIN soms gevoelig is weet ik ook maar deze oplossing (100nF en 10K) had ik nog nooit gezien.
Kan ik deze optie ook gebruiken als de MCLR_PIN (RA3, pin4)van de PIC16F690 als een Active Input wordt gebruikt?
hadv
Just find out what you like and let it kill you
Nee, want door die weerstand trek je nu deze pin hoog.
Als je deze pin als input wilt gebruiken moet je dat doen met het TRISA register. Bovendien moet je de configuratie aanpassen: MCLRE_OFF
Op 31 januari 2013 18:52:36 schreef hadv:
Nee, want door die weerstand trek je nu deze pin hoog.
Ok, dus alleen als ik deze pin niet gebruik is het beter om deze "optie"toe te passen zodat deze pin niet gaat zweven?
Ik gebruik deze pin nu met een switch en een 10K pull down.