programowanie "komercyjnych" uP?

Dyskusje ogólne na temat "cyfrówki" czyli wszystko o TTL/CMOS, językach VHDL i VERILOG, bramkach, rejestrach, przerzutnikach... Dobre miejsce na pytania odnośnie uniwersalnych programatorów (np. Willem) a także podłączania własnych peryferiów do komputera PC.
ODPOWIEDZ
azuri
-
Posty: 5
Rejestracja: 09 lut 2006, 23:10

programowanie "komercyjnych" uP?

Post autor: azuri » 16 lut 2006, 13:27

Czesc ostatnioogladajac moje zbiory znalazlem kilka uP z fabrycznych urzadzen i tak siezastanawiam czy dalo by je sie urzyc do wlasnym projektow napoczatku interesuje mnie

M83C154B-907 http://pdf1.alldatasheet.com/datasheet- ... C154S.html

ORAZ

S87C196KC16 - http://pdf1.alldatasheet.com/datasheet- ... 196KC.html

najlepiej zeby je szlo programowac wjezyku wysokiego poziomu

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 16 lut 2006, 17:20

Pierwszy jest to lekko usprawniony 8051 z pamięcią ROM programowaną podczas produkcji. Aby mgógł pracować z programem przez nas napisanym trzeba mu podpiąć zewnętrzną pamieć EPROM -> https://elportal.pl/index.php?module=Co ... y&ceid=218

Drugi to 16bitowiec intela, zupełnie mniej popularny niz 8051.

azuri
-
Posty: 5
Rejestracja: 09 lut 2006, 23:10

Post autor: azuri » 16 lut 2006, 18:13

spodobal mi sie ten pomysl z emulatorem i mam kilka pyta co do niego czy mozna zamiec ten eprom sramem programowanym przez inny uP polaczony znia i np. RS-232 ??

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 16 lut 2006, 22:46

azuri pisze:spodobal mi sie ten pomysl z emulatorem i mam kilka pyta co do niego czy mozna zamiec ten eprom sramem programowanym przez inny uP polaczony znia i np. RS-232 ??
Wszystko da się zrobić, wszelkie chwyty są dozwolone... tylko trzeba to zrobić sprzętowo poprawnie. Właśnie na podobnej zasadzie kiedyś wykombinowałem emulator epromów. Pamięć SRAM kontrolowana przez 8051, która potem jest poprzez łączniki 3-stanowe przepinana na drugiego procka.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 17 lut 2006, 10:51

witam,
jeżeli można coś zasugerować: zainteresuj się zestawem AVT270 - emulator pamięci EPROM
:arrow: http://sklep.avt.com.pl/go/_info/?id=2819
:arrow: http://sklep.avt.com.pl/photo/_pdf/AVT270.pdf
używam go od dłuższego czasu i nie nastręcza żadnych problemów

wtedy jedyne otoczenie sprzętowe Twojego kontrolera to będzie taka nazwijmy to 'książkowa' architektura:
•ROM (w tym przypadku podstawka, do której będzie zapięty emulator) - jako segment CODE
•statyczny RAM (radzę jakiś większy 62256/61256 - 32kB) - XDATA

cały układ będzie klarowny, ponieważ nie będzie zawierał w swoim schemacie
tych wszystkich rzeczy, które są potrzebne do wgrania kodu z komputera nadrzędnego.

Inne podejście, to takie zaprojektowanie układu aby uzyskać następującą mapę pamięci,
(z podziałem linią adresową A15 na dwa banki):
• 0x0000...0x7FFF - CODE
• 0x8000...0xFFFF - XDATA/CODE
w pierwszym banku jest kod maszynowy umożliwiający komunikację z PC, ładowanie
plików bin/hex pod zadany adres, może jakiś prosty monitor kodu maszynowego.
dane z PC są ładowane do drugiego (górnego) segmentu, do RAM i tam są wykonywane.
Jeżeli chcesz wykorzystać system przerwań - wystarczy przemapować wektory przerwań
kontrolera, tak aby trafić w adekwatne adresy w górnym banku, przykładowo:
pod adresem 0x000B (przerwanie od Timer 0) należy umieścić rozkaz skoku pod adres
0x800B.
Drobną wadą rozwiązania jest to, że własne programy nalezy pisac tak, aby rozpoczynały
się od adresu 0x8000 (dyrektywa assemblera org 8000h)
Takie monitory-loadery można wyszukac w sieci, w formie źródeł lub już skompilowane.

Trzecia, chyba najbardziej skomplikowana możliwość to takie zaprojektowanie
układu aby umożliwiał niejako w locie reorganizację mapy pamięci:
a) tryb ładowania kodu z PC
• 0x0000...0x7FFF - CODE / ROM (zawierający loader)
• 0x0000...0x7FFF - XDATA 32kB SRAM (kość A) (w którym składowane są ładowane z PC dane)
• 0x0000...0x7FFF - XDATA 32kB SRAM (kość B) (w tym trybie nieaktywna)

b) tryb wykonywania załadowanego kodu
• 0x0000...0x7FFF - CODE / ROM (w tym trybie nieaktywna)
• 0x0000...0x7FFF - CODE 32kB SRAM (kość A) (program)
• 0x0000...0x7FFF - XDATA 32kB SRAM (kość B) (w tym trybie jako pamięć danych)

Oczywiście ciągle pozostaje zagadnienie - jak ewentualnie zaprogramować eprom.
Proponuję zainteresować się układami Atmela AT28C256
:arrow: http://www.atmel.com/dyn/resources/prod ... oc0006.pdf
to jest 32kB pamięci EEPROM, o tyle sympatycznej w użyciu, że zachowuje się
jak zwykła pamięć RAM (tyle że trwale zapamietuje dane), jej programowanie nie wymaga jakichś szczególnych środków.
Wadą jest cena, ja te kostki kupowałam rok temu po jakieś 25pln...

pozdrawiam,
tasza

ODPOWIEDZ