Ik ben voor school begonnen met het programmeren van microcontrollers (leek me een uitdagend onderwerp), maar het wil nog niet helemaal lukken.

Ik heb reeds een Wisp628-kit besteld en in elkaar gezet en ook het doelcircuit zit al in elkaar (gevoed door een 7805-stabilisator en 3 condensatoren, waardoor er een nette spanning van 5V op staat). De Wisp628 wordt herkend door de computer (ik gebruik XWisp), maar de chip in het doelcircuit niet. Ik krijg een foutmelding dat het device id 0000 of FFFF is.

Ik had op www.voti.nl wat gelezen over dat sommige PIC's hun MCLR/ ook als input kunnen configureren, waardoor er nog een apart circuit tussen de programmer en het doelcircuit moet. Volgens mij is dit het geval bij de 16F628A. Klopt dit?

Als dit het geval is, moet ik er een 1N4148 en een TIP120 tussen solderen. Ik kan de TIP120 echter niet bestellen op www.conrad.nl. Zijn hier alternatieven voor?

Zijn er nog andere verbindingen die je moet maken op de 16F628A, als je hem met de Wisp628 wilt programmeren? Op het moment zijn alleen pin 5 en 14 verbonden voor de voeding. De Wisp wordt aangesloten met een DIP-clip op de juiste pinnetjes.

heb je dat probeer programmatje al eens geprobeerd.
blink a led
staat op de site van voti

je moet hem dan volgens dit schema aansluiten:

http://www.voti.nl/blink/pics/b-628-150.gif

Op 10 november 2004 18:42:54 schreef Jeroen Boere:
heb je dat probeer programmatje al eens geprobeerd.
blink a led
staat op de site van voti

je moet hem dan volgens dit schema aansluiten:

Daar ben ik op het moment mee bezig, ik gebruik alleen de interne oscillator. Het gaat echter al fout bij het programmeren van de microcontroller, dus loop ik behoorlijk vast :)

Het circuitje met de TIP20 en 1N4148 is niet nodig voor het programmeren van een 16F628(A).
Deze wordt gebruikt bij het programmeren van de 12Fxxx, 16F630 en 16F676.
Als het goed is, lopen er van je programmer naar de PIC 6 draden, rood(+), zwart(-) voor de voeding, geel op pin 4, wit op pin 10, groen op pin 12 en blauw pin 13.

Op 10 november 2004 20:10:03 schreef Frits Kieftenbelt:
Het circuitje met de TIP20 en 1N4148 is niet nodig voor het programmeren van een 16F628(A).
Deze wordt gebruikt bij het programmeren van de 12Fxxx, 16F630 en 16F676.
Als het goed is, lopen er van je programmer naar de PIC 6 draden, rood(+), zwart(-) voor de voeding, geel op pin 4, wit op pin 10, groen op pin 12 en blauw pin 13.

Dat klopt, zo is het allemaal aangesloten. Toch krijg ik die device id-fout. Ik heb het geprobeerd met 2 16F682's, het lijkt me sterk dat ze allebei kapot zijn.

en wat gebeurt er als je een XT osc gebruikt?

meet de spanning op je reset tijdens het proggen eens

Op 10 november 2004 20:50:41 schreef Jeroen Boere:
en wat gebeurt er als je een XT osc gebruikt?

Ik heb zo snel even geen oscillator liggen, dus liever gebruik ik de interne oscillator. Dit moet toch gewoon kunnen?

Op 10 november 2004 20:52:34 schreef k.p.meinesz:
meet de spanning op je reset tijdens het proggen eens

Dit ga ik morgen of overmorgen doen, dan heb ik weer toegang tot het hele project. Ik post dan wel welk voltage ik heb gevonden.

Lukt het wel om je pic 1 keer te programmeren met die blink-a-led hex? Die hex met interne oscilator zorgt dus dat je mclr als input gebruikt wordt. Je moet dan dus idd dat schakelingetje ertussen zetten. Als je de eerste keer ook al niet kunt programmeren zal er iets anders aan de hand zijn...

Ik zal die schakeling eens bouwen, maar hoe kom ik aan een TIP120? Op de 16F628 staat nu de firmware van de Wisp628, gebruikt deze de /MCLR ook als input?
Het voltage tussen de VSS en de /MCLR is ongeveer 4,5 Volt, maar het loopt terug tot 3,9 Volt, denk ik.
Dat moet toch 13 V zijn?

