EPROM

Pozostałe układy mikrokontrolerów, układy peryferyjne i inne, nie mieszczące się w powyższych kategoriach.
Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

EPROM

Postautor: gaweł » piątek 12 maja 2017, 23:45

W temacie: [8051][Funny] Co można zrobić z mikrokontrolera 80C51
tasza pisze:tak ogólnie, to sporo układów LSI czy VLSI można wykorzystać nie do końca zgodnie z przeznaczeniem ale mimo to sensownie, ot, choćby różnej maści dekodery x na y robione z pamięci EPROM, chyba nawet miałeś taki projekcik - monitor szyny 8 bit? no było takie coś


A więc trochę rozważań na temat EPROM'ów

eprom_if00.jpg

EPROM – co to jest ?
EPROM jest typem nieulotnej pamięci elektronicznej (czyli pamięci, której zawartość nie jest tracona po wyłączeniu zasilania układu). W przeciwieństwie do pamięci RAM, po odłączeniu układu od zasilania zapisane w pamięci dane nie ulegają utracie. Sam symbol pochodzi od angielskiego wyrażenia: Erasable Programmable Read-Only Memory – pamięć tylko do odczytu z możliwością kasowania i programowania.
Kasowanie pamięci EPROM realizowane jest poprzez naświetlenie struktury układu odpowiednim widmem światła UV (dlatego mają okienko), do programowania używane są odpowiednie programatory.
Pierwszą (prawdopodobnie) pamięcią o wyżej wymienionych cechach był układ opracowany w firmie Intel o symbolu i1702. Była to pamięć EPROM o zawrotnej wprost pojemności 256*8 (256 bajtów). Współczesne pamięci EPROM mają pojemność wielokrotnie większą.
eprom1_i01.jpg
Z punktu widzenia użytkowego, pamięć EPROM ma pewną liczbę wejściowych linii adresowych (A0 .. An – w zależności od pojemności pamięci) zwaną szyną adresową, pewną liczbę linii wyjściowych (D0 .. D7 lub D0 .. D15 – najczęściej występującymi są pamięci 8-bitowe lub 16-bitowe) zwane szyną danych (występują różne oznaczenia szyny danych, np. O0 .. O7, Q0 .. Q7) oraz dwa sygnały sterujące /OE i /CS. Do zasilania układu przewidziane są wyprowadzenia Vcc i GND (w miejscu GND czasami w dokumentacji może występować symbol Vss). Dodatkowo w układzie pamięci EPROM występują symbole /PGM oraz Vpp (wyprowadzenia na potrzeby programatora: impulsy programujące oraz napięcie programujące). W niektórych układach EPROM wyprowadzenia /PGM i/oraz Vpp są przyporządkowane do wyprowadzeń, które pełnią kilka funkcji. Przykładowo w układzie pamięci EPROM 27C64 (o organizacji 8k*8) i 27C256 (o organizacji 32k*8) są niezależnymi:
eprom1_i02.jpg
eprom1_i03.jpg
w przypadku pamięci EPROM 27C512 (o organizacji 64k*8) wyprowadzenia realizują kilka funkcji.
eprom1_i04.jpg

Napięcie programujące Vpp najczęściej ma wartość 12,5V. W starszych układach (i o mniejszej pojemności) może wynosić 21V (a nawet 25V). Rożne modele pamięci EPROM wymagają różnych napięć programujących i algorytmów programowania (ale jest to “zmartwienie” programatorów – programując układ EPROM, programator odczytuje sygnaturę układu [taki elektroniczny identyfikator] i “wie” jakie są wszystkie parametry związane z procesem programowania). Z użytkowego punktu widzenia (w zastosowaniach) wyprowadzenia Vpp i /PGM (jeżeli takie występują w układzie) należy przyłączyć do napięcia zasilającego Vcc.
O ile znaczenie szyny adresowej i szyny danych jest intuicyjne, to pewnego komentarza wymagają sygnały /CS i /OE. Spełniają one następującą rolę:
  • /CS (ang. Chip Select) sygnał wyboru (aktywacji) układu, stanem aktywnym jest stan logicznego zera [czasami oznaczane jako /CE (ang. Chip Enable) lub /E (ang. Enable)],
  • /OE (ang. Output Enable) sygnał sterujący otwarciem łącznika trójstanowego szyny danych, stanem aktywnym jest stan logicznego zera [czasami występuje oznaczenie /G].
