pso
Petr Porazil
Návrh hardware
adr
bvh

pprg - jednoduchý programátor procesorů PIC


Novinky 14.10.2010 - Rozšíření USB programátoru

Petr Porazil Home
peda
Linux a PIC
PIC32MX
Zavaděč (boot)
Programátor pprg
RS232 příklad
RS232 knihovna
TTL RS232
Solární systém
Ukázky aplikací PIC
Download
Potřeboval jsem otestovat nějakou elektroniku z SPI komunikací a napadlo mě využít k tomu usb programátor pp_pic2 (viz níže). S novým firmware je je možné programátor přepnout do SPI režimu. Provede se to příkazem S num, kde num je počet byte které se budou přenášet najednou. Maximálně lze přenáše 4 byte, zadáním S 0 se SPI režim vypne. Vlastní přenos se pak provede příkazem s num, kde num je číslo které bude vysláno, při vysílání se zaroveň i přijímá.

Pro SPI se používá stejný konektor jako pro programování. Zapojení pinů je následující:
1: VCC
2: GND
3: MISO
4: MOSI
5: SCLK
6: CS

Když už jsem do programátoru přidal SPI komunikaci, řekl jsem si proč tam nedat i RS232. Takže teď umí destička i převodník USB na RS232. Tento režim se aktivuje příkazem R num, kde num je komunikační rychlost. Funguje to spolehlivě pro rychlosti 1200 baud až 1Mbaud. V tomto režimu se všechny znaky přijaté přes USB odesílají na RS232 a naopak. Režim se dá ukončit stiskem tlačítka.

Používá se opět stejný konektor, jen nejsou potřeba všecny piny. Zapojení je následující:
2: GND
3: RXD
5: TXD
Úrovně jsou samozřejmě TTL a pokud se vezmou prostřední 4 piny, je zapojení v podstatě stejné, jako používám pro TTL RS232.

Výhoda tohoto řešení je v tom, že mi pro vývoj stačí jedna destička připojená na USB. Přes ni můžu PIC naprogramovat a potom s ním i sériově komunikovat.

Novinky 16.9.2010 - USB Programátor

Protože paralelní port už u nových počítačů není běžný, je potřeba programovat procesory jinak, nejlépe přes USB. Už dávno jsem začal připravovat programátor s obvodem FT232BM, hardwarově ho mám vyrobený, bohužel jsem nikdy nedodělal software.

Usoudil jsem, že bude jednodušší, udělat programátor pomocí dalšího procesoru. První verzi jsem měl nabastlenou s procesorem PIC18F26J11 a připojovala se přes sériový port, případně přes převodník USB na RS232.


U druhé verze jsem plánoval převodník zaintegrovat, aby bylo možné napájení z USB. Deska vycházela dost komplikovaná, tak jsem radši použil PIC18F26J50, který má USB řadič. Deska se zjednodušila, ale zkomplikoval se software. Tady je schéma, kompletní dokumentace k desce je součástí peda-examples. Pro ty kdo by si programátor chtěli nabastlit, jsem připravil i schema pro minimalizovanou verzi. Je omezena pouze na programování 3.3V procesorů.

Naprogramoval jsem to tak, že PIC emuluje FT232BM, takže není v PC potřeba žádný speciální software. Použije se standardní driver k FT232BM, který vytvoří virtuální sériový port. Dokonce to trochu funguje i ve Windows.


Komunikační protokol je stejný jako když se komunikuje s mým zavaděčem, to znamená, posílají se přímo řádky hex souboru. Pouze na začátek je potřeba poslat příkaz ke smazání paměti cílového procesoru. Pro práci s tímto programátorem, používám prográmek pprg-ser, viz níže, ale je možno posílat .hex i přes terminálový program.

Další zajímavou vlastností je autonomní programování bez počítače. Použitý procesor má 64kB paměti. Pro vlastní program a zavaděč je použito cca 20kB, do zbylých 44kB je možno uložit program, který se pak nahrává co cílového procesoru. Je to výhodné pokud potřebujete neprogramovat více desek stejným software. Připojíte programátor, zapnete napájení a zmáčknete tlačítko, tím se rozběhne programování a rozsvícením příslušné LED je indikován výsledek. Umožňuje to nahrát větší množství desek během pár minut.

Úvod

pprg je software pro programování procesorů PIC v ISP režimu. K PC se připojuje přes paralelní port. Zapojení kabelu je velmi jednoduché obsahuje jeden odpor a jednu diodu viz obrázek

Schéma zapojení v lepší kvalitě je součástí balíčku zdrojových kódů.

pprg umí programovat několik nejběžnějších procesorů řady PIC16, hodně procesorů PIC18 a některé PIC32. Přidání dalších procesorů není problém.

Kompilace

Zdrojové kódy stačí rozbalit, přeložit příkazem make a nainstalovat příkazem make install. Pozor instalaci je potřeba provádět jako root, případně přes sudo.

Použití

Spouští se z příkazové řádky. Většinou programování volám přímo z Makefile.
Použití:
 pprg [přepínače] hexfile
Přepínače:
-h Nápověda
-p port Port (defaultně 0x378)
-d name Procesor (defaultně PIC16 autodetect)
-l Výpis podporovaných procesorů
-r Po skončení spustí program (jinak zůstane procesor v resetu)
-v Verbose


pprg-ser

Součástí balíčku pprg je i program pprg-ser. Je to velmi jednoduchý program, který posílá HEX soubor přes sériový port. Je určený k programování procesorů PIC přes sériový port při použití zavaděče.

Použití:
 pprg-ser port rychlost hexfile [startstr [endstr]]

port: sériový port např. /dev/ttyS0
rychlost: komunikační rychlost v baudech např. 115200
hexfile: soubor .hex
startstr: řetězec který se vyšle na sériový port při spuštění
endstr: řetězec který se vyšle na sériový port při ukončení

Program po spuštění vyšle řetězec startstr pokud je zadán a čeká dokud na sériovém portu nepřijme BOOT01 nebo PROG01, pak začne vysílat jednotlivé řádky hex souboru. Po každé řádce čeká na odpověď, pokud je odpověď OK, pokračuje další řádkou, jinak program skončí. Po odeslání celého souboru odešle ještě endstr jestliže je zadán.


(C) Petr Porazil 2010-11, poslední úprava 14.10.2010