Artikel
64 K 80C552-flashboard
Goedkoop, multifunctioneel en in-circuit programmeerbaar
Bij dit microcontroller-board gaat het om een standaard 8051-applicatie met enkele extra’s, waardoor het zowel als ontwikkelsysteem alsook als controller-module in een compleet systeem geschikt is. De belangrijkste eigenschappen zijn daarbij de mogelijkheid het flash-geheugen over de seriële RS232-poort te programmeren, de mogelijkheid snel direct op het board te debuggen en de geringe kosten.
Er zijn in Elektuur al diverse microcontroller-boards gepubliceerd op basis van een 8051-opvolger, maar deze heeft enkele eigenschappen die hem toch duidelijk onderscheiden van de rest. Leest u maar verder!
Principe
Normaal gesproken wordt een programma bij een microcontroller uit ROM geladen; het RAM-geheugen is er voor het opslaan van variabelen en data. Bij het ontwikkelen van software is het echter praktisch als het programma ook in het RAM-geheugen staat, omdat het dan gemakkelijk en snel veranderd kan worden. Ook voor het programmeren van flash-geheugen is het nodig dat het programma in het RAM-geheugen ligt, omdat het niet mogelijk is tegelijkertijd een flash-ROM te programmeren en daaruit het programma te laden.
Er zijn in Elektuur al diverse microcontroller-boards gepubliceerd op basis van een 8051-opvolger, maar deze heeft enkele eigenschappen die hem toch duidelijk onderscheiden van de rest. Leest u maar verder!
Principe
Normaal gesproken wordt een programma bij een microcontroller uit ROM geladen; het RAM-geheugen is er voor het opslaan van variabelen en data. Bij het ontwikkelen van software is het echter praktisch als het programma ook in het RAM-geheugen staat, omdat het dan gemakkelijk en snel veranderd kan worden. Ook voor het programmeren van flash-geheugen is het nodig dat het programma in het RAM-geheugen ligt, omdat het niet mogelijk is tegelijkertijd een flash-ROM te programmeren en daaruit het programma te laden.
Materials
Gerber bestand
De PCB bij dit artikel is als Gerber file beschikbaar gesteld. Elektor Members kunnen exclusief deze files gratis downloaden en gebruiken om de PCB zelf af te drukken met geschikte apparatuur óf de Gerber te laten drukken via een dienstverlener.
Elektor kan u bijvoorbeeld de PCB Service van onze partner Eurocircuits van harte aanbevelen of AISLER.
Het gebruik van onze Gerber files is vrijgegeven onder een Creative Commons- licentie. Creative Commons biedt auteurs, wetenschappers en andere creatieve makers de vrijheid om op een flexibele manier met hun auteursrechten om te gaan.
PCB
Extra info / Update
Lezersvraag:
Uitlezen van controllers
Onlangs ben ik gaan experimenteren met Atmel-controllers. Mijn vraag is of de programma’s ook weer uit deze controllers te lezen zijn? Ik kan wel programma’s erin stoppen, maar uitlezen is mij nog niet gelukt.
Ik gebruik het 89S8252-flashboard (Elektuur, december 2001).
Mijn tweede vraag is of voor elke controller een aparte programmer moet worden gebruikt?
Micky Verwoord
Helaas is het met de door Elektuur geleverde software niet mogelijk de de controller uit te lezen. In principe kan de gebruikte controller, de AT89S8252, wel uitgelezen worden, maar alleen als de beveiligingsbits niet geprogrammeerd zijn. Een geschikt programma kunt u downloaden via www.b-kainka.de/atmelisp.zip. Deze software kan met verschillende hardware overweg, onder andere ook met het flashboard van Elektuur.
Op uw vraag of voor iedere controller een aparte programmer moet worden gebruikt is geen eenvoudig antwoord te geven. Sommige programmers kunnen maar één bepaalde controller programmeren, terwijl er ook programmers zijn die met wel duizenden verschillende controllers werken. Meestal is het wel zo dat de goedkopere types een hele ‘familie’ controllers kunnen programmeren.
Een geschikte zelfbouwprogrammer die met verschillende families werkt is de ‘Multi-Programmer’ uit Elektuur juni 2004. Deze programmer ondersteunt onder andere ook de 89S8252.
Update:
Signaal /CE IO0 heeft een bereik van 0 t/m 0x7FF (A15 t/m A11 zijn 0). Daarom zijn /CE0 t/m /CE7 meerdere keren gespiegeld in dit adresbereik. Om dezelfde reden loopt /CE_IO1 van 0x800 t/m 0x7FFF (en niet van 8 t/m 0x7FFF).
Overigens is het zo dat in de memory-maps CE I/O0 abusievelijk CE I/O2 is genoemd (Figuur 1 en 2 rechtsonder). In het schema staat wél CE I/O0.
Even de puntjes op de i: De gaatjes op de print zijn gemaakt voor een Lithium batterij waar de aansluitingen al aan zijn bevestigd in de fabriek. Er wordt dus niet een losse houder met een losse batterij gebruikt. Typenummers zijn CR2032P-H of CR2450P-H.
Lezersvraag:
Het is mij onduidelijk welke software ik nu moet gebruiken met het 80C552-board uit Elektuur januari 2004. Kan ik hiervoor software bij jullie bestellen en zo ja, wat kost dat dan?
Volker Müller
In het artikel is toch duidelijk vermeld dat dezelfde software kan worden gebruikt als bij het MSC1210-experimenteerbord. Zie Elektuur juli/augustus 2003. Deze programmatuur is gratis te downloaden van de website van Elektuur.
Ga hiervoor naar www.elektuur.nl/tijdschrift. Kies vervolgens ‘Zoeken in tijdschrift’ en zoek naar "030060-11". Klik op de link 030060-11.zip om de software (6,68 MB) binnen te halen.
Verder heeft u nog 030042-11.zip nodig. Dit bestand bevat de broncode van de OS552- en hello- programma’s, evenals flash552.hex, de source-code voor de GAL en de JEDEC-bestanden.
In het artikel staat niet duidelijk dat na installatie van de software van het SC1210-experimenteerbord (030060-11.zip) de file flashmon.bix vervangen dient te worden. Deze dient dus verangen te worden door flashmon.bix uit de zipfile 030042-11.zip
Uitlezen van controllers
Onlangs ben ik gaan experimenteren met Atmel-controllers. Mijn vraag is of de programma’s ook weer uit deze controllers te lezen zijn? Ik kan wel programma’s erin stoppen, maar uitlezen is mij nog niet gelukt.
Ik gebruik het 89S8252-flashboard (Elektuur, december 2001).
Mijn tweede vraag is of voor elke controller een aparte programmer moet worden gebruikt?
Micky Verwoord
Helaas is het met de door Elektuur geleverde software niet mogelijk de de controller uit te lezen. In principe kan de gebruikte controller, de AT89S8252, wel uitgelezen worden, maar alleen als de beveiligingsbits niet geprogrammeerd zijn. Een geschikt programma kunt u downloaden via www.b-kainka.de/atmelisp.zip. Deze software kan met verschillende hardware overweg, onder andere ook met het flashboard van Elektuur.
Op uw vraag of voor iedere controller een aparte programmer moet worden gebruikt is geen eenvoudig antwoord te geven. Sommige programmers kunnen maar één bepaalde controller programmeren, terwijl er ook programmers zijn die met wel duizenden verschillende controllers werken. Meestal is het wel zo dat de goedkopere types een hele ‘familie’ controllers kunnen programmeren.
Een geschikte zelfbouwprogrammer die met verschillende families werkt is de ‘Multi-Programmer’ uit Elektuur juni 2004. Deze programmer ondersteunt onder andere ook de 89S8252.
Update:
Signaal /CE IO0 heeft een bereik van 0 t/m 0x7FF (A15 t/m A11 zijn 0). Daarom zijn /CE0 t/m /CE7 meerdere keren gespiegeld in dit adresbereik. Om dezelfde reden loopt /CE_IO1 van 0x800 t/m 0x7FFF (en niet van 8 t/m 0x7FFF).
Overigens is het zo dat in de memory-maps CE I/O0 abusievelijk CE I/O2 is genoemd (Figuur 1 en 2 rechtsonder). In het schema staat wél CE I/O0.
Even de puntjes op de i: De gaatjes op de print zijn gemaakt voor een Lithium batterij waar de aansluitingen al aan zijn bevestigd in de fabriek. Er wordt dus niet een losse houder met een losse batterij gebruikt. Typenummers zijn CR2032P-H of CR2450P-H.
Lezersvraag:
Het is mij onduidelijk welke software ik nu moet gebruiken met het 80C552-board uit Elektuur januari 2004. Kan ik hiervoor software bij jullie bestellen en zo ja, wat kost dat dan?
Volker Müller
In het artikel is toch duidelijk vermeld dat dezelfde software kan worden gebruikt als bij het MSC1210-experimenteerbord. Zie Elektuur juli/augustus 2003. Deze programmatuur is gratis te downloaden van de website van Elektuur.
Ga hiervoor naar www.elektuur.nl/tijdschrift. Kies vervolgens ‘Zoeken in tijdschrift’ en zoek naar "030060-11". Klik op de link 030060-11.zip om de software (6,68 MB) binnen te halen.
Verder heeft u nog 030042-11.zip nodig. Dit bestand bevat de broncode van de OS552- en hello- programma’s, evenals flash552.hex, de source-code voor de GAL en de JEDEC-bestanden.
In het artikel staat niet duidelijk dat na installatie van de software van het SC1210-experimenteerbord (030060-11.zip) de file flashmon.bix vervangen dient te worden. Deze dient dus verangen te worden door flashmon.bix uit de zipfile 030042-11.zip
Onderdelenlijst
Weerstanden:
(alle weerstanden: SMD 1208)
R1,R2,R5...R8,R11...R16 = 0 Ohm (zie tekst)
R3, R4 = 3k3
R9 = 330 k
R10 = 130 k
R17 = 1 k
R18 = 10 k
Condensatoren:
(alle condensatoren: SMD 1208)
C1,C2 = 33 p
C3...C6 = 1µ/16 V
C7...C13 = 100 n
Halfgeleiders:
D1 = LED rood, high-efficiency, 3 mm
T1 = BC516
IC1 = MAX691 CWE (SO16)
IC2 = MAX232 (SO16)
IC3 = 74HC573 (SO20)
IC4 = 80C552 EFA PLCC68
IC5 = 29F010, 32 pens DIP, <=120 ns - geprogrammeerd, bestelnr. EPS030042-21*)
IC6 = GAL 16V8 D15QP - geprogrammeerd, bestelnr. EPS030042-31*)
IC7 = 74HC138 (SO16)
IC8 = 62256 28 p DIP <=120 ns
Diversen:
X1 = kristal 11, 0592 MHz
B1 = lithium-batterij CR 2032 met printhouder
K1,K2 = 36-polige SIL-header
K3 = female DB9-connector (niet op print)
IC-voeten voor IC4...6, IC8
JP1 = 2-polige jumper
(alle weerstanden: SMD 1208)
R1,R2,R5...R8,R11...R16 = 0 Ohm (zie tekst)
R3, R4 = 3k3
R9 = 330 k
R10 = 130 k
R17 = 1 k
R18 = 10 k
Condensatoren:
(alle condensatoren: SMD 1208)
C1,C2 = 33 p
C3...C6 = 1µ/16 V
C7...C13 = 100 n
Halfgeleiders:
D1 = LED rood, high-efficiency, 3 mm
T1 = BC516
IC1 = MAX691 CWE (SO16)
IC2 = MAX232 (SO16)
IC3 = 74HC573 (SO20)
IC4 = 80C552 EFA PLCC68
IC5 = 29F010, 32 pens DIP, <=120 ns - geprogrammeerd, bestelnr. EPS030042-21*)
IC6 = GAL 16V8 D15QP - geprogrammeerd, bestelnr. EPS030042-31*)
IC7 = 74HC138 (SO16)
IC8 = 62256 28 p DIP <=120 ns
Diversen:
X1 = kristal 11, 0592 MHz
B1 = lithium-batterij CR 2032 met printhouder
K1,K2 = 36-polige SIL-header
K3 = female DB9-connector (niet op print)
IC-voeten voor IC4...6, IC8
JP1 = 2-polige jumper
Discussie (0 opmerking(en))