Operacja odczytu danych z pamięci wymaga określenia adresu (na każdej linii szyny adresowej należy ustawić właściwy stan logiczny tworząc w ten sposób liczbę binarną, na wyprowadzenie /CS i /OE podać stan logicznego zera oraz z szyny danych odczytać wynik – dane zapamiętane w pamięci. Jeżeli sygnał /CS=0, układ jest aktywowany do pracy w przeciwnym wypadku jest stanie “Standby Current” - stanie z obniżonym poborem prądu ze źródła zasilającego. W sytuacji wyboru układu (/CS=0) dane zostaną udostępnione poprzez szynę danych (/OE=0) lub szyna danych będzie w trzecim stanie (/OE=1).
Kombinację sygnałów /CS=0 i /OE=0 można traktować jako sygnał strobu żądającego odczytu danych z pamięci. Niespełnienie tego warunku oznacza, że dane nie będę udostępnione przez pamięć.
Często w różnych rozwiązaniach pamięć EPROM jest tak wysterowana, że wyprowadzenie /CS jest na stałe przyłączone do GND a jedynie wyprowadzenie /OE jest sterowane w sposób aktywny. Innym rozwiązaniem jest jednoczesne sterowanie sygnałami /CS i /OE. Oba rozwiązania są poprawne i rzutują jedynie na pobór prądu przez układ pamięci EPROM, gdyż dla stałego wysterowania /CS=0 pamięć jest ciągle w stanie pracy a w przypadku aktywnego sterowania wyprowadzenia /CS są “chwile odpoczynku dla pamięci EPROM”.
Wybrane współcześnie występujące lub jeszcze dostępne układy pamięci EPROM:
eprom1_i05.jpg
eprom1_i06.jpg
eprom1_i07.jpg
eprom1_i08.jpg
eprom1_i09.jpg
eprom1_i10.jpg
Obok najczęściej występujących pamięci o organizacji 8-bitowej występują pamięci o organizacji 16-bitowej. Przykładem takiej pamięci jest układ 27C1024.
eprom1_i11.jpg

Charakterystyczną cechą układów EPROM jest “okienko” pozwalające na naświetlanie promieniami UV strukturę układu. W praktyce często można spotkać układy o symbolach typowych dla pamięci EPROM nie posiadających “okienka”. W rzeczywistości są to pamięci EPROM w wykonaniu OTP (do jednokrotnego zaprogramowania).
eprom1_i12.jpg
Użycie takich układów jest identyczne jak dla układów “z szybką” a jedyną funkcją w nich niedostępną jest kasowanie układu – te układy nie mogą być przeprogramowane.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

EPROM

Postautor: gaweł » piątek 12 maja 2017, 23:55

EPROM'owa technologia

Cechą charakterystyczną pamięci EPROM jest to, że przed zaprogramowaniem ich, czyli umieszczeniem danych na trwale w pamięci, układy te muszą być “skasowane” (właściwie inne pamięci, jak przykładowo typu FLASH również wymagają wcześniejszego kasowania). Operacja ta oznacza usunięcie zapisanych w pamięci EPROM informacji i odbywa się poprzez naświetlenie struktury układu odpowiednim widmem światła (światła z zakresu ultrafioletu). Proces naświetlania jest możliwy dzięki wbudowaniu w obudowę układu okienka “z szybą ze szkła kwarcowego” (musi przepuszczać promienie UV). Procesy zachodzące w strukturze podczas naświetlania są wystarczająco złożone, by je w tym miejscu pominąć (mechanika kwantowa, fizyka ciała stałego). Z użytkowego punktu widzenia istotne jest to, że pamięć zostaje skasowana. Stan skasowania, to taki, w którym cała pamięć jest wypełniona logiczną jedynką. Jeżeli będziemy próbować odczytywać zawartość pamięci EPROM po kasowaniu, odczytamy same jedynki (taki odczyt połączony z testem odczytywanych danych stanowi operację wykonywaną przez programatory o nazwie “blank check” - sprawdzenie, czy pamięć jest skasowana). W procesie programowania (przez odpowiedni programator), wymagane bity zmieniają stan ze stanu jedynek na stan zera, czyli na “tle samych jedynek” programator we właściwych miejscach programuje zera. Operacja odwrotna nie jest możliwa (przez programator, natomiast odbywa się w trakcie naświetlania struktury układu światłem UV).
Kasowanie pamięci EPROM możne być realizowane za pomocą odpowiedniego urządzenia. Przykładowy “kasownik” pamięci EPROM pokazany jest na fotografii.
eprom_tf01.jpg
Ten model kasownika ma specjalną szufladę, do której wkładane są układy scalone.
eprom_tf02.jpg
Ponieważ układy EPROM często mają zaklejone okienka różnymi nalepkami (właściwie powinny być zawsze zaklejone stosowną nalepką, gdyż uniemożliwia to dla światła penetrację struktury układu scalonego w trakcie jego eksploatacji), przed operacją kasowania, należy nalepki usunąć i “umyć okna” z resztek kleju. Do tego najlepiej nadają się rozpuszczalniki alkoholowe (jak izopropanol, fotografia).
eprom_tf03.jpg
Tak przygotowane układy należy ułożyć w szufladzie, ustawić czas naświetlania i zamknąć szufladkę. Ze względu na bezpieczeństwo (gdyż promieniowanie UV niekorzystnie wpływa na organizmy), lampa UV jest włączana jedynie przy zamkniętej szufladzie.
eprom_tf04.jpg
eprom_tf05.jpg
Czas naświetlania jest zależny przede wszystkim od dwóch czynników:
  • modelu układu pamięci EPROM (układy bardziej współczesne wymagają mniejszego czasu naświetlania),
  • mocy lampy zastosowanej w kasowniku.
Dla opisywanego modelu czas ten waha się w granicach od 10 do 20 minut. Czyste, bo świeżo “uprane” pamięci EPROM, można programować. Do tego celu może być użyty programator “LabProg 48” firmy Elnec (http://www.elnec.com).
eprom_tf06.jpg
Do sterowania programatorem używane jest odpowiednie oprogramowanie. Sam program jak i jego uaktualnienia można pobrać ze strony internetowej producenta. Dobrym obyczajem firmy Elnec jest to, że firma wraz z rozwojem elektroniki cyfrowej aktualizuje odpowiednie oprogramowanie sterujące, więc trudno powyższy programator nazwać przestarzałym (pomimo, że ma już bardzo wiele lat).
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
Antystatyczny
Geek
Geek
Posty: 1137
Rejestracja: czwartek 03 wrz 2015, 22:02

Re: EPROM

Postautor: Antystatyczny » sobota 13 maja 2017, 00:10

Czy do kasowania pamięci nadaje się świetlówka stosowana np. w naświetlarkach utwardzających stosowanych w kosmetyce paznokci? Naświetlarki utwardzają jakiś tam lakier, klej, czy coś (nie wiem dokładnie). Przychodzi mi również na myśl wykorzystanie testera banknotów, ale nie wiem, czy będzie skuteczny.
"The true sign of intelligence is not knowledge but imagination" Albert Einstein.

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

EPROM

Postautor: gaweł » sobota 13 maja 2017, 00:33

Typowe użycie pamięci EPROM

eprom_sf00.jpg

Jak sama nazwa EPROM wskazuje, jest to pamięć, więc typowym użyciem tych układów scalonych jest rola pamięci. Ponieważ jest to pamięć tylko do odczytu, więc i jej użycie będzie ograniczać się do pamięci tylko do odczytu. Najbardziej istotną cechą pamięci ogólnie określanych jako nieulotne, czyli takich, w których zawartość “z niej nie ulatuje” nawet po odłączeniu źródła zasilającego, jest możliwość przechowywania danych. Pamięci takie są powszechnie stosowane do pamiętania stałych programów w systemach mikroprocesorowych. Takim najbliższym sprzętem wykorzystującym tą cechę jest komputer PC. Współczesne modele komputerów mają “zaszyty” program startowy w pamięci typu FLASH, które wyparły pamięci typu EPROM (pomijając różnice wynikające przede wszystkim z technologii, oba typy pamięci pełnią identyczną rolę, jaką jest przechowywanie programu startowego komputera PC). Wiadomo, że sam mikroprocesor bez odpowiedniego programu jest bezużyteczny i dopiero w parze z odpowiednim programem stanowi “coś”. Włączając komputer PC do pracy, jego elektronika automatycznie generuje sygnał reset, który nakazuje mikroprocesorowi rozpoczęcie wykonywania programu zawartego w pamięci nieulotnej (ten program to BIOS).
Reasumując, pamięci nieulotne, do jakich należą pamięci EPROM, są przeznaczone do trwałego przechowywania ogólnie rozumianej informacji (przykładowo kodu programu BIOS).
Każda aplikacja pamięci EPROM jest taka sama. Zawsze występuje zbiór sygnałów wejściowych, w oparciu o które pamięć “wie” o jaki bajt danych chodzi – to jest szyna adresowa. Podobnie występuje zbiór sygnałów wyjściowych, na których pamięć informuje “swoje otoczenie” o odczytanym bajcie – to jest szyna danych. Przepływ informacji w pamięci jest sterowany przez sygnały sterujące: /OE i /CS.
W zależności od użytego mikroprocesora lub mikrokontrolera wynika sposób w jaki może być zastosowana pamięć EPROM. To indywidualne cechy mikroprocesora/mikrokontrolera decydują, czy i w jakim znaczeniu może być użyta pamięć. W przypadku mikroprocesorów pamięć może być zastosowana do przechowywania kodu programu lub stałych danych (jak przykładowo w mikroprocesorach Z80 lub Pentium). Niektóre mikrokontrolery mają możliwość umieszczenia kodu programu w zewnętrznej pamięci – taką możliwość ma przykładowo mikrokontroler 8051. W innych typach mikrokontrolerów możliwe jest zastosowanie pamięci do przechowywania stałych danych – taką możliwością dysponują przykładowo wybrane mikrokontrolery z rodziny AVR.
Biorąc pod uwagę popularność pewnych mikroprocesorów i mikrokontrolerów, poniżej zostaną przedstawione przypadki użycia dla procesorów z rodziny C51 i AVR (amatorskie budowanie urządzeń z użyciem przykładowo procesora Pentium nie jest częstym zjawiskiem).
W przypadku mikrokontrolera 80C51 zastosowanie pamięci EPROM do przechowywania kodu programu pokazane jest na rysunku 1. Mikrokontroler ten oferuje do wykorzystania 16-bitową szynę adresową, co oznacza, że pamięć przeznaczona na kod programu może mieć do 64kB pojemności. W porównaniu z mikrokontrolerem 89C51 (taki sam tylko z wbudowaną pamięcią FLASH wewnątrz mikrokontrolera) jest znaczącym zwiększeniem jego zasobów.
eprom_sf01.png
Powyższy schemat również obowiązuje dla mikrokontrolera 89C51 (jego wewnętrzna pamięć FLASH nie będzie użyta).
Bardzo podobnie aplikuje się pamięć przeznaczoną na stałe dane. Poniższy rysunek pokazuje sposób wykorzystania pamięci umiejscowionej (z punktu widzenia oprogramowania) w przestrzeni adresowej danych.
eprom_sf02.PNG
Łatwo zauważyć, że w tym przypadku pamięć jest aktywowana sygnałem /RD (znajdującego się w obrębie portu P3). Zastosowana pamięć o pojemności 64kB wypełnia całkowicie istniejącą w mikrokontrolerze przestrzeń adresową zewnętrznej pamięci. Każda operacja:
MOV DPTR , # <jakiś adres>
MOVX A,@DPTR

spowoduje odczyt komórki z pamięci EPROM o adresie <jakiś adres>.
Niektóre mikrokontrolery z rodziny AVR mają możliwość przyłączenia zewnętrznej pamięci danych (jak przykładowo ATMEGA8515). Sposób przyłączenia pamięci jest bardzo podobny i pokazany jest na kolejnym rysunku, jednak sam mikrokontroler narzuca pewne ograniczenia. W przypadku mikrokontrolerów AVR, pamięć zewnętrzna stanowi kontynuację w przestrzeni adresowej danych wewnętrznej pamięci RAM a to oznacza, że odczyt danych pod adresu należącego do przestrzeni wewnętrznej pamięci danych nie spowoduje aktywacji pamięci EPROM. Najprostszym rozwiązaniem jest umieszczenie pamięci w obrębie górnej połowy przestrzeni adresowej. W tym wypadku należy z kombinacji stanów logicznych występujących na liniach adresowych oraz sygnałach sterujących (/RD – PORTD7) wypracować sygnał aktywacji dla pamięci EPROM. W rozwiązaniu pokazanym na rysunku 3 pamięć jest adresowana jeżeli występuje żądanie odczytu z pamięci danych spod adresu większego niż 8000hex. W programie można użyć następujących instrukcji (pobranie do rejestru r16 zawartości komórki o adresie 0x8765 -> powyżej adresu 0x8000, więc z pamięci EPROM) :
lds r16,0x8765
lub (pobranie danych z pamięci zewnętrznej do zmiennej y):
...
unsigned char * X ;
unsigned char y ;
...
x = ( unsigned char * ) 0x8765 ;
y = * x ;
eprom_sf03.PNG

W przypadku, gdy zastosowana pamięć dysponuje większą pojemnością niż jest w stanie użyć mikrokontroler można rozważyć dwa rozwiązania:
  • nie używać obszarów, które wykraczają poza możliwą przestrzeń adresową (ustawiając na “nadmiarowych” liniach adresowych stan logicznego zera),
  • użyć wyprowadzeń z innych portów tworząc rozwiązanie z podziałem pamięci na banki.
eprom_sf05.PNG

Dodatkowe linie adresowe mogą pochodzić z portu PORTB (właściwie możliwe jest każde inne rozwiązanie: inne porty, zewnętrzny rejestr itp). Odczyt danych musi być poprzedzony ustawieniem właściwego numeru banku.
Powyższe rozważania nie wyczerpują tematu zastosowania pamięci EPROM w systemach z użyciem mikroprocesorów lub mikrokontrolerów. Naturalne rozwiązanie, jako przewidziane przez twórców mikroprocesorów/mikrokontrolerów i mające swoje odbicie w liście instrukcji, nie ogranicza się jedynie do przedstawionych modeli. Zewnętrzną pamięć “na siłę” można obsługiwać w takich mikrokontrolerach jak 89C2051 lub ATTINY2313, ale będzie to wymagało dodatkowych układów. Również operacja odczytu nie będzie ograniczać się do pojedynczych instrukcji MOVX lub LDS.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony sobota 13 maja 2017, 01:39 przez gaweł, łącznie zmieniany 2 razy.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 00:40

Antystatyczny pisze:Czy do kasowania pamięci nadaje się świetlówka stosowana np. w naświetlarkach utwardzających stosowanych w kosmetyce paznokci? Naświetlarki utwardzają jakiś tam lakier, klej, czy coś (nie wiem dokładnie). Przychodzi mi również na myśl wykorzystanie testera banknotów, ale nie wiem, czy będzie skuteczny.

W sumie istotne jest widmo emitowane przez lampę. Moim zdaniem powinno zadziałać, najwyżej konieczne będzie poeksperymentowanie z czasem naświetlania. Zanim dorobiłem się pokazanego kasownika używałem ulicznych lamp sodowych. Też działało, ale niektóre EPROM-y nie przeżywały zabiegu kasowania. Owszem wykazywały stan wykasowania →czyli każdy bajt zawierał FF hex, ale później nie chciały się programować. Dzisiaj, z perspektywy czasu sądzę, że lampa sodowa "mordowała" układy, bo po kasowaniu były gorące. W pokazanym kasowniku, układy są ledwie ciepłe.
Ostatnio zmieniony sobota 13 maja 2017, 01:44 przez gaweł, łącznie zmieniany 1 raz.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

EPROM

Postautor: gaweł » sobota 13 maja 2017, 00:50

EPROM'owa konkurencja

Istotną wadą, jaką posiadają pamięci EPROM, jest konieczność naświetlania struktury układu promieniowaniem UV w celu skasowania jej zawartości. W przypadku zastosowania ich jako pamięci przechowujących kod programu, cecha ta w istotnym stopniu utrudnia przykładowo zdalną modyfikację kodu programu. Próba wyeliminowania tej wady doprowadziła do powstania pamięci nieulotnych, w których skasowanie zawartości pamięci jest uzyskane drogą elektryczną. Przykładem takiej pamięci są układy równoległych pamięci EEPROM (2816, 2864):
eprom_kof01.jpg
Przykładowo popularnym typem pamięci działającej na bazie identycznej technologii jest szeregowa pamięć EEPROM z interfejsem I2C.
Prawdziwym przebojem w pamięciach nieulotnych stały się pamięci FLASH. Ich rozwój technologiczny praktycznie wyeliminował z użycia inne typy (EPROM i EEPROM). Pamięci FLASH stały się wszechobecne w wielu dziedzinach ich zastosowania, od zewnętrznej pamięci FLASH zawierającej program BIOS w komputerach PC do pamięci na kod program zintegrowanej w obrębie jednego układu będącego mikrokontrolerem.
eprom_kof02.jpg
Pomijając technologiczne unowocześnienia, podstawowa rola, jaką spełnia równoległa pamięć nieulotna nie uległa zmianie. Zewnętrzne pamięci EPROM w urządzeniach mogą być zastąpione pamięciami FLASH.
eprom_kof03.png

Występuje praktycznie idealna zgodność wyprowadzeń (szyna danych i adresowa przyporządkowana jest do tych samych wyprowadzeń pełniąc identyczną funkcję). Porównując układy na powyższym rysunku, można zauważyć, że w miejscu napięcia programującego w pamięci EPROM (pin 1) w pamięci FLASH wyprowadzenie to nie jest używane. Podobnie jest z wyprowadzeniem numer 31 (w EPROM jest to PGM, we FLASH WE). Normalne użycie pamięci EPROM wymaga, by wyprowadzenie PGM było przyłączone do napięcia zasilającego. Również w pamięci FLASH operacja odczytu danych z pamięci wymaga, by na wejściu WE był wysoki stan logiczny. Pamięć 27C010 może być zastąpiona pamięcią 29EE010 bez jakichkolwiek modyfikacji układowych.
Identycznie jest w przypadku pamięci EPROM i FLASH o pojemności 2 megabit'ow.
eprom_kof04.png

Ciągły postęp technologiczny doprowadza do miniaturyzacji układów oraz zwiększania ich pojemności. Coraz częściej układy są przystosowane do montażu powierzchniowego. Przykładami są:
eprom_kof05.jpg
eprom_kof06.jpg
Pamięci coraz częściej występują w “dziwnych” obudowach (TSOP).
eprom_kof07.jpg
Na naszych oczach dokonuje się prawdziwa rewolucja: coraz większe pojemności pamięci są zamykane w coraz mniejszych obudowach. Jest to całkowicie uzasadnione w przypadku masowej produkcji elektronicznej (bo każdy przykładowo chce mieć mały telefon komórkowy). Jedynie amatorska, hobbystyczna elektronika na tym cierpi, bo coraz trudniej jest aplikować we własnych konstrukcjach tak małe układy scalone.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

EPROM

Postautor: gaweł » sobota 13 maja 2017, 01:06

EPROM jako dekoder do wyświetlacza LED 16-segmentowego

Oprócz znanych i popularnych wyświetlaczy LED 7-segmentowych przeznaczonych generalnie do prezentowania informacji liczbowej, w zastosowaniach elektroniki cyfrowej występują wyświetlacze LED mające 16 segmentów. Tak duża liczba segmentów pozwala na wyświetlanie znaków liter. W przeciwieństwie do wyświetlaczy 7-segmentowych, dla których są nawet produkowane układy do odpowiedniego sterowania segmentami tak, by w zależności od podanego kodu na wyświetlaczu była zobrazowana właściwa cyfra (jak przykładowo układ 74HCT47), w wyświetlaczach 16-segmentowych należy samemu zadbać o właściwe sterowanie poszczególnymi segmentami. W tym celu można w oparciu o bramki logiczne utworzyć odpowiednie zespoły kombinacyjne do sterowania włączaniem odpowiednich segmentów w wyświetlaczu. W sumie powstaje dość złożony blok logiczny, w którym dla kilkubitowej informacji wejściowej (przykładowo kod znaku) zostaje wypracowana 16-bitowa informacja wyjściowa (do niezależnego sterowania każdego z segmentów). W praktyce do celu zamiany informacji wejściowej (kod znaku) na dane wyjściowe (sterowanie segmentami) można rozważyć zastosowanie pamięci stałej, przykładowo pamięci EPROM z 16-bitową szyną danych.
eprom_df01.gif
Kilka przykładowych liter:
eprom_df02.gif
eprom_df03.gif
eprom_df04.gif
eprom_df05.gif
Do zilustrowania operacji przekodowania została użyta pamięć EPROM o symbolu M27C1024. Jest to pamięć o 16-bitowej szynie danych oraz 16-bitowej szynie adresowej. Zakładając, że na szynę adresową zostanie podany kod znaku w zakresie ASCII, pojemność zastosowanej pamięci znacznie przekracza potrzeby (nieużywane linie adresowe są wysterowane stałym sygnałem logicznym o wartości 0). Przykładowy schemat jest następujący:
eprom_df06.PNG
Układ testowy odpowiadający powyższemu schematowi przedstawia poniższa fotografia.
eprom_df07.jpg
W roli zadajnika stanu wystąpił przełącznik typu DIP-SWITCH.
eprom_df08.jpg
Do otrzymania wsadu dla pamięci EPROM został użyty kompilator języka asembler dla mikrokontrolerów AVR (trochę nietypowa rola kompilatora). “Program” dla generatora znaków wygląda następująco (we fragmentach):

Kod: Zaznacz cały

;
;*******************************************************
;*******************************************************
;**                                                   **
;**  Generator znakow dla wyswietlaczy LED 16-segm    **
;**               EPROM 16-bit                        **
;**                                                   **
;*******************************************************
;*******************************************************
;
        .list
.equ    SegmA = 1<<0
.equ    SegmB = 1<<1
.equ    SegmC = 1<<2
.equ    SegmD = 1<<3
.equ    SegmE = 1<<4
.equ    SegmF = 1<<5
.equ    SegmG = 1<<6
.equ    SegmH = 1<<7
.equ    SegmK = 1<<8
.equ    SegmM = 1<<9
.equ    SegmN = 1<<10
.equ    SegmP = 1<<11
.equ    SegmR = 1<<12
.equ    SegmS = 1<<13
.equ    SegmT = 1<<14
.equ    SegmU = 1<<15
.equ    Space = 0
;
        .cseg
        .org    0
;       znak    kod=0x00
        .dw     Space
;       znak    kod=0x01
        .dw     Space

(...)

;       znak    kod=0x30        '0'
        .dw     SegmA+SegmB+SegmC+SegmD+SegmE+SegmF+SegmG+SegmH
;       znak    kod=0x31        '1'
        .dw     SegmC+SegmD
;       znak    kod=0x32        '2'
        .dw     SegmA+SegmB+SegmN+SegmU+SegmG+SegmF+SegmE
;       znak    kod=0x33        '3'
        .dw     SegmA+SegmB+SegmC+SegmP+SegmD+SegmE+SegmF
;       znak    kod=0x34        '4'
        .dw     SegmH+SegmU+SegmP+SegmC+SegmD
;       znak    kod=0x35        '5'
        .dw     SegmB+SegmA+SegmH+SegmU+SegmP+SegmD+SegmE+SegmF
;       znak    kod=0x36        '6'
        .dw     SegmA+SegmH+SegmU+SegmP+SegmD+SegmE+SegmF+SegmG
;       znak    kod=0x37        '7'
        .dw     SegmA+SegmB+SegmN+SegmS
;       znak    kod=0x38        '8'
        .dw     SegmA+SegmB+SegmC+SegmD+SegmE+SegmF+SegmG+SegmH+SegmU+SegmP
;       znak    kod=0x39        '9'
        .dw     SegmA+SegmB+SegmC+SegmD+SegmE+SegmF+SegmH+SegmU+SegmP

(...)

;       znak    kod=0x41        'A'
        .dw     SegmA+SegmB+SegmC+SegmD+SegmG+SegmH+SegmU+SegmP
;       znak    kod=0x42        'B'
        .dw     SegmA+SegmB+SegmN+SegmR+SegmE+SegmF+SegmG+SegmH+SegmU
;       znak    kod=0x43        'C'
        .dw     SegmA+SegmB+SegmE+SegmF+SegmG+SegmH
;       znak    kod=0x44        'D'
        .dw     SegmA+SegmB+SegmC+SegmD+SegmE+SegmF+SegmS+SegmM
;       znak    kod=0x45        'E'
        .dw     SegmA+SegmB+SegmE+SegmF+SegmG+SegmH+SegmU
;       znak    kod=0x46        'F'
        .dw     SegmA+SegmB+SegmG+SegmH+SegmU
;       znak    kod=0x47        'G'

(...)

;       znak    kod=0x7F        ' '
        .dw     Space
.exit

W wyniku kompilacji w/w programu (który nie zawiera żadnych instrukcji programowych a jedynie blok stałych danych) powstaje zbiór w zapisie Intel-hex będący zawartością pamięci EPROM. Pozostało zaprogramować pamięć i sprawdzić działanie w praktyce.
eprom_df09.jpg
eprom_df10.jpg
eprom_df11.jpg
eprom_df12.jpg
eprom_df13.jpg
eprom_df14.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
wojtek
Uber Geek
Uber Geek
Posty: 2285
Rejestracja: piątek 04 wrz 2015, 09:03

Re: EPROM

Postautor: wojtek » sobota 13 maja 2017, 06:18

No po prostu super, ja nie mam słów uznania dla Ciebie za wiedzę i materiały, które zamieszczasz :)
Wojtek

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: EPROM

Postautor: tasza » sobota 13 maja 2017, 06:40

no wow!
to ja tylko drobiażdżek - tak wygląda na żywo wspomniana przez gawła pamięć 1702
ten dokładnie egzemplarz to jest MM1702AQ, ma dodatkowo napis 735, pasowałoby do 5 tydzień 73 roku...

IMG_6564.JPG
IMG_6565.JPG

sowieci też mieli ładne designy - oto odpowiednik 2716 czyli całe 2kB (w to wchodził podstawowy monitorek CA80 :))
Obrazek
Obrazek
śliczne te kostki są, ale tych czarnych napisów cyrylica nijak nie idzie się pozbyć...

