Programování obvodu
Z celé řady programovacích postupů jsem vybral sériové nízkonapěťové programování obvodu přes SPI rozhraní. Kombinace programového vybavení PonyProg a hardwarového převodníku úrovní SI-prog je konstrukčně nejjednodušší a nejlevnější. Vyvstává zde problém, který nelze bez předchozí zkušenosti s programováním odhalit a tím je doba programování obvodů. ATmega128 disponuje 128kB programové paměti, kterou PonyProg programuje pokaždé celou a tím zpomaluje programovací proces. Doba trvání je asi 30 sekund, ale v téměř polovině případů se programování nepovede a musí se opakovat. Podstatného zlepšení se dosáhne nahráním bootloaderu do horní části programové paměti a programování obvodu vnitřní rutinou procesoru.
SI-prog
Omezovač úrovní SI-prog je hardwarové vybavení adaptující napěťové úrovně rozhraní RS-232 na TTL úrovně. Účelem je buzení dvou třech výstupů (RESET, SCK, MOSI) a čtení jednoho vstupu (MISO). Na to jsou využity čtyři piny sériového rozhraní počítače (COM port) plus jeden jako indikace přítomnosti zařízení. Konektor je devítipinový dvouřadý DB9 (female). Je třeba si uvědomit, že ATmega128 má dvě SPI brány, jednak programovací (piny 2 a 3) a také uživatelskou (piny 12 a 13). Hodinový signál SCK je společný (pin 11).
význam | COM název | DB9 pin | AVR název | ATmega128 pin |
MISO - master in, slave out | CTS | 8 | PDI - PE0 | 2 |
MOSI - master out, slave in | DTR | 4 | PDO - PE1 | 3 |
SCK - serial clock | RTS | 7 | SCK - PB1 | 11 |
RESET - programovací režim | TxD | 3 | RESET | 20 |
indikace zařízení | DSR spojeno s RTS | 6 a 7 | - | - |
Omezovač úrovní jsem realizoval jako součást konektoru DB9 (obr. 1). Spojení s testovací deskou je provedeno 10 žilovým plochým vodičem s lisovacími konektory 5x2 (obr. 2).
 | Obr. 1 - SI-prog jako součást konektoru |
 | Obr. 2 - plochý desetižilový vodič |
Při pohledu ze strany součástek je konektor číslován takto (obr. 3):
 | Obr. 3 - číslování headeru 5x2 |
Obecný význam pinů, který se snažím dodržovat je:
2
GND
|
4
DATA1
|
6
DATA3
|
8
DATA5
|
10
DATA7
MSb
|
1
Vcc
|
3
DATA0
LSb
|
5
DATA2
|
7
DATA4
|
9
DATA6
|
SI-prog definuje vlastní pinout, ale na desce není použit. Místo toho je použit doporučený pinout pro ISP (in-system programming) zařízení od Atmelu:
2
|
4
MOSI
out
|
6
MISO
in
|
8
SCK
out
|
10
RESET
out
|
1
Vcc
|
3
|
5
|
7
GND
|
9
GND
|
Nepájivé kontaktní pole
 | Obr. 5 - kontaktní programovací nástavec |
|