Pic32
Om kretsen

Microchip Pic32 är en familj kraftfulla microcontrollers, baserade på
MIPS32® M4K® kärna, som skulle kunna passa ett mekatroniskt projekt som detta. Det finns många in och utgångar för att styra motorer och hämta in data från kameramoduler, AD-omvandlare för att läsa av lägesgivare, möjlighet till seriekommunikation med omvärlden och mycket mer. Allt detta i en liten krets programmerbar via t.ex.
MPLAB's c-kompilator. Pic32'an snurrar med 80 MHz så den är hyffsat snabb och -
lite beroende på vilken modell man väljer - ett primärminne (flashminne) på ungefär mellan 32 och 512 Kbyte och program/dataminne på 32-128 Kbyte. Det finns egentligen bara ett uppenbart fel med denna krets. Den är så liten och har så många ben att den är praktiskt omöjlig att arbeta med. Man är därför som hobby-nisse utlämnad till något av de kretskort som gör dess pinnar åtkomliga. Lyckligtvis har det börjat dyka upp en hel del olika kort med denna processor (se längst ner).
Lite specifikationer

Klockfrekvens:
80MHz
Flash (beroende på krets):
32-512 KB
RAM (beroende på krets):
32-128 KB
DMA-kanaler (beroende på krets):
0-8 kanaler
A/D-kanaler:
16 stycken
A/D bitar upplösning:
10 bitar
Komparatorer:
2 stycken
Timers:
5x16 bitar och 1 eller 2 32-bitar beroende på krets
Capture/Compare:
5 input capture
PWM:
5 std. PWM
UART (beroende på krets):
2-6 st.
SPI (beroende på krets):
2-4 st.
I2C (beroende på krets):
2-5 st.
CAN Modules (beroende på krets):
0-2 st.
USB 2.0:
Krets MX420 och uppåt
Ethernet 10/100 Base-TX Mac:
Krets MX675 och upp.
Det som skiljer mellan de olika varianterna av Pic32 är alltså förutom storleken på minnet, antal DMA-kanaler, hur många serieportar den ska ha samt om man vill ha USB och/eller ethernet.
Olika sätt bekanta sig med Pic32
Pic32 Starter Kit
Ett enkelt överkomligt sätt bekanta sig med denna processor är
Pic32 Starter Kit.
Detta består av ett kretskort som förutom Pic32 bl.a. innehåller 3 knappar och 3 lysdioder. Inget banbrytande men tillräckligt för att knacka lite kod i
MPLAB, tanka över det till kretsen, och se att det fungerar. Dessutom en krets
PIC18LF4550 USB Microcontroller som tar hand om USB och gör att du inte behöver någon programmerare. Det räcker att koppla ihop detta kretskort med datorn.
Det går att plugga in USB direkt i vissa varianter av Pic32'an men för att programmera kretsen den vägen måste du då först förse Pic32 med en bootloader.
Rinnande ljus på Pic32 Starter Kit
Jag köpte naturligtvis ett Pic32 starter och här nedan är att mitt testprogram. Det får de tre lysdioderna på kretskortet att "rinna". Exemplet gjort med avbrottsvektor.
#include <plib.h>
// Antal klockcykler mellan varje avbrott
#define CORE_TIMER_PERIOD 2000000
// Håll koll på vilken LED som lyser för tillfället
int cnt=5;
int main(void)
{
// Initiera LED på kretskortet
mPORTDSetPinsDigitalOut(BIT_0);
mPORTDClearBits(BIT_0);
mPORTDSetPinsDigitalOut(BIT_1);
mPORTDClearBits(BIT_1);
mPORTDSetPinsDigitalOut(BIT_2);
mPORTDClearBits(BIT_2);
// Sätt upp avbrottsvektor
OpenCoreTimer(CORE_TIMER_PERIOD);
mConfigIntCoreTimer((CT_INT_ON |CT_INT_PRIOR_2|CT_INT_SUB_PRIOR_0));
INTEnableSystemMultiVectoredInt();
return 0;
}
void __ISR(_CORE_TIMER_VECTOR, ipl2) CoreTimerHandler(void)
{
cnt++;
cnt%=3;
mCTClearIntFlag(); // nolla avbrottsflagga
switch(cnt)
{
case 0:mPORTDToggleBits(BIT_2); break;
case 1:mPORTDToggleBits(BIT_0); break;
case 2:mPORTDToggleBits(BIT_1); break;
}
UpdateCoreTimer(CORE_TIMER_PERIOD);
}
"Pic32 on a DIP"
Mr Ohmit, som äger sajten
eflightworks, har konstruerat detta kretskort som i allt

väsentligt gör PIC32-kretsen praktiskt åtkomlig. Mr Ohmit har gjort flera olika utvecklingssystem för Pic24 och
Pic32. Han har arbetat med Pic-produkter i över 10 år. Han är också en Microchip Design Partner. För 35 dollar (under 300 kr) plus 10 dollar i frakt skickar han en "Pic32 on a DIP".
Programmering
Kretsen har en USB-bootloader i sig vilket gör den enkelt programmerbar genom att man pluggar in USB-kabeln i den och startar upp MPLAB.
USB 32-bit Whacker (UBW32)
Brian Schmalz har designat detta break-out kretskort för Pic32'an vilket är det som jag tittat närmare på för detta projekt. Efter lite forskade och exprimenterande med denna krets har jag skrivit en liten beskrivning
hur man kommer igång med UBW32 och hur
UBW32 är designad.
Programmering
Kretsen har en USB-bootloader i sig och du använder ett speciellt program på PC-sidan för att tanka över koden.
Läs mer om hur du programmerar UBW32.
Chipkit 32
Chipkit32 är
microchips bidrag till den allt mer populära
Arduino-plattformen. Det har funnits lite kritik att microchips inte bidragit tillräckligt med drivrutiner till kortet men detta verkar ha lossnat nu.
Pinguino
Pinguion är ytterligare ett arduino -kompatibelt kort med Pic32'an. Spontant verkade det rätt så väldokumenterat och som alla andra
arduinokort är det ganska billigt, drygt 200 kr. Jag köpte ett sådant och skall leka med det längre fram. När jag plöjde lite djupare i "dokumenteringen" verkade det dock inte helt lätt komma upp på spåren med detta kort, så jag har lagt det åt sidan tills vidare.