odnośnie kasowania, no fajnie mieć taki profesjonalny kasownik co pokazany parę pięter wyżej,
ale równie skuteczną metodą jest wykorzystanie tzw. elektrycznego słoneczka - UV + (niestety)halogen
ja takie coś sobie sprawiłam na bazarze za dosłownie paręnaście złotych i do tej pory nie spotkałam
pamięci EPROM, która by się oparła urokowi osobistemu tego urządzenia po kwadransie pracy...

IMG_6562.JPG
IMG_6563.JPG


wadę ma jedną - halogen (robiący za rezystor ograniczający prąd lampy wyładowczej) nagrzewa kostki
zatem kasowanie odbywa się w obecności wentylatora,

IMG_3069.JPG
IMG_3067.JPG


no a poza tym w łazienka się przy okazji dezynfekuje i jest cieplutko przed kapielą :)

@Antystatyczny
co do lampy UV z piecyka do pazurków - szczerze wątpię, nie ta moc i (nawet 'na oko') nie to widmo, ale możesz sprawdzić u zaprzyjaźnionej kosmetyczki
o, pierwszy z brzegu :arrow: http://www.jrok.com/datasheet/TMS2716.pdf sekcja erase - pisza o 2537A`
jeżeli już chcesz zrobić kasownik, choćby tymczasowy to ja kiedyś radziłam sobie tak - palnik z lampy rtęciowej, takiej z budowy
https://www.olx.pl/oferta/lampa-rteciow ... jzR9N.html w szereg z żelazkiem i to do sieci;
lampę i epromy obok (poustawiane w rządku) nakrywałam blaszaną formą do ciasta i się kasowało ładnie i jednak żyję

