





PIC-Programmering
Kommersiella PICmcu programmerare
Programmeraren är den hårdvara som för över ett datorprogram från en utvecklings dator till PIC kretsen fysiskt via kablar eller liknande. Är man interesserad av själva programmeringen av programmen man ska föra över så kika då längre ner på utvecklingsverktyg som behövs samt programmerings metodik samt rekommenderad läsning.
-
BasicMicro tillhandahåller:
ISP-PRO, en rs-232 baserad, PIC-programmerare som där designad för ISP programmering. ICSP, In-Circuit Serial Programming, är när man programmerar kretsar som är inlödda på plats i slutapplikationen. ISP-PRO kan användas med
Basic Micros egenutvecklade programmerings-programvara som man kan ladda hem från deras hemsida. I Sverige kan man köpa ISP-PRO via ELFA.
-
Microchips tillhandahåller 2st (RS-232 baserade) PIC-programmerare mot beställning:
- PicStart Plus (200$ USD) Kan programmera kretsar direkt från Microchips MPLAB IDE. ( PicStart Plus säljs av
ELFA men finns ej med i deras oficiella katalog )
- Pro Mate II (1000$ USD) Har alla finesser som PicStart Plus samt att den även kan programmera ytmonterade kretsar (och andra features).
-
Adteknik säljer programmerare som fungerar med ICSP kompatibla med PICmcu kretsar. Adtekniks programmerare kan även programmera smartcards. Finns med USB eller serial interface, Prisvärt!
- microEngineering Labs har enparallelportsbaserad PIC-programmerare för 18Pins DIL-kapslade PIC-kretsar.
- Labtronics "PICFun" kan vara en värdig RS-232 baserad programmerare
- Newfound Electronics
Warp-13 , En programmerare i klass med PICSTART Plus med stöd för ISCP. Warp-13 kan köras direkt från MPLAB med PICSTART Plus drivrutiner.
-
Engage! "Probably the best kept secret in the PIC programming world..." - Förbättrade drivrutiner för PICSTART Plus och Warp-13 som kan laddas ned gratis från Newfound Electronics hemsida.
my
Velleman k8048. Fully functional, includes software CD, and free serial cable. Perfect for beginners, avoids all the trouble with homebuilt programmers. 200:- mail Dach att skynet dot ie
Hemmabyggen, billigt och bra för hobbybyggaren!
- Med
Datormagazin nummer 1 2005 medföljer ett kretskort för att bygga en programmerae av JDM-typ för ICSP programmering av PICmcu kretsar! Datormagazin skriver i sin tidning att man kan beställa kretskorten separat från datormagazin om man vill bygga flera stycken hemmabyggen, på kretskortet finns det förrutom JDM programmeraren en nybörjarkoppling som kan användas för att bygga en
serialportsbaserad "mätare". - Mycket billigt!
- http://www.elfa.se/elfa/produkter/se/9007.htm ELFA säljer en PIC experiment/programmerare byggsats tillverkad av Velleman. Kan vara en billig genväg att både få en PIC programmerare samt en färdig testmiljö för enklare PIC program.
- http://www.velleman.be/ - Uppdateringar finns på vellemans hemsida under menyn - support : downloads : K8048: PIC Programmer & Experiment board
- http://www.myke.com/elcheapo.htm elcheapo ! funkar utmärkt med de flesta kretsar samt att den kan byggas för under 500 Sek. Använder sig av ett separat programmerings verktyg för windows. (parallelportsbaserad)
- http://www.jdm.homepage.dk/newpic.htm Jens Dyekjær Madsens PIC-Programmer 2. Seriell programmerare utan extern strömförsörjning som programmerar PICar och EEPROM. Billigare och enklare än elcheapo! :) Se CareBears ritning av Jens Dyekjær Madsens PIC-Programmer 2
JDMs newpic och ev. även elcheapo går att använda med IC-Prog http://www.ic-prog.com/ för Windows. JDMs newpic fungerar både med prog84 http://home3.inet.tele.dk/frda/picasm/prog.html och picprog http://hyvatti.iki.fi/~jaakko/pic/picprog.html i Linux/Unix.
Lägg följande i ~/.prog84rc för att använda prog84 med JDMs newpic: (från http://webtomware.rhoen.de/pic/)
port serial
base= 0x3f8
power: TxD
mclr: TxD
data: DTR
data_f: CTS
clock: RTS
Bootloaders - ett litet program som möjligör att en PIC krets kan programmera om sig själv utan hjälp av en programmerare.
Bootloaders fungerar enbart på flash baserade pic kretsar.
- http://www.thebytefactory.com/dl_codeloader.asp - Flexibel och smidig bootloader skriven för CCS PIC-C kompilatorn. När bootloadern är på plats kan man programmera om sina PIC kretsar direkt via rs232 genom att skicka .hex filer i klartext över serialporten. Gratis att använda sålänge man inte ändrar på copyrighten. Färdigkompilerade .hex filer med bootloadern finns att ladda ned samt komplett källkod.
-
Tiny PIC bootloader - RS232 baserad boodloader med implementation på under 100 instruktions ord!
- sidan har även en lista på alternativa bootladers!
-
AN851 - Microchips dokumentation hur man implementerar en bootloader för PIC16 och PIC18 kretsar via serialport (rs232).
Utvecklingsverktyg och programmeringsspråk.
- PASCAL, MikroPascal for PIC-processorer http://www.mikroelektronika.co.yu/english/product/compilers/mikropascal/index.htm
- ASM
- MPLAB IDE, Microchips egna assembler utvecklings miljö som man kan
ladda hem gratis från Microchips hemsida.
- MPLAB är mycket bra till om man vill räkna ut konfigurations värdet som ska programmeras in i konfigurerings registret för olika PIC kretsar.
- gputils http://gputils.sourceforge.net/ Ett paket med GNU-licensierade utvecklingsverktyg för PICar, däribland gpasm som är mycket kompatibel med MPASM som kommer med MPLAB. gputils innehåller också ett helt nytt högnivåspråk för PIC-programmering som heter gpal. http://gputils.sourceforge.net/gpal.html
- BASIC
-
MBasic, tillverkat av BasicMicro är designat att användas med deras egen programmerare ISP-PRO.
- http://www.picbasic.org/ - En alternativ basic kompilator med gratis lite version som kopilerar program upp till 50 rader.
- Forth
- C , Dom flesta C kompilatorer för PIC processorer är komersiella men erbjuder ofta en gratis test period innan man köper en licens för mjukvaran. http://www.microchipc.com/ - Bra sida som tar upp olika för och nackdelar mellan olika PIC C kompilatorer samt har ett stort arkiv med källkod för C implementeringar.
- JAL
- Smalltalk
- LOGO : Innuti LEGO mindstorm produkterna som man kan köpa i leksaksaffären sitter en liten PIC processor som kan programmeras med högnivåspråket LOGO via IR. Licens från LEGO via köpa av mindstorm produkterna...
- PIC Emulatorer
Projekt och Hemmabyggen
PIC TV-spel samt andra TV applikationer
"Propeller klocka"
Sensorer
http://www.mat.ucsb.edu/~dano/sensors/index.php/Main_Page - Sensor Wiki med flertal experiment med att koppla sensorer till mikrodatorer.
USB
MIDI
http://www.audiomulch.com/midipic/ - styr elektronik med MIDI!
http://magpieindustries.org/Laboratory/Sequencer - MIDI sequencer in development
Blandat
PICmcu morsekods sändare med LED - En minimal konstruktion som sänder ut ett flertal morsekodade medelanden via en liten lysdiod.
http://www.vermontficks.org/pic.htm - Ett flertal detaljerade projekt dokumenterade med foto samt källkod skriven i C (CSS).
http://www.funet.fi/pub/cbm/documents/projects/interfaces/mouse/Mouse.html - Serial mus interface för Commodore C64.
Problem och nybörjarmisstag
Är ditt problem av mjukvarumässig natur; kika då först på programmerings metodik samt rekommenderad läsning.
Är ditt problem relaterat till generell elektronik?
http://www.kpsec.freeuk.com/index.htm - Electronics Club, Kelsey Park School. Mycket bra tips på hur man använder dom vanligaste elektriska komponenterna som transistorer och dioder korrekt.
Problem: Jag vill kunna använda färdiga .hex filer tillsammans med MPLAB, hur gör jag för att importera .hex filerna in i MPLAB (IDE) programmet?
Lösning: Tips för att bränna .hex filer med PICSTART Plus och MPLAB
Problem: Min pic verkar inte starta med en keramisk resonator/kristall
Lösning: För att man ska kunna använda en resonator/kristall måste man konfigurera om konfigurations register som man bara kommer åt under programmering. Oscillator konfigurationen ska ställas in som HS(för resonatorer och kristaller över 4Mhz) eller XT(för resonatorer och kristaller upp till 4Mhz, drar även lite mindre strömm) för resonator/kristall.
Problem: Min pic verkar död när jag ger den ström, jag kan inte få den att ändra på något I/O ben!
Lösning: PICmicro MCUn måste ställa in sina PORT I/O ben för utgående signal innan man kan ändra signal på dom. Inställningen görs med registret TRIS (TRISA för I/O port A).
En låg bit i TRIS registret motsvarar ett utgående I/O ben på PICmicro MCUn.
TRIS registren ligger i minnesbank 1 medans PORT registren ligger i minnesbank 0, glömm inte att ändra minnesbank innan access görs till TRIS registren (detta görs automatiskt med vissa högnivåspråk som C).
Problem: Min pic startar om hela tiden!
Lösning:
- Kontrollera att inte Watchdog timern är påslagen i konfigurations registret om du inte använder dig av den för då tror pic kretsen att ditt programm har hängt sig efter ett litet tag och startar om. Om man vill köra med watchdog så ska man signalera egelbundet till watchdogtimern att programmet går annars så blir det omstart.
- Kontrollera även strömförsörjningen! Om du driver din pic krets från batteri så måste det vara god signal till MCLR benet, om signalen till MCLR benet är svajig kan pic kretsen starta om oregelbundet.
Problem: Jag kan inte få min LCD display att fungera korrekt!
Problem: Jag vill tillverka riktiga kretskort och grejjer! Samt göra snygga kopplingssheman.
Lösning: Kolla efter företag som kan hjälpa dig på sidan om elektronik för pysslingar (DIY projekt). Finns en del gratisprogram från vissa kretskortstillverkare som man kan använda sig av.
Programmerings metodik
Ha rätt kunskap innan du börjar programmera! Microchip tillhandahåller teknisk information gratis för sina PIC kretsar och det är bara att gå in på länken här under:
http://www.microchip.com/1010/search/prodsel/index.htm - Sida för att hitta rätt teknisk specifikation för just din krets.
I större komersiella programmering projekt räknar man med att det tar en timme per rad programkod för att allt ska fungera precis som man vill. Ha tålamod och gå igenom dina tankegångar flera gånger. Att sitta två personer på en dator och programmera brukar underlätta upplägget av struktur och har visat sig vara mer produktivt änn två programmerare på var sin dator. Parprogrammering brukar även kallas
Extrem Programmering.
Att programmera i C istället för assembler kan underlätta strukturen samt underlätta uträkningar avsevärt då vissa C kompilatorer kan beräkna mattematik med hög nogrannhet. Dom flesta PIC kretsar är 8bit datorer som med sina inbyggda processor instruktioner bara kan räkna med heltal upp till 255.
http://www.microchipc.com/sourcecode/ - Sida med källkod och lösningar i C för många PIC problem.
http://www.piclist.org/techref/microchip/16f877adsamp.htm - Tråd för hur ADC avläsning kan gå till i assembler.
Serial överföring med PIC kretsar, olika varianter
Programmering och programmeringsmetodik med programmeringsspråk av olika smaker.
Läs mer på Bygg sidan om du vill hjälpa till att redigera innehållet på Gudinna WIki.
Frågor
Har du något problem som du inte kan räkna ut vad som är fel så lämmna ett meddelande!
Tänk på att källkod som publiceras på den här sidan kommer bli publik för hela internet så publicera ingen information som kan bryta mot företags policys eller som anses hemmlig.
Vi uppmuntrar besökare av denna wiki server att hjälpa varnadra med PIC programmering och problemlösning eftersom det tycks saknas bra forum för hobby PIC programmerare att sätta sig in hur man kan lösa större projekt och få bättre insikt i mikroprocessor programmering, speciellt på svenska! Vill ni ha hjälp att lösa problem i komersiella applikationer med skyddad källkod så kan konsulthjälp erbjudas mot ekonomisk ersättning // Kontakta mig (Xerxes) för mer information.
Tack på förhand, vi som administerar Gudinna.com.
Har köpt velleman kit K8048.Jag har försökt programmera PIC 16F876,
men programmat läses inte in.Andra kretsar går att programmera helt OK.Om någon har råkat utför samma fenomen, och har någon lösning är jag tacksam för hjälp! Holger E.
Holger: Hur högt spänning få du från din power supply?
Hur man kan bygga en EEPROM programmerare för Am39LV040B - diskussionen har nu fått en egen sida
Hur kan man starta A/D-omvandling?
- A/D omvanling kallas ADC (Analog Digital Converter) i pic termonologi.
- http://www.piclist.org/techref/microchip/16f877adsamp.htm - Tråd för hur ADC avläsning kan gå till i assembler.
- Vill du köra A/D omvanlig med C kompilator, kika då på exempel programmen som följer med den C kompilator du använder, dom flesta C kompilatorer har färdiga funktioner som man kan använda för att enkelt göra en A/D avläsning från valfritt analog ben.
Tipsen till Harley har flyttats till sidan: Tips för att bränna .hex filer med PICSTART Plus och MPLAB
" Turbo-Mattias PIC bygge i c för att styra en detalj med flera PIC kretsar " - Jag har flyttat din diskussion hit så att vi kan koncentrera på ditt problem // Xerxes
Referenser till aktuell sida