Slecht begin PIC programmeren

Hallo allemaal,

ik ben nieuw op dit forum. Vanavond begonnen met het programmeren van een 16F628A met programma volgens onderstaande:

pic basic code:


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

Niets zelf verzonnen, gewoon overgenomen van PICbasic.nl

Programmeren met de PICKIT 2 gaat zo te zien goed:

Programming Target (7-5-2013 20:07:49)
PIC16F628A found (Rev 0x8)
Erasing Target
Programming Configuration Memory
Verifying Configuration Memory
PICkit 2 Ready

Maar de schakeling - knipperende LED op pootje 18 - werkt niet. Doe ik met programmeren iets fout ?

[Bericht gewijzigd door Henry S. op dinsdag 7 mei 2013 20:53:44 (2%)

Lambiek

Special Member

Ten eerste welkom.

Heb je je led goed aangesloten, en heb je ook een voorschakel weerstand gebruikt.

Als je haar maar goed zit, GROETEN LAMBIEK.

Dank voor je snelle reactie. Tja, wat kan er fout gaan ? LED via 1K van pin 18 naar + 5 V, + 5 V op pin 14 en 0 op pin 5. Heel veel simpeler kan het toch niet ? Hooguit de LED andersom, maar dat was natuurlijk snel gecontroleerd. Zou de schakeling na programmeren - is dat trouwens goed gegaan, volgens mij wel - gelijk moeten werken ?
Moet er - zoals bij Arduino - niet eerst een soort "bootloader" geladen worden ?

De stap van compilen tot programmeren is in dit geval even belangrijk. Ik mis wat stappen, hoe doe je het precies?

Wat ik meestal doe is het programma in PIC basic compilen, MPLAB IDE V8 of lager openen en het programma er in laden.
Dat doe ik als volgt:
Programmer -> Select <je programmer>
Het juiste device selecteren (lijk je ook al te doen)
Vervolgens moet je de HEX file via File -> Import importeren in MPLAB IDE. Dan kun je hem programmeren en moet je programma er in zitten.

Oja, en als je de programmer en aan laat hangen, zorg er dan voor dat hij de MCLR pin los laat zodat de PIC niet meer gereset wordt.

[Bericht gewijzigd door Nieko op dinsdag 7 mei 2013 20:41:00 (12%)

LED addicted... Fijnmalen en snuiven maar!! :P

Ja misschien sla ik in het beschrijven wat stappen over, maar die voer ik inderdaad wel uit.
Ik heb het programmaatje gekopieerd in PIC basic en via F9 gecompileerd. De HEX file laad ik in MPLAB IDE. Eerst kreeg ik een foutmelding dat het juiste device niet gevonden was dus dat bracht me op het kiezen van het juiste picje de 16F628a. Als programmer kies ik inderdaad de pickit 2 en dan lijkt - zie schermafdruk - alles goed te gaan. Vervolgens koppel ik de pickit 2 los en sluit ik led, R en 5 V aan. Het lijkt zo simpel !

Henry S.

Moderator

Welke Proton+ versie gebruik je?

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.
Arco

Special Member

De XTAL 4 setting ontbreekt weer eens... (kan daardoor heel traag knipperen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Afhankelijk van je opstelling kan het ontbreken van een ontkoppel-C'tje over je voedingspinnen ook nog last geven.

Waar je mee kunt beginnen is een kant-en-klare .HEX file met een blink-a-led downloaden, om te kijken of het aan je opstelling of aan je eigen programma ligt.

If you want to succeed, double your failure rate.

Het staat on "internal RC" lijkt me.
Bootloader is niet nodig. Je laadt je programma immers via de programmer en zit dan gelijk in het juiste geheugen.
Pin 18 klopt wel? Moet de port richting niet goed gezet worden? Of doet basic dat zelf?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Henry S.

Moderator

Op 7 mei 2013 21:09:08 schreef flipflop:
Het staat on "internal RC" lijkt me.

Bij de nieuwere compilerversies is XTAL verplicht geworden, ook als je de interne RC-oscillator gebruikt. De compiler moet weten op welke frequentie je PIC draait. Voorheen was dat default 4MHz.

@dirklammers (TS): Zet eens XTAL 4 op een nieuwe regel net onder de config-regel.

Pin 18 klopt wel? Moet de port richting niet goed gezet worden? Of doet basic dat zelf?

Dat doet Proton+ zelf, alleen is Toggle buggy geworden, en werkt daarom soms niet.

Beter is

pic basic code:


Low PortA.1
Delayms 500
High PortA.1
Delayms 500

[Bericht gewijzigd door Henry S. op dinsdag 7 mei 2013 21:19:28 (42%)

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

@flipflop,
De poort zet het toggle commando al naar output.

@Arco,
Bij een interne RC oscillator hoeft deze nooit gedefinieerd te worden omdat de standaard frequentie dan bekend is.

Het lijkt me van niet, maar misschien helpt een pull-up op de reset (MCLR)?
Overigens, het is belangrijk dat je de HEX file pas in de MPLAB IDE laad wanneer je het device hebt geselecteerd en verbonden bent met de programmer.

LED addicted... Fijnmalen en snuiven maar!! :P

Is het normaal dat de programmer alleen maar aangeeft dat de config-memory geprogrammeerd is?
Volgens mij moet er nog meer geprogrammeerd worden dan alleen de config ;)

Tja, ik ben begonnen met het volgen van de cursus op picbasic.nl dus ben ik er van uit gegaan dat alle voorbeelden eigenlijk wel "out of the box" zouden werken. Ik vind het al "heel knap" van mezelf dat het gelijk lukt de pickit 2 aan de praat te krijgen en zo te zien het programma ook goed in de pic te laden.
Ben dus teleurgesteld dat het meest simpele deel van de onderneming - de pic aansluiten en zomaar een ledje laten knipperen - nu niet werkt.

Dat er met allerlei instellingen iets fout kan gaan snap ik, maar aan de schakeling zelf valt niet veel te "storing-zoeken" lijkt me ..... De ontkoppel-C ga ik nog proberen inderdaad.

Henry S.

Moderator

Op 7 mei 2013 21:19:51 schreef Zonnepaneeltje:
Is het normaal dat de programmer alleen maar aangeeft dat de config-memory geprogrammeerd is?
Volgens mij moet er nog meer geprogrammeerd worden dan alleen de config ;)

Uhhh. Er mist idd nog wat, program memory en, afhankelijk van de instellingen, EEprom data.

@TS: Heb je het programmeren ook direkt met de PICkit2 software gedaan?

Btw, de eerste stapjes kunnen lastig zijn, vooral omdat je niet weet waar je het moet zoeken.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.

@Henry S.
Tja, het is inderdaad even zoeken. Ik lees op Google over de pic kit 2 programmer, dat lijkt andere software dan de mdlap de, of is de eerste in de laatste geïntegreerd ? Het is vast een of andere domme beginnersfout ......

Op 7 mei 2013 20:55:55 schreef Arco:
De XTAL 4 setting ontbreekt weer eens... (kan daardoor heel traag knipperen)

Inderdaad, is sinds de laatste versies gewijzigd en moet opgenomen worden. Nog niet verwerkt in de cursus.

Take care to get what you like or you will be forced to like what you get

Ik heb wel vaker met een PIC kit 2 & 3 in MPLAB IDE V8 en lager gewerkt. Daar kun je prima een PIC mee programmeren.

Het is alleen nog steeds onduidelijk welke software TS gebruikt voor het laden van de software (MPLAB X IDE?) en welke stappen hij daar voor neemt. Je kunt namelijk via het open menu van MPLAB IDE V8 (ouder dan MPLAB X IDE) en lager ook een .bas file openen, dat werkt niet. Het moet namelijk via File -> Import, alleen dan kun je een .HEX file correct in MPLAB IDE zetten om te programmeren.

LED addicted... Fijnmalen en snuiven maar!! :P
Arco

Special Member

@Nieko:
Interne RC oscillator zegt niets over de kloksnelheid van de interne oscillator, die kan bij diverse pics varieren van 32KHz tot 32MHz...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Leerzame avond. Het werkt. Onnozele "fout": op mijn breadboard lopen de voedingslijnen niet helemaal door van boven naar beneden, maar zijn ergens onderbroken ......
Geen spanning op de PIC dus en dus geen knipperende LED.

Laten we dit topic maar gauw vergeten .... Maar wel bedankt voor al jullie suggesties.

Ik heb nu een begin en ga morgen eens lekker verder experimenteren.

Arco

Special Member

Voedingsspanning meten doe je dus als eerst. Zeker met gammele verbindingen als op een breadboard... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Je bent niet de enigste die die fout maakt, gewoon klaas ook..... Maar als je op een gegeven moment je breadboards van 4 draadjes hebt voorzien, denk je daar niet eens meer aan als er iemand voorbijkomt met problemen.

Henry Rolls (van Rolls- Royce): "The quality remains long after the price is forgotten,"
chuckie

Honourable Member

Misschien maar even een kleine tip toevoegen, als ik een nieuw breadboard heb, steek ik standaard in het midden van het board op de hulplijnen (voor o.a. voeding) een paar brugjes.
Na 5 rijtjes van 5x2 gaatjes is ie namelijk onderbroken.

Denk dat iedereen daar wel eens een keer in trapt...

Ervaring is de naam voor de som der fouten die we gemaakt hebben--Oscar Wilde

Op 7 mei 2013 22:51:21 schreef Arco:
Voedingsspanning meten doe je dus als eerst. Zeker met gammele verbindingen als op een breadboard... ;)

Dirklammers had (om diverse redenen) even moeten vermelden dat het hier een breadboard betrof. Behalve dit probleem, zou meteen het probleem van slechte verbindingen genoemd zijn.
Maar 'wij' hadden natuurlijk de meest basale stap, het meten van de voedingsspanning, uberhaupt moeten voorstellen.

Toch blijf ik bij mijn eerdere suggestie, die een heleboel uit kan sluiten en die ik zelf ook gewoon gebruik als 'niets' werkt:

Op 7 mei 2013 21:07:59 schreef Jochem:
Waar je mee kunt beginnen is een kant-en-klare .HEX file met een blink-a-led downloaden, om te kijken of het aan je opstelling of aan je eigen programma ligt.

If you want to succeed, double your failure rate.

Tja, allereerst dan maar mijn verontschuldigingen aan jullie dat mijn informatie niet compleet was. Als je met zoiets nieuw begint kun je wellicht niet eens goed beoordelen welke informatie voor de "meedenkers" nuttig is.
Inmiddels knipperen de eerste LEDjes en kan ik zelfs een LCDdisplay aansturen. Het begin is er dus.
Voorlopig maak ik gebruik van Het bij de pickit 2 geleverde programma. Wat nut en meerwaarde van de MPLAB IDE is moet ik nog ontdekken.

Tips ?