komórki EPROM kasując się przyjmują wartości 0xFF, wiec zawsze można sobie wyobrazić układzik,
co będzie sprawdzał czy cała zawartość ma poustawiane jedynki na wszystkich bitach, wtenczas zakończy naświetlanie
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 11:28

tasza pisze:no wow!
to ja tylko drobiażdżek - tak wygląda na żywo wspomniana przez gawła pamięć 1702

W rzeczy samej, tak wygląda. Swego czasu również miałem jedną sztukę takiej kostki. Moja wyglądała tak jak na mojej ilustracji. Aby nie pozaginały się nżki, to cenne scalaki trzymałem włożone w podstawki, jakiekolwiek tanie. No i wciskając w podstawkę połamałem scalaka :shock: . Umarł na moich rękach.

tasza pisze:...choćby tymczasowy to ja kiedyś radziłam sobie tak - palnik z lampy rtęciowej, takiej z budowy
https://www.olx.pl/oferta/lampa-rteciow ... jzR9N.html w szereg z żelazkiem i to do sieci;

Dokładnie też tak robiłem. Dawno, dawno emu w galaktyce...
Wspomniałem o lampie ulicznej... w szereg z czymś tam, myśmy o ile pamiętam używali żarówki dużej mocy, poukładane na czymś, zaświecone w jakimś magazynku, trzeba było wyjść i nie wchodzić bez potrzeby. Później dodawaliśmy wentylator, bo wszystko trochę się grzało. Na kilkaset skasowanych pamięci było małe kilkadziesiąt do wyrzucenia. Procentowo to niewiele, ale ... zawsze to jakieś "morderstwo".

