kategoria:
[#61] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #60

Zgadza się. Zakładając, że ta karta będzie pracowała tylko jako FAST RAM do A600, to nie ma sensu dawać EEPROM'u. Jedynie program PrepCard posiada opcję zmiany karty na "dyskietkę" przez modyfikację CIS'u, więc tylko z nim mogą być problemy bez EPROM'u (ale tylko po naciśnięciu przycisku "Prepare As DISK").
[#62] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #60

Zmienił np 3 bajt czyli informację o typie pamięci i szybkości. Tylko na co?
Jest gdzieś jakaś informacja co który bajt oznacza jak dla Autoconfig?
[#63] Re: Budowa kart pamięci SRAM na PCMCIA

@bogumil, post #62

Zmienił np 3 bajt czyli informację o typie pamięci i szybkości. Tylko na co?


Zmienione zostały też jakieś bajty dalej...

Jest gdzieś jakaś informacja co który bajt oznacza jak dla Autoconfig?


Ciężko tu mówić o tym, co który bajt oznacza, trzeba dekodować całe te struktury "tuple", bo one mogą być na różnych pozycjach (za wyjątkiem device information, które musi być pierwsza). Popatrz do tej książki, którą zalinkowałem (post 43). Tam są przykłady CISu dla SRAM wraz z opisami.

Niestety jeśli chodzi o to czy dana karta SRAM jest traktowana jako pamięć czy jako dysk, to książka mówi tylko enigmatycznie, że "may contain additional tuple information written there by PCMCIA aware software that formats the SRAM memory for use as a virtual drive."

Obawiam się, że trzeba by poczynić inżynierie wsteczną fragmentu Kickstartu który odpowiada za wykrywanie kart, żeby jednoznacznie powiedzieć dokładnie które mają znaczenie dla nas.

Ostatnia aktualizacja: 07.01.2014 00:25:29 przez strim_
[#64] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #63

Wiem, ale dla 3 bajtu jest informacja we wcześniejszych dokumentach i dlatego na nim się oparłem.
Wiem że 63h to SRAM 150ns a 62h to SRAM 200ns. Czyli jak zmienił, to możliwe, że trzeba to uwzględnić w działaniu karty. Tylko trzeba wiedzieć, co jest co.
[#65] Re: Budowa kart pamięci SRAM na PCMCIA

@bogumil, post #64

Czyli jak zmienił, to możliwe, że trzeba to uwzględnić w działaniu karty.


Według mnie nie trzeba, nigdzie nie znalazłem informacji, żeby zawartość CISu miała w jakikolwiek sposób wpływać na działanie samego sprzętu. W założeniu ma to być tylko informacja dla systemu operacyjnego.

Dlaczego PrepCard zmienił 150ns na 200ns tego nie wiem, ale gdzieś czytałem, że Gayle ma cykle do pamięci na PCMCIA i tak są dużo wolniejsze (560ns?).
[wyróżniony] [#66] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #65

Dokładnie, pamięć eeprom nie jest droga. Można ją zamontować spokojnie zamontować i nie martwić się o to co i kiedy musi być w niej zmienione. Układ CPLD też nie musi w tej modyfikacji brać udziału. Jego zadaniem będzie tylko i wyłącznie uaktywnić w odpowiednim czasie eeprom, a zdezaktywaować SRAM i na odwrót. Kiedy ma to nastąpić CPLD będzie informowane poprazez sygnał REG#.
[#67] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #65

Jak zrozumiałem wystarczy dla SRAM informacja 61h w adresie 04h ( 6 to pamięć SRAM a 1 to szybkość 250ns Amiga szybciej nie obsłuży i nie powinna zmieniać ) oraz w adresie 06h informacja o rozmiarze pamięci ( dolne 3 bity to:
Code hex Units
0 512 bytes
1 2 K
2 8 K
3 32 K
4 128 K
5 512 K
6 2 M
7 Reserved

górne bity 7-3 to ilość tych bloków)
czyli dla 1MB to Dh, dla 2MB to 5h a dla 4MB to 3Dh lub Eh.
Reszta to jak zrozumiałem terminacja lub aktywacja.
[#68] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #53

Sygnału BUSY# nie ma bezpośrednio na eepromie. Trzeba go stworzyć. Z diagramów wynika, że występuje on tylko po zapisaniu danych do eepromu.

Ostatnia aktualizacja: 07.01.2014 09:06:21 przez jarob
[#69] Re: Budowa kart pamięci SRAM na PCMCIA

@jarob, post #68

Dokładnie, pamięć eeprom nie jest droga. Można ją zamontować spokojnie zamontować i nie martwić się o to co i kiedy musi być w niej zmienione. Układ CPLD też nie musi w tej modyfikacji brać udziału. Jego zadaniem będzie tylko i wyłącznie uaktywnić w odpowiednim czasie eeprom, a zdezaktywaować SRAM i na odwrót. Kiedy ma to nastąpić CPLD będzie informowane poprazez sygnał REG#.


W istocie, uważam, że jest to właściwa droga

Sygnału BUSY# nie ma bezpośrednio na eepromie. Trzeba go stworzyć. Z diagramów wynika, że występuje on tylko pod koniec zapisu danych do eepromu.


To chyba zależy od EEPROMu. Np. układy M28C16 mają. Może warto od razu taki zastosować (czy też coś kompatybilnego, bo ten chyba nie jest już produkowany)?

Jak zrozumiałem wystarczy dla SRAM informacja...


Dodatek A w książce zawiera przykładowy CIS dla karty SRAM wraz z opisem, nic nie trzeba tu wymyślać. Ale dobrze by było zdekodować te tuple z wątku EABowego, żeby zrozumieć co zmienia PrepCard, ja postaram się to zrobić dzis wieczorem.

Ostatnia aktualizacja: 07.01.2014 09:16:18 przez strim_

Ostatnia aktualizacja: 07.01.2014 09:17:33 przez strim_
[#70] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #69

Dodatek A w książce zawiera przykładowy CIS dla karty SRAM wraz z opisem, nic nie trzeba tu wymyślać

Może nieuważnie czytałem, ale nie znalazłem informacji, jak zakodować np. szerokość szyny danych i adresu od jakiego zaczyna się blok pamięci.
To co jest to szybkość pamięci, typ i organizacja w 4h i 6h.
Nie wiem też, czy organizacja np. 4*512kB zamiast 1*2MB nie spowoduje w Amidze alokacji czterech bloków pamięci zamiast jednego. I czy gdzieś nie trzeba dać informacji, że 4*512kB to jeden obszar pamięci. Tego nie znalazłem w książce, choć z opisu jednej z kart coś takiego można wyczytać.
[wyróżniony] [#71] Re: Budowa kart pamięci SRAM na PCMCIA

@bogumil, post #70

A zajrzyj do dodatku B (opis CIS dla kart Flash). Bo wydaje mi sie że tam widziałem te informacje. Z czego można wywnioskować, że nie są potrzebne dla SRAM. Wydaje mi się, że pamięć SRAM musi zawsze zaczynać się od adresu 0 w przestrzeni PCMCIA (a gdzie go umieści Gayle w przestrzeni hosta to inna sprawa i nie wymaga to zapisania niczego w CIS).
[#72] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #69

To chyba zależy od EEPROMu. Np. układy M28C16 mają. Może warto od razu taki zastosować (czy też coś kompatybilnego, bo ten chyba nie jest już produkowany)?


O widzisz, nie dokładnie popatrzyłem w datasheety od niego. Ten eeprom w niektórych tylko obudowach ma ten sygnał wyprowadzony. Trzeba dobrze poszukać i właściwy zastosować :)
[#73] Re: Budowa kart pamięci SRAM na PCMCIA

@jarob, post #72

Tylko coś nie mogę znaleźć zamiennika z tym sygnałem. Wszystkie obecnie produkowane 28C16, które znalazłem nie mają tego sygnału... z drugiej strony wygenerowanie go w CPLD nie powinno być skomplikowane. Biorąc pod uwagę szybkość nowych EEPROMów i powolność Gayle zapewne wystarczy aby ten sygnał był aktywny przez cały cykl zapisu do EEPROMu.
[#74] Re: Budowa kart pamięci SRAM na PCMCIA

@jarob, post #72

Dubel.

Ostatnia aktualizacja: 07.01.2014 10:59:19 przez strim_
[#75] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #73

Myślę, że ten układ będzie dobry link LOL
Co Wy się tak upieracie przy stosowaniu tego EEPROM'u? Będziecie używać tej karty, jako dyskietki z baterią? Nie sądzę. Poza tym nie zaleca się stosować tak "archaicznych" części w nowych konstrukcjach :)

Jest kryzys trzeba ciąć koszty na czym się tylko da...

Ostatnia aktualizacja: 07.01.2014 11:47:24 przez RomanWorkshop
[#76] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #73

Nie wiem, czy przez cały cykl będzie ok. Raczej dopiero po wysłaniu danych do eepromu i do końca cyklu zapisu.
[#77] Re: Budowa kart pamięci SRAM na PCMCIA

@jarob, post #76

Nie wiem, czy przez cały cykl będzie ok. Raczej dopiero po wysłaniu danych do eepromu i do końca cyklu zapisu.


No niestety nie, moje wcześniejsze założenie nie jest dobre, ale Twoje też nie jest dobre ;). Bo z datasheetów EEPROMu wynika, że mogą one pisać nawet dłużej (do 1ms) niż cykl zapisu Gayle (560ns). Sygnał BUSY może być aktywny jeszcze jakiś czas po zakończeniu cyklu zapisu. Taka sytuacja jest nawet przedstawiona w datasheecie jednej z kart SRAM (diagram zapisu na str 20).

Nowsze EEPROMy mają inne (bardziej skomplikowane jak dla mnie) metody informowania o zakończeniu zapisu np. toggle bit, polling linii danych. Na ich podstawie można by zasymulować sygnał BUSY w CPLD, ale to nie jest takie proste, wymaga pewnie jakiejś maszyny stanowej (bo nie byłaby to funkcja logiczna tylko jakiś proces).

Albo w ogóle można zasymulować EEPROM w mikrokontrolerze z flashem (koszt elementu taki sam, ale... wariat?). Jak nikt nie wymyśli nic lepszego to ja mogę to zrobić.

Tak czy siak najlepiej byłoby mieć EEPROM z wyprowadzonym sygnałem sygnałem BUSY, żeby Gayle wiedziało, że musi poczekać. Ale jak wiemy jakoś słabo z ich dostępnością...

Myślę, że ten układ będzie dobry link LOL


Nie wiem czy będzie dobry bo nie dali datasheetu, więc nie wiadomo czy w tym konkretnym jest linia BUSY czy jej nie ma. Poza tym cena jest absurdalna.

Co Wy się tak upieracie przy stosowaniu tego EEPROM'u? Będziecie używać tej karty, jako dyskietki z baterią? Nie sądzę.


Jak już robimy nową kartę SRAM, to niech ona przynajmniej ma takie możliwości jak karty sprzed 20 lat.

Poza tym nie zaleca się stosować tak "archaicznych" części w nowych konstrukcjach :)


Ale w EEPROMie przecież nie ma nic archaicznego, one dalej są produkowane, tylko nie takie jak chcemy .


Ostatnia aktualizacja: 07.01.2014 13:55:36 przez strim_
[#78] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #77

Tak czy siak najlepiej byłoby mieć EEPROM z wyprowadzonym sygnałem sygnałem BUSY, żeby Gayle wiedziało, że musi poczekać. Ale jak wiemy jakoś słabo z ich dostępnością...

A po co taki eprom z sygnałem BUSY (o ile takie istnieją)? Ten sygnał generujesz w cpld na czas operacji w epromie i zwalniasz, gdy można wykonać kolejną operację. Zresztą i tak udział cpld w obsłudze epromu jest nieunikniony. Należy przeanalizować czasy wg dokumentacji, przy 7MHz jest tego czasu dość sporo i może się okazać, że nie trzeba sobie zaprzątać tym głowy.


Poza tym, nie można tego CISu zczytać z karty 4MB i wrzucić do epromu jako fabryczny? A co potem zrobi ktoś w prepcard to jego sprawa.



Ostatnia aktualizacja: 07.01.2014 15:03:02 przez rafgc
[#79] Re: Budowa kart pamięci SRAM na PCMCIA

@rafgc, post #78

A po co taki eprom z sygnałem BUSY (o ile takie istnieją)? Ten sygnał generujesz w cpld na czas operacji w epromie i zwalniasz, gdy można wykonać kolejną operację.


Tak ale na jakiej podstawie mam wiedzieć, że EEPROM już skończył zapis? Problem w tym, że zapis w EEPROMie trwa dłużej niż sam cykl dostępu do niego. Tzn. z naszego pkt widzenia już operacja się skończyła, ale EEPROM "w środku" dalej coś robi. Posiadanie tego sygnału wyprowadzonego z EEPROMu rozwiązuje problem, bo wiadomo faktycznie kiedy skończył i wystarczy syngał BUSY EEPROMu podłączyć do sygnału BUSY slotu PCMCIA. Jak go nie ma to trzeba na głowie stawać, żeby się dowiedzieć czy skończył czy nie (metody polling lub toggle bit są skomplikowane).

Zresztą i tak udział cpld w obsłudze epromu jest nieunikniony.


Temu nikt nie zaprzecza.

Należy przeanalizować czasy wg dokumentacji, przy 7MHz jest tego czasu dość sporo i może się okazać, że nie trzeba sobie zaprzątać tym głowy.


Gayle ma cykl 560ns (zawsze), zapis wewnątrz EEPROM może trwać aż 1ms... Spójrz na ten diagram, o którym mówiłem w poprzednim poście.

Poza tym, nie można tego CISu zczytać z karty 4MB i wrzucić do epromu jako fabryczny? A co potem zrobi ktoś w prepcard to jego sprawa.


To jest akurat żaden problem.
[#80] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #79

A mówiłem: wyrzucić ten EEPROM w cholerę Wszystko zaimplementować w CPLD (o ile się da) i można spać spokojnie ;)
[#81] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #79

Może pierwsze cztery bajty w CPLD na stałe z czasem 250ns by Amiga nie zmieniała, terminację FFh w CPLD na adres 74h i 76h a pomiędzy mały SRAM np. 8k*8 i niech tam Amiga zapisuje sobie co chce?
Nie powinno być czasu z dostępem, a na informacjach o produkcie i firmie chyba aż tak nie zależy by szukać EEPROM?
[#82] Re: Budowa kart pamięci SRAM na PCMCIA

@RomanWorkshop, post #80

Skoro nalegasz to mam dobre wieści. Poczyniłem trochę inżynierii wstecznej card.resource i wygląda na to, że jeśli nie ma attribute memory, to Kick poszukuje struktury CIS zapisanej na początku SRAMu. Więc pytanie jak można ją tam umieścić? Otóż trzeba w PrepCardzie kliknąć prepare as RAM i jeżeli EEPROM nie zostanie wykryty to CIS zostanie to zapisany w SRAMie. Tylko to czyniłoby użytkowanie takiej karty upierdliwym, bo za każdym razem trzeba by było uruchamiać PrepCard, klikać ten przycisk i dopiero po resecie Amigi pamięć zostałaby dodana (no chyba, że damy baterię!). Przynajmniej tak to rozumiem... ale żeby potwierdzić to trzeba znów zbudować prototyp ;).

Ostatnia aktualizacja: 07.01.2014 18:56:26 przez strim_
[#83] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #79

Tak ale na jakiej podstawie mam wiedzieć, że EEPROM już skończył zapis?

Na podstawie timingów z dokumentacji? Element o nieznanym zachowaniu chyba by długo na rynku się nie utrzymał, bo kto by go kupił jak nie wiadomo jak go zaimplementować?
[#84] Re: Budowa kart pamięci SRAM na PCMCIA

@rafgc, post #83

Pierwszy lepszy znaleziony EEPROM AT28C256 ma czas zapisu 3 lub 10ms, przy czym powierzchownie (więc niedokładnie) przeglądając dokumentację, cykl zapisu to ponad 100ns, po czym należy sprawdzać stan linii I/O7 (pierwsza strona dokumentacji) czy logika wewnętrzna pamięci zakończyła proces zapisu zanim zacznie się jakiekolwiek operacje na eepromie. Wygląda na to, że można zapisać 64 bajty w jednym cyklu zapisu w tym EEPROMIE.

Tak czy inaczej, wszystkie czasy podają w dokumentacji (datasheety).


Jeżeli jest tak jak zrozumiałem, to nie trzeba nawet zawracać sobie głowy sygnałem Busy, tylko sprawdzać procesorem stan bitu na linii I/O7 eepromu. Co byłoby nawet logiczne, bo wystawiając BUSY na 10ms, Amiga w czasie zapisu do EEPROM odczułaby niemiłosierne spowolnienie lub nawet zamrożenie w przypadku kilku takich operacji po kolei.


Ostatnia aktualizacja: 07.01.2014 20:22:46 przez rafgc
[#85] Re: Budowa kart pamięci SRAM na PCMCIA

@rafgc, post #84

po czym należy sprawdzać stan linii I/O7 (pierwsza strona dokumentacji) czy logika wewnętrzna pamięci zakończyła proces zapisu zanim zacznie się jakiekolwiek operacje na eepromie.


Ja wiem, że na podstawie tego mógłbym wygenerować sygnał BUSY w CPLD, ale jeśli dobrze rozumiem, to wymagałoby napisania jakiegoś procesu, który musiałby to sprawdzać tylko po rozpoczęciu cyklu zapisu, aż do momentu gdy na IO 7 pojawi się właściwa wartość... Mniemam, że do tego trzeba by zrobić jakąś maszynę stanową. Wydaje mi się to nietrywialne.

Jeżeli jest tak jak zrozumiałem, to nie trzeba nawet zawracać sobie głowy sygnałem Busy, tylko sprawdzać procesorem stan bitu na linii I/O7 eepromu.


Tego nie da się zrobić bez modyfikacji programu PrepCard i ogólnie bycia niezgodnym ze standardem PCMCIA. Więc nie wydaje się to dobrym pomysłem.

wystawiając BUSY na 10ms, Amiga w czasie zapisu do EEPROM odczułaby niemiłosierne spowolnienie lub nawet zamrożenie w przypadku kilku takich operacji po kolei.


Nikt nie zamierza do niego pisać w trakcie normalnej pracy. To jest tylko potrzebne w momencie przygotowania karty do użycia. Spowolnienie podczas tej operacji jest dopuszczalne.

Ostatnia aktualizacja: 07.01.2014 20:37:36 przez strim_
[#86] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #85

Pytanie brzmi, czym jest sygnał BUSY, czy tylko rejestrem w Gayle dla programu prepcard, czy też wstrzymuje on cykl procesora. Jeśli wstrzymuje cykl procesora, to Amiga będzie zamrażana na 10ms w czasie cyklu. Jeśli jest to tylko informacja dla programów, to można zwyczajnie przepuścić linię I/O7 przez CPLD i ustawiać BUSY z automatu dla którego warunkiem na przykład będzie przejście WE w stan aktywny, a reset tego sygnału będzie możliwy dopiero po zakończeniu cyklu. Tutaj trzeba by zajrzeć w dokumentację kiedy od momentu zakończenia cyklu można sprawdzać już tą linię I/O7. Nie trzeba do tego jakichś specjalnych maszyn stanowych, ale też nie ma przeciwwskazań, bo jest najczytelniejszą formą dla początkującego.

Najlepiej byłoby się wpiąć analizatorem logicznym ustawić i zobaczyć czy procesor będzie pracował dalej jak BUSY będzie aktywne.


Ostatnia aktualizacja: 07.01.2014 21:11:26 przez rafgc
[#87] Re: Budowa kart pamięci SRAM na PCMCIA

@rafgc, post #86

Pytanie brzmi, czym jest sygnał BUSY, czy tylko rejestrem w Gayle dla programu prepcard


Na pewno stan tej linii jest widoczny jako rejestr pod adresem 0xDAA000 (bit 2), ale nie wiem aktywny stan tej linii nie ma jeszcze jakiś innych konsekwencji.

Tutaj trzeba by zajrzeć w dokumentację kiedy od momentu zakończenia cyklu można sprawdzać już tą linię I/O7.


Datasheet np. AT28C16 rzecze:

"The AT28C16 provides DATA POLLING to signal the completion of a write cycle. During a write cycle, an attempted read of the data being written results in the complement of that data for I/O7 (the other outputs are indeterminate). When the write cycle is finished, true data appears on all outputs."

Na str. 7 w/w datasheetu jest diagram jak ten polling ma wyglądać i dla mnie to wcale nie wygląda prosto :P. Czy to nie oznacza, że trzeba sprawdzać wszystkie linie, a nie tylko tą konkretną?


Ostatnia aktualizacja: 07.01.2014 21:43:12 przez strim_
[#88] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #87

0xDAA000


Mała pomyłka... Status linii pokazywany jest przez bit 2 pod 0xDA0000, natomiast bit 2 pod 0xDAA000 włącza generowanie przerwania w sytuacji gdy linia jest aktywna.
[#89] Re: Budowa kart pamięci SRAM na PCMCIA

@strim_, post #87

Faktycznie, trzeba po prostu odczytywać adres, który był zapisywany i sprawdzać dane na wyjściu, do czasu aż pojawią się zapisane wcześniej dane ( http://pl.scribd.com/doc/17094152/EEPROM-DATA-POLLING ). Można to też zrobić inaczej, znając wewnętrzny czas cyklu zapisu, można stworzyć licznik, który będzie utrzymywał BUSY w odpowiednim stanie, ale jest problem, bo nie widzę źródła zegara dla takiego licznika, można zastosować jakiś generatorek 1MHz do napędzania licznika.


Ostatnia aktualizacja: 07.01.2014 22:23:07 przez rafgc
[#90] Re: Budowa kart pamięci SRAM na PCMCIA

@rafgc, post #89

Możliwe rozwiązania zaimplementowania struktury CIS (maks. 128 bajtów) w karcie:

1. Emulacja pamięci ROM w CPLD (nie wiem nawet czy jest to wykonalne) - bez możliwości zmiany karty w "dyskietkę" za pomocą programu PrepCard (sygnał zapisu będzie ignorowany).
2. Użycie pamięci EEPROM ze stałym czasem oczekiwania na zakończenie zapisu (sygnał BUSY, np. przez 10ms) - wymaga zastosowania generatora (kwarcowego).
3. Emulacja pamięci EEPROM w mikrokontrolerze - wymaga użycia rezonatora kwarcowego.

Jak dla mnie faworytem jest nr 1, ale jeśli karta ma być w 100% kompatybilna ze standardem PCMCIA, to rozwiązanie nr 2 jest jedynym rozsądnym. Dziękuję za uwagę ;)
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem