UsbPicProg
UsbPicProg er en alternativ brænder, der er udviklet som freeware hardware og software-brænder ved projektet usbpicprog.org. Det er et stykke software, som findes både til Windows, MAC og Linux, der ved hjælp af et stykke hardware kan brænde maskinkode fra en HEX-fil ned i PIC'en, så man kan afvikle programmet.
PIC programmeren (her UbsPicProg) skal fungere som en del af et PIC Programmeringsmiljø, hvor brænderen er sidste trin for at få tingene over på et udviklingsboard. Vi anvender JAL sproget i undervisningen, hvor man skal have en Editor til at redigere kildefilerne med, og en compiler der kan oversætte kildekoden til en HEX-fil.
Softwaren
| På computeren skal vi have et program, der tilfældigvis hedder UsbPicProg, som vi kan bruge til at brænde vores programmer over på PIC’en når de er oversat til maskinkode som ligger i en HEX-fil. Den version vi arbejder med nu er UsbPicProg 0.5.0, der kan downloades fra projektets hjemmeside, inde på deres Download side. Når man starter programmet er det en fordel at have koblet PIC udviklingsmiljø op, altså at have tilsluttet UsbPicProg brænderen, og have tilsluttet sit udviklingsboard, for så finder UsbPicProg softwaren ud af hvilken PIC-type der er tilsluttet. Man bruger programmet ved at importere en HEX-fil (Rød markering), og det man kan se nede i Program Memory er den maskinkode der vil blive programmeret over i PIC'en - Koden er vist som Hexadecimale tal. For at teste om brænderen virker, så ligger der en ZIP-fil der indeholder små test-programmer man kan brænde over på de typer PIC vi anvender. Man skriver koden over ved at trykke Program (blå markering) - her må der ikke komme en fejlmelding, den skal sige OK til det. På Play- og stop-knappen (grøn markering) kan man tænde og slukke for sit udviklingsboard | 
Hardwaren
Softwaren skal arbejde sammen med noget hardware (selve programmeren der sluttes til USB-porten). På denne hardware skal der ligge en firmware, der er den kode der aktuelt skriver koden over på vores udviklingsboard. På Holstebro HTX arbejder vi med forskellige versioner, som beskrevet her under.
Det kan lade sig gøre at købe UsbPicProg ved den der har udviklet tingene, men da det også ligger som open source, så har vi på Holstebro HTX valgt at udvikle vores egen version, og gør som man skal med Creative Common, nemlig stiller det vi har lavet til fri afbenyttelse.
Den version vi anvender på Holstebro HTX
| På vores udviklingsboard, har vi et stik med 6 pins, der bruges til at programmere PIC’en. Den måde der programmeres på kaldes ICSP, der står for at programmeringen sker serielt via enkelte ben på PIC'en, og at det sker mens PIC'en sidder i kredsløbet. På PC'en/MAC/Linux slutter vi UsbPicProg til en USB port, der kan forsyne brænderen og vores udviklingsboard. Udviklingsboardet forbinder vi til vores UsbPicProg brænder, som er forbundet til vores computere via USB. Diagram og Layout er lavet i Eagle og ligger i denne ZIP-fil. I denne version vi anvender til daglig har vi valgt ikke at have mulighed for at programmere firmware. | UsbPicProg brænderen i brugs-udgave udviklet på Holstebro HTX | 
Brænder der også kan brænde firmware
| For at kunne komme i gang med UsbPicProg skal man have en PIC18F2550 med den rigtige Firmware brændt ind i PIC'en. Derfor er der lavet en version, hvor man kan brænde firmwaren over i brænder-pic'en ved hjælp af et PICkit 2, så man kan komme i gang - men det kræver så selvfølgelig at man har en af den type brænder. Diagram og Layout er lavet i Eagle og ligger i denne ZIP-fil sammen med den firmware jeg har brændt på den og har fået tingene til at fungere med (september 2012), hvis man skal have alt til at fungere med det nyeste vil det være en fordel at tjekke om der er sket videre udvikling på usbpicprog.org. | UsbPicProg brænderen med programmerings-stik, så man kan brænde firmware | 
Brænder der kan købes på nettet
| Den original UsbPicProg kan købes i en SMD version, hvor alt er fikst og færdigt, med den rigtige brænderkode lagt ind i den PIC18F2550 microcontroller der sidder med USB-kommunikationen og med selve brænder-funktionen. Fordelen ved denne version er at den kan opdatere sin firmware. Den version har dog den ulempe, at den ikke anvender samme stik-forbindelse som PICkit 2 | UsbPicProg brænderen i original form - fra [1] | 
Firmware
| Den firmware der skal brændes ind på UsbPicProg programmeren er i dag (september 2012) version 0.5.0, og den kan findes på projektets download page. For at kunne brænde firmwaren ind skal man have en PICkit 2, der kan brænde en PIC18F2550, og man skal have den UsbPicProg der er udviklet til at kunne brænde firmware (skal have både brænderstik til udviklingsmiljøet og til at brænde Pic-programmeren selv). Brændingen af firmwaren foregår i to trin. Først skal der brændes en bootloader ind i den PIC18F2550 der sidder på brænderen, og derefter skal selv firmwaren brændes ind i den - det forgår på to forskellige måder, så man skal lige holde tungen lige i munden. Bootloaderen der skal brændes ind på UsbPicProg programmeren er i dag (september 2012) version 1.0, og den kan findes på projektets download page (filen hedder boot1.0.hex). Inden man brænder bootloaderen ind er det en god ide at slette indholdet i PIC'en først. Når man loader HEX-filen, så advarer PICkit 2 om at det ikke er alle configurations bits der er sat - det skal man bare ignorere og brænde den ind alligevel. Man brænder som vist her til højre. |  Her brændes Bootloaderen ind i UsbPicProg | 
| Når man har brændt bootloaderen ind i UsbPicProg, så er man færdig med PICkit 2 brænderen. Man skal have brændt selve firmwaren ind i UsbPicProg, så kobler man en jumper på brænderens eget stik, for at angive at der bootloader koden der skal anvendes. Så sætter man UsbPicProg til PC'en via USB-kablet, så man kan få kontakt til UsbPicProgs bootloader, ved at starte softwaren UsbPicProg. Her vælger man så "Upgrade Firmware" under "Actions", og indlæser filen firmware-0.5.0.hex, eller hvis det er en anden version, så vil den sikkert ligge sammen med UsbPicProg softwaren - man skal blot sikre sig at firmware og computer-softwaren kan arbejde sammen. |  Her brændes Firmwaren ind i UsbPicProg - læg mærke til den grønne jumper på programmering-stikket | 
| Når Firmwaren er brændt ind i PIC18F2550, så kan den anvendes i den anden type brænder vi bruger på Holstebro HTX. Hvis man ønsker at bruge den programmer, der kan programmere firmwaren til at brænde ind i udviklings-miljøet, så skal der ændres på jumperne, og fordi brænderstikket er tilpasset til PICkit 2 standarden, så skal der sættes en noget andet på, som kan forbinde ben 1 og 2, og noget der kan forbinde ben 3 og 5 - her er det simplest at lave et lille jumper-stik som illustreret her. |  Her anvendes UsbPicProg med ekstra programmerstik - læg mærke til det specielle stik med kortslutninger på programmerings-stikket | 
| PIC | |
|---|---|
| PIC-Typer | PIC16F84 - PIC12F675 - PIC16F628 - PIC16F684 - PIC16F690 - PIC16F877 - PIC18F2550 | 
| Programmeringsbegreber | Maskinkode - Mikrocontroller | 
| Programmeringsmiljø | PIC-brænder - UsbPicProg - Analog indgang - ICSP | 