tasza pisze:
IMG_6564.JPG

Ty to jesteś śmieciara :D . Też bym chętnie pobuszował... Na popularny bazarek mam daleko a w moim mieście takiego nie ma.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 11:41

wojtek pisze:No po prostu super, ja nie mam słów uznania dla Ciebie za wiedzę i materiały, które zamieszczasz :)

Zamieszczę więcej. Taka jedna wróżka mnie przekonała. Tylko powoli, bo to wymaga czasu. Stare materiały wymagają remake :arrow: czas. Nowe napisania :arrow: czas.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: EPROM

Postautor: tasza » sobota 13 maja 2017, 13:42

gaweł pisze:No i wciskając w podstawkę połamałem scalaka :shock: . Umarł na moich rękach.

zaprawdę, to piękna i godna śmierć, pozazdrościć tylko.... też tak chcę
gaweł pisze:Ty to jesteś śmieciara :D .

i tak oto sztuka komplementowania płci przeciwnej osiągnęła teraz nowy wymiar, w każdym innym wypadku obraziłabym się śmiertelnie ale ....
tak, dokładnie tak - złomiara, śmieciara, zbieraczka - jakkolwiek to zwał - bo to mnie cieszy, bo to mnie kręci, bo to cała ja
a niżej garść zdjęć pamięci EPROM w obudowach PLCC oraz mój rodzynek - procesor intel 8748 z kasowalną przez okienko pamięcią EPROM
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 16:48