Ik roep maar wat hoor, maar welke Windows versie gebruik je? Voor sommige versies heb je een speciale driver nodig meen ik.

Dat zou goed moeten gaan...

Ik durf niet met zekerheid te zeggen of je die externe oscillator weg mag laten, bij sommige AVR's heb ik wel eens problemen gehad met de interne oscillator tijdens het proggen. Maar aan de andere kant, dit zijn geen AVR's. :P

Op 12 november 2004 14:51:22 schreef Jan van der Lugt:
Ik zal die schakeling eens bouwen, maar hoe kom ik aan een TIP120? Op de 16F628 staat nu de firmware van de Wisp628, gebruikt deze de /MCLR ook als input?
Het voltage tussen de VSS en de /MCLR is ongeveer 4,5 Volt, maar het loopt terug tot 3,9 Volt, denk ik.
Dat moet toch 13 V zijn?

ja idd dat moet 13v zijn
kontroleer de diodes en condensatoren eens
ik denk dat er iets verkeerd om zit
je pic komt niet in programeer stand.
zoals Frits al zei dat schema met tip120 en 1n4148 is niet nodig
kontroleer eers die wisp628 ik denk dat daar de fout zit

Er zat inderdaad nog ergens iets verkeerd op de Wisp (een verbinding met de gameport-connector). Dit is nu allemaal opgelost, ik heb ook al ledjes laten knipperen (met JAL, hoera!).

Waar het nu alleen nog fout gaat zijn de knoppen.
De ledjes moeten aangesloten worden op de een pin van de PIC, dan naar naar het ledje en de weerstand (330 Ohm) en dan naar de 0V.
Knoppen zouden van de 5V naar een pin van de PIC moeten, toch (ook hier zit er een weerstand van 330 Ohm tussen)? De juiste pinnetjes zijn in JAL al ingesteld als input. In onze programma's gebeurt er echter niets, als we bijvoorbeeld de volgende code gebruiken:


pin_a0_direction = output
pin_a1_direction = input

forever loop
   pin_a0 = pin_a1
   delay_1mS ( 20 )
end loop

Op 23 november 2004 18:44:57 schreef Jan van der Lugt:
Er zat inderdaad nog ergens iets verkeerd op de Wisp (een verbinding met de gameport-connector). Dit is nu allemaal opgelost, ik heb ook al ledjes laten knipperen (met JAL, hoera!).

Waar het nu alleen nog fout gaat zijn de knoppen.
De ledjes moeten aangesloten worden op de een pin van de PIC, dan naar naar het ledje en de weerstand (330 Ohm) en dan naar de 0V.
Knoppen zouden van de 5V naar een pin van de PIC moeten, toch (ook hier zit er een weerstand van 330 Ohm tussen)? De juiste pinnetjes zijn in JAL al ingesteld als input. In onze programma's gebeurt er echter niets, als we bijvoorbeeld de volgende code gebruiken:


pin_a0_direction = output
pin_a1_direction = input

forever loop
   pin_a0 = pin_a1
   delay_1mS ( 20 )
end loop

Een paar pull-downtjes zullen wonderen doen....

groet, Theo

Ik zal het wat uitgebreider uitleggen:

Op het moment heb je een niet-gedefinieerde spanning op je ingangen. Het hangt vrij zwevend.
De status van die ingangen kunnen alle kanten opgaan. Heb je vanavond toevallig bloemkool gegeten, dan zullen ze stomtoevallig naar GND gaan. Heb je spruitjes gegeten, dan zullen ze naar hoog gaan.
Als je nu de ingangen met bijv. een weerstand van 10K naar GND trekt, dan heb je een gedefinieerde uitgangssituatie.
Een druk op de schakelaar zal dan resulteren in een hoog, en de processor snapt het dan uiteindelijk.

groet, Theo

mooi dat het eindelijk werkt

ff een opmerking
je kan beter een nieuw topic starten voor je programeer problemen
de kans op een antwoord neemt dan behoorlijk toe en het vervolg heeft niets vandoen met de wisp628 of een 16f628
maar met JAL

succes

Dank jullie wel, ik denk dat ik hier wel wat mee kan. Als ik weer op problemen stuit, zal ik inderdaad een nieuw topic openen, dat is iets logischer.