Konfiguracja emulatora AYka ze strony
www.avray.ru dla każdej Atmegi jest opisana na 4 bajtach w następujący sposób:
- Bajt 0: USART_ENABLE
- Bajt 1: INT_ENABLE
- Bajt 2: ICR_VAL
- Bajt 3: UBRRL_VAL
I ich znaczenie:
- USART_ENABLE - tryb szeregowy (0 - włączony, 1 - włączony),
- INT_ENABLE - tryb równoległy (0 - wyłączony, 1 - włączony),
- ICR_VAL - wartość całkowita dla dzielnika ICR, policzona dla zegara AVR i wynikowego zegara emulowanego AYka,
- UBRRL_VAL - wskaźnik dla transmisji szeregowej przy prędkości transmisji 57.6k (z kalkulatora AVR Baud Rate),
Pliki konfiguracyjne są zapisane w formacie HEX i przygotowane dla różnych prędkości taktowania Atmegii (20MHz, 24MHz, ...), kilku wartości zegara AYka (1.75Mhz, 2.0MHz) oraz trybów pracy AVR (serial, parallel). Są one dobrze pisane nazwami i np.:
Conf_parallel_24MHz_1_75Mhz.hex - AVR w trybie równoległym, zegar AVR 24MHz, emulowany AY ma zegar 1.75Hz.
Jego zawartość po przekonwertowaniu z IntelHEX na binarkę otrzymamy:
00 01
6D 33
- 00 - USART wyłączony,
- 01 - tryb równoległy włączony,
- 6D - odpowiada wartości 109 (dziesiętnie) dla AVR z 24MHz i AYka z 1.75MHz. Nie będę rozwodził się, w jaki sposób jest liczona ta.
- 33 - wskaźnik prędkości transmisji szeregowej
Nas interesuje wartość bajtu na 3 pozycji i plik dla AYka z zegarem
1.79MHz będzie wyglądał następująco:
00 01
6A 33
Inny przykład dla AVR pędzonego na 27MHz i konfiguracja emulatora:
- dla AYka
1.75MHz:
00 01
7A 3A
- dla AYka w
1.79MHz:
00 01
78 3A