tasza pisze:zaprawdę, to piękna i godna śmierć, pozazdrościć tylko.... też tak chcę

Na piękną i godną śmierć trzeba zasłużyć a z drugiej strony, to każdy kiedyś umrze.

tasza pisze:i tak oto sztuka komplementowania płci przeciwnej osiągnęła teraz nowy wymiar, w każdym innym wypadku obraziłabym się śmiertelnie ale ....

W każdym innym przypadku bym ugryzł się w język. Za długo się znamy, bym nie wiedział, że jest to dla ciebie komplement. ;)

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: EPROM

Postautor: tasza » sobota 13 maja 2017, 19:44

:)

To jeszcze w zupełnie malutkim uzupełnieniu rozważań Andrzeja nad EPROM i koneksją do 8051 i jemu podobnych kostek:

Dawno, dawno temu, na zachodzie ktoś wpadł na cudny wręcz pomysł, aby tę część struktury mikrokontrolera, która zawiera ROM jakby wyprowadzić na zewnątrz. Powstała wtenczas wersja ceramicznych obudów zwanych - piggyback - na barana.

W takiej edycji wewnętrzna pamięć ROM mikroprocesora jest paradoksalnie dostępna na zewnątrz,
ale architektonicznie - widziana jako natywna dla układu i np. w przypadku '51 nie wymaga demultipleksera adresu/danych sterowanego sygnałem ALE.

