Konstruktion...
PicBurnII
Indledning
Konstruktion
Afprøvning
Downloads...
Tilbage til...
Projekt kataloget
ibrefer.dk

Opbygning af Hardware og Software

Hardware-delen
En af de krav jeg havde, var at overførslen af HEX-filer skulle foregå via USB. Derfor fandt  jeg en USB-controller (CP2101) fra CYGNAL. Denne controller laver en virtuel COM-port (serielport). Derved har jeg mulighed for at anvende alle de samme faciliteter, som jeg ville have, hvis der var tale om en traditionel seriel port.

Til at styrer timingen i selve brændeprocessen har jeg valgt en PIC16F84A fra Microchip. På den måde er jeg ikke afhængig at den timing, der måtte være på selve overførslen fra computeren.

De fleste nye microcontrollerer i PIC16Fxxx serien understøtter både low-voltage og high-voltage programmering, men da en del ældre PIC-typer kun understøtter high-voltage programmering, så har jeg valgt at min brænder skal understøtte high-voltage programmering, således dækker jeg alle microcontrollere i PIC16Fxxx serien.
Der er dog et problem ved dette valg... USB porten leverer kun 5 volt og high-voltage programmeringen kræver 13,5 volt. Da jeg ikke ønsker også at skulle have en ekstern strømforsyning, så må jeg selv lave de 13,5 volt ud fra USB portens forsyning. Dette gør jeg med en DC-DC konverter af typen LM2703 fra  National Semiconductor.

Så denne brænder består groft sagt at 3 hovedkomponenter:

  • CP2101 som står for kommunikation mellem brænder og computer (på signalniveau)

  • PIC16F84A som står for timing af programmeringsprocessen og kommunikation

  • LM2703 som leverer 13,5 volt til high-voltage programmeringen ud fra USB'ens 5 volt.

Derudover er der selvfølgelig en del passive komponenter, men de sørger stort set kun for signalomsætningen mellem de 3 hovedkomponenter.

Selve diagrammet kan du se her: USB_PIC.pdf (findes også i download sektionen)

Herunder kan du se mit færdige printlayout, som det ser ud i Eagle. Eagle er et fantastisk printudlægningsprogram som gratis kan hentes hos CadSoft.



Den færdige brænder (mål: 2,55 x 6,35 cm). Som det kan ses, så er denne brænder lavet med SMD komponenter. Det er kun for størrelsens skyld. Det er ikke noget der forhindre at man laver en brænder med traditionelle komponenter, man skal blot være klar over at LM2703 og CP2101 kun fås i SMD.


Software-delen
Når man skal lave software til sådan en brænder, så er man lige nød til at skabe sig et overblik over hvilke hovedelementer eller funktionaliteter den skal indeholde.

Der skal være noget RS232C kommunikation, da C2101 modtager USB kommunikation og omsætter det til RS232C kommunikation. Til dette formål anvender jeg et RS232C bibliotek som jeg i tidernes morgen har brugt i anden forbindelse. Biblioteket kan du se her.

Så er man nød til at undersøge programmerings specifikationerne for PIC16Fxxx serien. Her vil jeg henvise til dokumentet In-Circuit Serial Programming fra Microchip. Men hvis man ikke gider at læse den specifikation igennem, så kommer pointen her...

For alle microcontroller i denne serie finder man følgende instruktioner, som kan anvendes når man befinder sig i programmerings-tilstanden.

  • Load Configuration

  • Load Data for Program Memory

  • Read Data from Program Memory

  • Increment Address

  • Begin Erase Programming Cycle

  • Load Data for Data Memory

  • Read Data from Data Memory

For nogle varianter i serien findes også et par andre instruktioner, som ikke er i de mindre typer. Men da man kan klare sig med de instruktioner som er vist ovenfor. Så anvender jeg princippet om "laveste fællesnævner". Nu bygges disse instruktioner sammen til nogle funktioner, de er som følger:

  • Overfør en HEX-fil fra computeren til den PIC-kreds, som skal programmeres.

  • Læs programmet i en PIC-kreds og send det som HEX-fil til computeren.

  • Slet programmet i en PIC-kreds.

  • Læs ID fra en PIC-kreds.

Det færdige program til brænderen kan du se her.

På PC-siden er der også lavet et program, som netop anvender de 4 ovennævnte funktioner, og desuden har et par ekstra... nemlig til at åbne og gemme HEX-filer.

Programmet har et stort vindue i midten som indeholder HEX-filen. Det kan være resultatet af en læsning som vist, eller en HEX-fil fra computeren. I bunden vises hvilken PIC-kreds som er tilkoblet brænderen (i dette tilfælde en PIC16F877A). Man kan også se hvilken virtuel COM-port brænderen er tilsluttet.
Du finder en lille introduktion til programmet her.

Nu skal vi bare have afprøvet om det virker! Du kan læse om afprøvningen her.