Elektroda.pl
Elektroda.pl
X
Oscyloskop cyfrowy Siglent SDS1104X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kolejność linii pamięci RAM (czy ktoś zamieniał?)

kedzi1 01 Paź 2005 15:17 1601 15
  • #1 01 Paź 2005 15:17
    kedzi1
    Poziom 18  

    Buduje sterownik do wyświetlacza LCD (bez sterownika). Konstukcję oprę o DS89C420 (jednotaktowy 33MHz). Muszę dołączyć z zewnątrz do uP pamięć. Mam pamięć W24512AK-15 (coś jak 62512 o czasie dostępu 15ns). Będzie odczytywana/zapisywana z dużą prędkością 2 takty przy XTAL=32MHz.
    I pytanie zasadnicze czy ktoś zamieniał kolejność linii adresowych/danych dołączanej pamięci? Logicznie nie ma to wpływu, bo jeżeli zamienię np D0 z D4 to z zewnątrz nic się nie zmieni, jeżeli zamienię dwie linie adresu to też nie? Ale dlaczego projektujący systemy z zewnętrzną RAM tak sztywno trzymają się kolejności podanej przez producenta. Czy zamiana linii adresu będzie miała wpływ na prędkość jej działania. Na moje nie. Ale jednak wszyscy trzymają się kolejności producenta. Czy ktoś już zamieniał linie adresu??

    0 15
  • Oscyloskop cyfrowy Siglent SDS1104X
  • #2 01 Paź 2005 15:51
    McRancor
    VIP Zasłużony dla elektroda

    Myśle że nic się wielkiego nie stanie, a co do sztywności to powód wydaje mi się że jest taki, że w starszych systemach wykorzystywało się program w pamięci EPROM, a tam adresy są ważne, bo przecież programuje się je w zewnętrznych programatorach, a szyna adresowa RAMu i EPROMu jest często ta sama.

    16Mhz zapis odczyt przy 15ns czasie dostępu (maks 66Mhz) to nie powinno być żadnych opóźnień, nawet jeśli RAMikowi nie na ręke jest niekolejne adresowanie, to spokojnie się wyrobi.

    Tylko ten projekt "brzydki" będzie ;)

    0
  • #3 01 Paź 2005 17:08
    kedzi1
    Poziom 18  

    Dlaczego brzydki ???

    Mam fajny wyświetlacz 720x240 bez sterownika tzn same drivery wejscie to 4 bity danych, taktowanie danych, taktowanie linii i taktowanie pełnych obrazów. Wyświetlacz trzeba odświerzać około 50 razy na sek. żeby ładnie wyglądał.

    Szkoda by go nie wykorzystać, tym bardziej że potrzebuje taki do budowy oscyloskopu cyfrowego. Jest dotykowy z podświetlaniem na zimnej katodzie.

    Chyba że masz inny pomysł na sterowanie takim wyświetlaczem...

    0
  • #4 01 Paź 2005 17:14
    McRancor
    VIP Zasłużony dla elektroda

    Myśle że to strasznie skomplikowane urządzenie będzie. Mam nadzieję że tego SRAMu nie chcesz wykorzystać jako panięć próbek! A brzydkie tylko dlatego że nie po kolei...

    Często prędkość wyświetlania obrazów jest ściśle określona w nocie katalogowej, zobacz czy nie ma tam przypadkiem konkretnie określonej wartości.

    Ja tu widze jakiegoś CPLD, będzie szybciej i sprawniej.

    0
  • Oscyloskop cyfrowy Siglent SDS1104X
  • #5 01 Paź 2005 17:39
    kedzi1
    Poziom 18  

    SRAM potrzebny jest na pamięć obrazu, sterownik będzie zajmował się tylko grafiką (odpowiednik sterowników w konwencjonalnych wyświetlaczach + obsługa ekranu dotykowego + parę wbudowanych efektów) a co wyświetlać to z drugiego procka też z tą pamięcią, ale podczas próbkowania adresowana będzie z liczników (CPLD, 40MSPS, 2 kanały po 64kB). Co o tym sądzisz ???

    0
  • #6 01 Paź 2005 17:59
    McRancor
    VIP Zasłużony dla elektroda

    40MSPS, maaaało! Proponowałbym kejsz ;) z jakiegoś starego 486cia 10ns, do tego automat na CPLD, czy licznikach i da się wyciorać 100MSPS, a z tego to nawet 50Mhz da się zrobić :D Tylko ADC będzie potrzebny konkretniejszy, bo na ten z allegro (TDA) to szkoda wyświetlacza i roboty. No i pamięci im więcej tym lepiej. Jeśli nie uda Ci się znaleźć dostatecznie szybkiej pamięci można zrobić ccwany myk plegający na używaniu na przemian 2 kości wtedy można uzyskać czas reakcji na poziomie 7,5ns dla 2 kości 15ns, a powyżej tego to już ciężko bo dochodzi magia układów w.cz. (tu też trzeba będzie dbać o długość ścieżek itp. ale zakłócenia będą na poziomie do przyjęcia)

    Najpierw trzeba jednak zrobić sterownik wyświetlacza, a odwrócone linie adresowe nie będą stanowiły problemu ;)


    Myśle że czeka Cię bardzo dużo pracy, ale co do sterownika wyświetlacza to już kiedyś robiłem coś podobnego i rozwiązanie jest całkiem dobre,

    0
  • #7 01 Paź 2005 18:37
    kedzi1
    Poziom 18  

    Mam jeszcze pytanie do kolegi McRancor:

    Robiłeś już taki sterownik to powiedz jakiego interfejsu wejściowego urzyłeś??? Czy dobrze kombinuję żeby pamięć obrazu zrobić podwujną i buforować zmiany tzn wyświetlam obraz z pierwszej pamięci, modyfikuje drugą a potem na odwrót ???

    0
  • Pomocny post
    #8 01 Paź 2005 19:30
    McRancor
    VIP Zasłużony dla elektroda

    Można tak zrobić, pomysł dobry. Ja miałem malutki wyświetlacz 128*64 i wykorzystywałem 16KB zewnętrznego ramiku. Dostęp z zewnątrz przez UARTa 115K i u mnie spokojnie starczało. Ale u Ciebie widziałbym dostęp magistralą równoległą 8 bitową, będzie najszybsza. Jakiś w miare pożądny UC który dokonuje obliczeń punktów, koła położenie kursora i panel dotykowy i wysyła to do Ramu. Fizycznie są dwie kości ramu, z punktu widzenia dużego UC jest jedna.

    A jedna dlatego że jest mały CPLD który obsługuje dwie pamięci, wrzuca obraz z jednej, a drugą pozostawia otwartą na zewnątrz dla dużego UC. Dodatkowo jeśli dostanie od procesora sygnał zapisania pamięci "ramki" czyli pełnego obrazu, przełącza kości pamięci. Ten myk spowoduje że jak procesor nie zdąży obliczyć nowej ramki, to wyświetlana będzie ciągle poprzednia, dzięki czemu nie zniknie obraz. Chyba że wyświetlacz posiada własny RAM i jeżeli nie wyśle mu się nic nowego to stare nie zniknie, wtedy można zrezygnować z CPLD i dwuch kostek. A do komunikacji konieczny jest interfejs sprzętowy, UART SPI itp. żeby nie obciążać procka.

    0
  • Pomocny post
    #9 01 Paź 2005 21:42
    elektryk
    Poziom 42  

    Nie będzie problemu z zamianą, widziałem nawet fabryczne urządzenie gdzie tak było zamienione. Wydaje mi się że odpowiedź jest "bo tak można", jest to jedna z wielu kombinacji i chyba taka najbardziej oczywista. Generalnie ułatwia to serwis, bo od razu wiadomo że Ax albo Dx jest wszędzie takie samo.

    0
  • #10 02 Paź 2005 14:46
    kedzi1
    Poziom 18  

    No to mnie uspokoiliście, wielkie dzięki dla wszystkich którzy zabrali głos.

    A ja sobie pójdę dalej dłubać...

    0
  • #11 02 Paź 2005 15:48
    MirekCz
    Poziom 35  

    zrobienie podwojnego buforowania w twoim przypadku ma maly sens jezeli uzywasz tego samego procesora do generowania obrazu i do jego wyswietlania.

    Co wiecej, jezeli twoja czesc odpowiedzialna za wyswietlanie nie musi posiadac bog wie jakich bajerow, to najlepiej generowac obraz na biezaco.
    W ten sposob pozbywasz sie wogole odwolan do wolnej pamieci, a jedyne co potrzebujesz to zestaw najswiezszych probek do generowania danych i jakies informacje o wyswietlanym tekscie (wszystko spokojnie zmiescisz w procku co ma 16/32kB ramu)

    PS.male pytanie, w jaki sposob zbierasz probki/z jaka predkoscia?

    0
  • #12 03 Paź 2005 19:43
    kedzi1
    Poziom 18  

    Przypominam tylko że to wyświetlacz 720x240 to 172800 punktów ! Wyświetlacz nie posiada żadnego sterownika, więc tżeba przesyłać dane około 50 razy na sekundę aby uzyskać obraz: to ponad 8 Mb/s !!! Uruchomiłem prototyp na płytce stykowej (narazie bez pamięci zewnętrznej), szybki procesor 1 taktowy z zegarem 32MHz przeznacza prawie połowe czasu na przesyłanie danych do wyświetlacza (reszta pozostanie na komunikacje i operacje na pamięci, oraz na obsługę matrycy dotykowej). Nie wyobrażam sobie by generować obraz na bierząco wyświetlając przebieg, nastawy, wyniki pomiarów itp. i obsługę sprzętu. W orginalnym sprzęcie (kserokopiarka) pracował potężny procesor 32 bity i spory FCPGA, a i tak sprzęt posiadał swoje sterowniki na magistrali CAN !!! Moim zdaniem ciężko to na jednym procku z 32kB RAMu zrobić...

    0
  • #13 03 Paź 2005 20:07
    McRancor
    VIP Zasłużony dla elektroda

    Dlatego zrób tak jak radziłem i zaprzęgnij do samego procesu wyświetlania CPLD/FPGA i RAM o pojemności 2 "ramek" (pełnych obrazów wyświetlacza) jedna generowana, a druga poprzednia.

    0
  • #14 03 Paź 2005 20:20
    kedzi1
    Poziom 18  

    Eeeee.. CPLD to jednak natrazie drogie zabawki, a skoro mam już szybki procek (który poradzi sobie z podwójnym buforem) i wszystko działa to nie ma co...

    0
  • #15 03 Paź 2005 20:39
    morph13
    Poziom 25  

    kedzi1 napisał:
    Eeeee.. CPLD to jednak natrazie drogie zabawki, a skoro mam już szybki procek (który poradzi sobie z podwójnym buforem) i wszystko działa to nie ma co...


    Nie przesadzaj, przejrzyj ofertę Xilinxa i oferty sklepów internetowych posiadających te układy.
    XC95xx to bardzo wdzięczne kości CPLD a producent wspiera je darmowym oprogramowaniem.

    0
  • #16 03 Paź 2005 20:44
    kedzi1
    Poziom 18  

    No tak... Nawet na allegro coś ciekawego w dobrej cenie się znajdzie, ale bardziej chodziło mi o to że nie ma sensu skoro prblem prościej jest rozwiązany.

    A co do XC95xx to żeczywiście polecam, pracowałem troche z nimi... są świetne i oprogramowanie to kawał dobrej roboty...

    NO !!! Aleśmy troszke z tematu zeszli...

    0