Wynalazek genialny i bardzo pomocny, już wyjaśniam czemu.

Ze schematów w tym wątku jasno widać, że dołączenie do np. klasycznego 8051 zewnętrznej pamięci EPROM
zabiera kostce tę jej całą - mikrokontrolowatość, piny I/O, które mogliśmy adresować bitowo (SFR) - wszystko to tracimy,
bo zawłaszcza je magistrala danych i adresowa i sygnały sterujące /WR /RD

W przypadku piggyback - całe I/O kontrolera zostaje nietknięte, po zakończeniu procesu uruchamiania (optymalizacja/debugowanie/testowanie) oprogramowania zamawia się identyczną edycję procesora w fabryce, tylko z już gotowym, stabilnym binarnym wsadem

Dodatkowym ułatwieniem jest to, że layout (czy jak to nazwać - pinologia) części dla pamięci zewnętrznej była zgodna z typowymi, dostępnymi masowo układami EPROM (27xxx), więc można było korzystać z fizycznych kostek, można było używać sprzętowego emulatora, jak komu wygodnie.

Nie posiadam już takiej kostki do fotek, stąd posiłkuję się zdjęciami z sieci:
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 20:11

tasza pisze:Nie posiadam już takiej kostki do fotek, stąd posiłkuję się zdjęciami z sieci:

A już myślałem, że fotki są twoje własne :) , czyli nie masz całego ziemskiego śmiecia.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » sobota 13 maja 2017, 21:46

No to jeszcze w temacie EPROM'ów:

Format pliku Intel-hex

Dane będące wynikowym programem dla mikroprocesorów i mikrokontrolerów mogą być zapisywane w pliku na wiele sposobów. Znanych jest kilka formatów, z których najpopularniejszy jest format szesnastkowy opracowany w firmie Intel (stąd jego nazwa Intel-hex). W pliku tym występują znaki alfanumeryczne oraz znaki CR oraz LF (jako znaki sterujące nie mające swej reprezentacji graficznej).
W przypadku programów, które nie przekraczają 64kB wielkości kodu, plik Intel-hex składa się w dwóch rodzajów rekordów:
  • rekordu danych,
  • rekordu końca pliku.
W obu przypadkach każdy rekord rozpoczyna się od znaku “:”, po którym następują odpowiednie dane (wszystkie dane są zapisywane w notacji szesnastkowej, tj. po dwa znaki alfanumeryczne do zakodowania binarnej wartości 8-bitowej):
  • dwa znaki określające długość rekordu,
  • cztery znaki określające adres w pamięci pod którym należy umieścić dane,
  • dwa znaki określające typ danych,
  • dane (po dwa znaki na każdy bajt zapisywany w pamięci),
  • dwa znaki sumy kontrolnej.
Każdy rekord zakończony jest dwoma znakami sterującymi (CR o kodzie 0D hex i LF 0A hex) określającymi koniec wiersza.
Występujący w zbiorze typ danych może być:
  • 00 hex (0 binarnie) – jako oznaczenie rekordu zawierającego dane do zapisu w pamięci,
  • 01 hex (1 binarnie) – jako oznaczenie rekordu kończącego plik.
Suma kontrolna (czasami błędnie nazywana sumą CRC) jest 8-bitową sumą wszystkich danych zawartych w rekordzie pliku.
Jedną z istotnych cech tego formatu jest opis zawartości tylko istotnych danych. W ogólnym przypadku nie ma obowiązku, by zapisany w pliku blok danych stanowił lity, ciągły obszar. Możliwe jest, by plik zawierał „dziury”. Oczywiście jest to oddzielna kwestia związana z interpretacją takich „dziur”. Sensownym wyjaśnieniem ich istnienia jest początkowy obszar kodu z programem dla mikrokontrolera z rodziny C51. Wiadomo, że ten mikrokontroler w pewnym obszarze zawiera procedury obsługi przerwań, które są umieszczane w ściśle określonym miejscu przestrzeni adresowej. Na przerwanie przewidziane jest kilka bajtów. Nie ulega wątpliwości, że w tak małym obszarze nie jest możliwe zaimplementowanie procedury obsługi przerwania, toteż umieszcza się w dedykowanym obszarze do obsługi przerwania instrukcję skoku „w głąb” przestrzeni adresowej. Niewykorzystane komórki (takie, w których kompilator w parze z linkerem nie umieścił w nich żadnych kodów) stanowią „dziury”. Poniższy przykład opisuje blok pamięci z „dziurami” (chociaż często wygenerowany kod stanowi ciągły pod względem adresowym obszar danych).
Przykładowy kod hex (we fragmentach):
:03000000C38000BA
:03000800C36900C9
...
:10006600C37E00FBED4DFBED4DFBED4DFBED4DFB7A
...
:1000E60073756D6965206D612062796320316B429D
:00000001FF

Pierwszy rekord zawiera:
:03000000C38000BA
: - początek rekordu,
03 hex = 3 dziesiętnie – 3 bajty danych do pamięci,
0000 hex = 0 dziesiętnie – miejsce w pamięci do zapisu danych (wymuszone przykładowo przez ORG 0),
00 hex = 0 dziesiętnie – typ danych ==> dane do zapisu w pamięci,
C3 hex, 80 hex, 00 hex – 3 kolejne bajty danych do zapisu w pamięci,
BA hex = 186 dziesiętnie – suma kontrolna obliczona jako:
_03 hex = 003 dec
_00 hex = 000 dec
_00 hex = 000 dec
_00 hex = 000 dec
_C3 hex = 195 dec
_80 hex = 128 dec
_00 hex = 000 dec
+BA hex = 186 dec
-----------------
200 hex = 512 dec

