Pamięć kodu w AT89C51

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 19 gru 2010, 1:03

Jak by co mam całkiem dobrą dokumentację C64 i tego jak to zrobiono.
Jakbyś mógł, byłbym zainteresowany, bo, jak już gdzieś wspomniałem, również buduję komputerek na 8051 i podpatrzyłbym co nieco na inne konstrukcje.

[ Dodano: 2010-12-19, 01:13 ]
Mój system będzie modułowy, będzie zawierał płytkę główną z 8051 (a w zasadzie jego któraś odmiana, może 89S8253), zatrzaskiem 74HC573, (E)EPROM na system operacyjny, RAM na zewnętrzne programy, 74HC00 do iloczynu /PSEN z /RD (z RAM również musi się dać uruchomić program) oraz MAX232 do RS-232 (do ładowania programów z PC).
Do płytki głównej będzie podłączona płytka rozszerzeń, na której będą gniazda wykonane z goldpinów na karty rozszerzeń (tak, to nie pomyłka). Karty rozszerzeń do tak naprawdę nieograniczone możliwości rozbudowy, tak jak w komputerach klasy PC. Jedną z nich będzie prosta karta muzyczna (a w zasadzie syntezator, bo sampler przy takiej ilości RAM jest niepotrzebny) na układzie SID z C64. Inną będzie uniwersalna karta I/O na układzie 82C55.
Klawiatura będzie AT (w sumie jeszcze mogę zmienić), a wyświetlaczem... i tu mam dylemat. Chcę użyć LCD z komórki, ale waham się, który użyć. Na razie mam z Nokii 3310, ale jest za mała rozdzielczość, szukam czegoś większego. Musi się to oczywiście dać uruchomić w warunkach amatorskich, więc wszelkie egzotyczne zabawki bez dokumentacji odpadają.
System operacyjny ma przypominać DOSa, ale niewykluczone, że jeszcze ulegnie zmianie, gdyż jestem jeszcze na etapie projektowania całości. Na razie opieram się na układzie zbudowanym z AVT-2250, a gdy będę miał wszystko dopracowane, wykonam własne płytki i cały układ.

[ Dodano: 2010-12-19, 01:18 ]
Myślałem też o systemie dwuprocesorowym, gdzie jeden będzie pełnił rolę CPU, a drugi GPU (tylko obsługa wyświetlacza, dane ładowałby z procesora głównego). Dzięki temu odciążyłbym znacznie główny CPU od operacji obsługi wyświetlacza. Oba na rdzeniu 8051.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 19 gru 2010, 10:53

Tzn. dodatkowy EEPROM na kości 28Cxx nie jest ci potrzebny, bo łatwiej i taniej zastosować np. 24C256 na I2C i z niego wgrać system do RAMu, a 12KB pamięci procesora też ci spokojnie wystarczy na prosty system operacyjny.
Mając 89S8253 zawsze możesz zaszaleć jeszcze dalej i wstawić pamięć FLASH na SPI o pojemności 1MB lub więcej (ja mam w domu np. kości 16MB), otrzymując w ten sposób HDD zgodny z standardem MMC/SD.
Co do wyświetlacza użyj sobie takiego:
http://www.kamami.pl/index.php?ukey=pro ... ctID=42730
128x64 pixele, dosyć dobrze opisany kontroler (właściwie 2 bo wyświetlacz jest podzielony na 2 połówki). Pozwoli ci to wyświetlić i grafikę i bardzo dużo tekstu bo 8 linii po 21 znaków.
Co do C64 to tam jest to skomplikowane sterowanie, choć można by wykorzystać sztuczki tam zastosowane, ale tam sterował tym układ PLA czyli właściwie odpowiednio zaprogramowany GAL22V10. Ale 51 doskonale sie do takiego klona nadaje, bo jest w pewnym względzie podobna do CPU C64 6510 czyli ma dodatkowy port I/O za pomocą którego przełączano tam banki pamięci i urządzenia I/O. Przy czym wtedy trzeba by to uwzględnić już na etapie projektowania, a najprościej było by wziąść zwyczajnie schemat C64 i go skopiować z 8051 zamiast 6510 jako CPU i po zawodach.
Wstawił bym wam tu PDFa. ale Elportal nie pozwala, a i ZIP się nie mieści bo ma 1MB.

Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 19 gru 2010, 18:04

A na PW? W zasadzie na dzień dzisiejszy z C64 najbardziej interesuje mnie SID i może jeszcze VIC (gdyby z LCD nie było tak łatwo). Bo chciałbym mieć prosty syntezator, a jakieś podróbki MIDI to nie to samo. Czytałem o rejestrach SID i całkiem prosto je się programuje.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 19 gru 2010, 21:26

Niestety nie da rady. Elportal nawet na PW, PDFa nie przepuści.
Co do SIDa i VICa, nie wiem czy warto się w to bawić, zamiast VICa prościej zastosować układ TV OSD lub po prostu wyświetlacz LCD, a zamiast SIDa, PWM lub przetwornik C/A.

Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 06 sty 2011, 15:56

kayron pisze:[...]a zamiast SIDa, PWM lub przetwornik C/A.
Tak, tylko, że SID do wygenerowania całkiem ładnego dźwięku nie wymaga dużo pamięci i mocy procesora, bo zwyczajnie steruje się jego rejestry, a on sam "gra". Przetwornik cyfrowo-analogowy odpada, bo próbki zajmą całą pamięć, a efekt i tak nie będzie powalający. A PWM... w zasadzie lepszy do tego i tak jest SID, niż oddzielny PWM, tym bardziej, że mam ten układ przed sobą.

[ Dodano: 2011-01-06, 15:57 ]
W razie kłopotów w skomponowaniu własnych melodyjek w Internecie jest całe mnóstwo plików .sid, wystarczy je tylko lekko przerobić i użyć ich do wysterowania układu SID.

ODPOWIEDZ