Wgrywanie emulatora to ATmegi8.
Używałem do tego celu programatora TL866A ze złączem ICSP. Aby go wgrać poprawnie emulator należy zwrócić uwagę na:
- skompilowany kod emulatora
- konfigurację emulatora
- bity konfiguracyjne MCU
1. Kod emulatoraW paczce z emulatorem znajdują się skompilowany pliki z kodem emulatora pod kilka układów serii ATmega: 8, 48, 88, 168 i 328. Dodatkowo dla każdego typu MCU są wersje dla 2 kanałów lub 3 kanałów audio oraz wersje z tabelami głośności do emulacji układów typu AY-3-891x lub YM. Do zamiennika rzeczywistego PSG w wersji AY-3-891x na ATmega8 należy wybrać wersję 3 kanałową, dedykowaną do tego MCU i z tabelą głośności np. AY. Kod emulatora wgrywa się do pamięci flash MCU (Code):
2. Konfiguracja emulatoraPlik konfiguracyjny emulatora jest uzależniony od trzech czynników:
- trybu pracy emulatora - w tym przypadku tryb pracy równoległej, ponieważ dane przesyłane są po szynie danych o szerokości 8 bitów
- częstotliwości zegara MCU, np. 24MHz
- częstotliwości zegara podanego na PSG, np. 1.75MHz
Plik konfiguracyjny wgrywamy do pamięci EEPROM MCU (Data):
3. Bity konfiguracyjne MCUOstatnią rzeczą jest poprawne ustawienie fuse-bitów, a one mają inne wartości dla każdego typu MCU, np, dla ATmega8 odpowiednio:
- fuse low byte = 0xCE
- fuse high byte = 0xCF
Lock-bitów nie ustawiamy (!!!) i bajt je opisujący powinien mieć wartość 0xFF.
Wszystkie powyższe informacje są zawarte w pliku tekstowym załączonym do paczki z emulatorem. W tym pliku jest też zawarta instrukcja, w jaki sposób zaprogramować MCU przy użyciu AVRDUDE.