Po obcięciu do 8 bitów 200 hex ==> 00 hex (512 mod 256 również daje 0) suma musi wynosić 0.
Do kontroli wystarczy zsumować odpowiednie liczby i sprawdzić, czy wynik wynosi zero. Do wygenerowania sumy należy obliczyć ją następująco:
_03 hex = 003 dec
_00 hex = 000 dec
_00 hex = 000 dec
_00 hex = 000 dec
_C3 hex = 195 dec
_80 hex = 128 dec
+00 hex = 000 dec
-----------------
146 hex = 326 dec

146 hex po obcięciu daje 46 hex = 70 dec (lub 326 / 256 daje 1 i 70 reszty).
Od liczby 100 hex (256 dec) należy odjąć obliczoną sumę:
100 hex – 46 hex = BA hex (186 dec)
lub 256 dec – 70 dec = 186 dec.

Inny rekord zawiera:
:10006600C37E00FBED4DFBED4DFBED4DFBED4DFB7A
: - początek rekordu,
10 hex = 16 dziesiętnie – 16 bajtów danych do pamięci,
0066 hex = 102 dziesiętnie – miejsce w pamięci do zapisu danych,
00 hex = 0 dziesiętnie – typ danych ==> dane do zapisu w pamięci,
C3 hex, 7E hex, 00 hex, FB hex, ED hex, 4D hex, FB hex, ED hex, 4D hex, FB hex, ED hex, 4D hex, FB hex, ED hex, 4D hex, FB hex – 16 kolejnych bajtów danych do zapisu w pamięci,
7A hex = 122 dziesiętnie – suma kontrolna obliczona identycznie:

_10 hex = 016 dec
_00 hex = 000 dec
_66 hex = 102 dec
_00 hex = 000 dec
_C3 hex = 195 dec
_7E hex = 126 dec
_00 hex = 000 dec
_FB hex = 251 dec
_ED hex = 237 dec
_4D hex = 077 dec
_FB hex = 251 dec
_ED hex = 237 dec
_4D hex = 077 dec
_FB hex = 251 dec
_ED hex = 237 dec
_4D hex = 077 dec
_FB hex = 251 dec
_ED hex = 237 dec
_4D hex = 077 dec
_FB hex = 251 dec
+7A hex = 122 dec
-----------------
C00 hex = 3072 dec

Po obcięciu do 8 bitów C00 hex ==> 00 hex = 0 dec.

Ostatni rekord:
:00000001FF

: - początek rekordu,
00 hex = 0 dziesiętnie – rekord nie zawiera danych do pamięci,
0000 hex = 0 dziesiętnie – miejsce w pamięci do zapisu danych (pole w sumie nieistotne),
01 hex =01 dziesiętnie – typ danych ==> zakończenie pliku,
<brak danych>
FF hex = 255 dziesiętnie – suma kontrolna obliczona identycznie.

Ale niestety, życie przerosło kabaret, tak jak pojemności pamięci przekroczyły barierę 64kB. Przykładowa wczytana zawartość pamięci BIOS komputera PC z procesorem PENTIUM czterokrotnie przekracza możliwości 16-bitowego adresowania. Coś z tym trzeba było zrobić, więc standard został rozszerzony o nowy rodzaj rekordu. Dodany został typ rekordu o wartości kodowej 4, który informuje o numerze bloku o adresacji 16-bitowej (stanowi rozszerzenie adresu).
Zawartość pamięci BIOS we fragmentach:
:020000040000FA
:1000000025202D6C68352D463E0000405A0000002A
:1000100000004120010C61776172646578742E7272
:100020006F6D54E12000002CA88F77BF6B1252EE49
....
:10FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
:10FFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
:10FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
:10FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
:020000040001F9
:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
...
:10FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
:10FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
:020000040002F8
:1000000025052D6C68352D2C5D01000000020000D7
:1000100000005020010C41423631533031352E4220
:10002000494ECDD22000002D908F01F6B1252ED162
....
:10FFD0005CC687413AD1A67B4199CD60A5A2CBED05
:10FFE0000F4F6A68C327883D3D49A5D5EAB4DF7E37
:10FFF00029F859DF04859E7F413B9E9AF084D3C245
:020000040003F7
:10000000CBCD34682F0A6A77379A6826935A2D0821
:1000100031CFDE2BF859FD5EA95C56FBF0A5A5F1AA
....
:10FFE0000000000000000000324136394B48324921
:10FFF000EA5BE000F02A4D52422A02000000FFFFB7
:020000040004F6
:00000001FF


Rekord rozszerzenia adresu:
:020000040000FA

: - początek rekordu,
02 hex = 2 dziesiętnie – wielkość w bajtach informacji
0000 hex = 0 dziesiętnie – miejsce w pamięci do zapisu danych (pole w sumie nieistotne),
04 hex = 4 dziesiętnie – typ danych numer bloku o wielkości 64kB
0000 hex = 0 dziesiętnie – numer 64kB-ytowego bloku
FA hex = 250 dziesiętnie – suma kontrolna obliczona identycznie.

No i zniknęły dotychczasowe ograniczenia, świat stoi otworem.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
spark
Newb
Newb
Posty: 39
Rejestracja: piątek 10 lut 2017, 12:44
Lokalizacja: Wrocław
Kontaktowanie:

Re: EPROM

Postautor: spark » piątek 19 maja 2017, 14:37

[OFFTOP]

gaweł pisze:Taka jedna wróżka mnie przekonała.

Powiedz tylko która to pojadę i osobiście ją wyściskam.
A tak pozatym to chciałem się przywitać - cześć @gaweł!

Awatar użytkownika
gaweł
Expert
Expert
Posty: 966
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: EPROM

Postautor: gaweł » piątek 19 maja 2017, 14:45

spark pisze:A tak pozatym to chciałem się przywitać - cześć @gaweł!

Ach witaj Darku. W rzeczy samej, kopa lat.

spark pisze:Powiedz tylko która to pojadę i osobiście ją wyściskam.

No nie wiem, czy to dobry pomysł walnąć Polskę po przekątnej :mrgreen: .

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse


Wróć do „Inne mikroklocki, również peryferyjne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość