Pokrewne
menu      Trilux TAP 2811 co wymienić aby zadziałał
menu      Czy taka przetwornica ma szansę zadziałać ?
menu      Eagle + Schemat + Czy to wogole zadziala?:)
menu      Projekt do konsultacji - czy zadziala
menu      Prosty filtr - czy zadziala
menu      Dekoder 16 na 4 do klawiatury
menu      darmowe programy z dekodera polsatu
menu      Scalony dekoder S/PDIF
menu      Dekoder UPC . Co z tym?
menu      RevDNS dla głównego adresu IP RPSa.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jamnix.pev.pl
  • Dekoder adresu - czy tak zadziała?





    Michał Borkowicz - 06-09-2006 17:45
    Dekoder adresu - czy tak zadziała?
      Witam wszystkich
    Chcę pod AVRa (atmega128) podłączyć pamieć SRAM 512KB i dekoder adresu
    (demultiplekser)który będzie wybierał rejestry zatrzaskowe i inne układy.

    Podłączyć chcę to tak:

    Pamięć SRAM
    A0-A14 do linii adresowych SRAM
    Pozostałe linie adresowe dla SRAM chcę ustawiać 4 wyjściami np. portu F
    (otrzymam 16 stron po 32KB)
    A15 zanegowany będzie służył jako CS dla pamięci. Wówczas każde
    adresowanie powyżej 32KB będzie uaktywniać pamięć i o to mi chodzi.

    Pytanie mam co do dekodera adresu (demultipleksera 16b). Czy można go
    (CS) bezpośrednio podpiąć do A15? Byłby aktywny na przemian z pamięcią.
    Wejścia demultipleksera podłączył bym do A8-A11, by był widoczny np. pod
    adresami 0x0100, 0x0200... (pod innymi też).

    Tu mam pytanie, czy to zadziała? Czy wyjścia WR RD nie są aktywne dla
    pamięci wewnętrznej? Było by głupotą jak by były, ale wówczas
    przemazywały by mi podłączone rejestry. Dobrze rozumuję?

    Pozdrawiam





    Greg\(G.Kasprowicz\) - 06-09-2006 19:45

      > Tu mam pytanie, czy to zadziała? Czy wyjścia WR RD nie są aktywne dla
    > pamięci wewnętrznej? Było by głupotą jak by były, ale wówczas przemazywały
    > by mi podłączone rejestry. Dobrze rozumuję?

    AFAIR , nie sa aktywne, ale nie wiem co chcesz uzyskac, chyba ze wewn FPASH
    masz mniej niz 32KB...
    I zwroc uwage na szybkosc tego multipleksera,szczegolnie gdy pedzisz AVR z
    16MHz




    Michał Borkowicz - 06-09-2006 22:45

      Greg(G.Kasprowicz) napisał(a):
    > AFAIR , nie sa aktywne, ale nie wiem co chcesz uzyskac,

    ok, już tłumaczę. Wyjaśnie jak ja to rozumie, jak coś bedzie nie tak
    proszę o poprawę, bo jeszcze tym się nie bawiłem.

    W AVR istnieje specjalny interfejs do współpracy z pamięcią zewnętrzną.
    Po uaktywnieniu paru bitów konfiguracyjnych mikrokontroler traktuje
    pamięć zewnętrzną jak przedłużenie własnej pamięci SRAM.
    Tak mniej więcej wygląda obraz pamięci (atmega162):

    -0x0000:0x00FF rejestry itp.
    -0x0100:0x04FF 1KB SRAM wbudowany
    -0x0500:0xFFFF pamięć zewnętrzna

    Dzięki temu interfejsowi można deklarować zmienne powyżej adresu 0x0500
    tak samo jak wbudowany SRAM, czyli ta operacja była by prawidłowa:

    #define OFFSET 0x2000

    void XRAM_example(void)
    {
    unsigned char *p=(unsigned char *) (OFFSET+1);
    .....
    *p=0xaa;
    .....
    }

    Problem jest tylko w tym, że każda strona 64KB z pamięci 512KB jest
    obcinana o przysłonięte bajty z przedziału 0x0000:0x04FF. W przypadku
    ATMEGA128 traci się około 5KB na stronę, czyli w sumie 40KB (8stron po
    64KB).

    Rozwiązaniem tego jest podzielenie pamięci na 16x32KB strony
    rozpoczynające się od adresu 0x8000 (czyli powyzej 32KB). W ten sposób
    mamy dziurę a adresach 0x0500:0x7FFF.
    Tą dziurę chce wykorzystać podpinając 4 wejścia demultipleksera do szyny
    adresowej A8:A11.
    Wówczas jeśli adresowalibyśmy adres powyżej 0x7FFF poprzez ustawienie
    bitu A15 (CS dla pamięci) przez negacje na 0 uaktywnialibyśmy pamięć.

    W przypadku gdy adresujemy pamięć poniżej 0x8000 to A15 było by 0. Czyli
    uaktywniało by demultiplekser podpięty do A8:A11.
    Demultiplekser byłby widoczny pod adresem 0x70??:0x7F?? (bity nie ważne).

    Bitowo tak to wygląda:

    A15
    0 1 1 1 D D D D ? ? ? ? ? ? ? ?

    A15 - to CS dla demultipleksera, a zanegowany dla pamięci
    1 - adresy powyżej 0x7000
    D - tu podłączam demultiplekser
    ? - bity nie ważne, demultiplekser reaguje tylko na stan A8:A11

    Demultiplekser będzie ustawiał CS dla 16 rejestrów takich jak np. 74573
    WR/RD będzie odczytywał/zapisywał z nich jak z pamieci SRAM

    Jeszcze co do SRAM. Strone w pamięci wybierał będe 4 bitami z portu F
    jak dobrze pamiętam.

    W ten sposób nie musze co chwile zmieniać bitów by sie przełączyć
    pomiędzy przyłączone rejestry a pamięc.

    To chyba wszystko.

    > chyba ze wewn FPASH masz mniej niz 32KB...

    w atmega jest 4KB, mało dla moich ptrzeb.

    > I zwroc uwage na szybkosc tego multipleksera,szczegolnie gdy pedzisz AVR z
    > 16MHz
    >
    >

    Tak wiem, ponoć dla 5V i powyżej 8MHz zalecana jest seria AHC.
    Niestety w TME ani seguro nie widze demultipleksera w AHC.

    Jak Wy byście to rozwiazali? Jest inna szybka seria nadająca sie do tego
    dla 5V?

    Pozdrawiam




    Zbych - 06-09-2006 22:45

      Greg(G.Kasprowicz) przemówił ludzkim głosem:

    > I zwroc uwage na szybkosc tego multipleksera,szczegolnie gdy pedzisz AVR z
    > 16MHz

    128 ma możliwość ustawienia waitstate'ów, więc jeśli prędkość nie jest
    krytyczna, to wystarczy najzwyklejszy multiplekser.





    Michał Borkowicz - 06-09-2006 23:45

      Zbych napisał(a):
    > Greg(G.Kasprowicz) przemówił ludzkim głosem:
    >
    >> I zwroc uwage na szybkosc tego multipleksera,szczegolnie gdy pedzisz
    >> AVR z 16MHz
    >
    > 128 ma możliwość ustawienia waitstate'ów, więc jeśli prędkość nie jest
    > krytyczna, to wystarczy najzwyklejszy multiplekser.
    >

    No właśnie o prędkość się rozbija. Zegar 16MHz, bo obsługuje wyświetlacz
    od CX65. Jaki inny symbol nadaje się do 16MHz? AHC nie mogę tego
    demultipleksera znaleźć.

    Jeszcze jedno. Pamięć mam K6X4008C1F-BF55 SMD o czasie 55ns. Jak
    przeliczyć na ilu MHz może działać bez dodatkowych opóźnień?

    Pozdrawiam




    Michał Borkowicz - 06-09-2006 23:45

      Michał Borkowicz napisał(a):

    > Jeszcze jedno. Pamięć mam K6X4008C1F-BF55 SMD o czasie 55ns. Jak
    > przeliczyć na ilu MHz może działać bez dodatkowych opóźnień?

    Ok, chyba wiem.

    1/(55*10^-9) wychodzi ponad 18 milionów, czyli na chłopski rozum 18MHz.

    Pozdrawiam




    T.M.F. - 07-09-2006 10:45

      >> Jeszcze jedno. Pamięć mam K6X4008C1F-BF55 SMD o czasie 55ns. Jak
    >> przeliczyć na ilu MHz może działać bez dodatkowych opóźnień?
    >
    > Ok, chyba wiem.
    >
    > 1/(55*10^-9) wychodzi ponad 18 milionów, czyli na chłopski rozum 18MHz.
    >

    Kupilem w TME zatrzask, ktory chodzi na 16MHz (74AHC573?) w TSSOP20.
    Mialem podobny problem do twojego, troche inaczej go rozwiazalem.
    A mianowicie, powyzej 0x7FFFF mam 16kB strony pamieci (16 bo oprocz
    512kB SRAM mam jeszcze dodatkowo 512kB FLASH), ktore wybieram bitami z
    portu bodajrze F. Ponizej 0x8000 mam na stale podieta jedna strone
    pamieci SRAM i EEPROM (po 16kB). Pozornie glupie, ale zasadniczo bardzo
    ulatwia kopiowanie danych pomiedzy poszczegolnymi stronami (duzy bufor).
    No i w gcc moge tam zadeklarowac zmienne, ktore powinny zostac poprawne
    po zmianie strony pamieci. Nie trace tez w ten sposob owych 4kB, bo ta
    zerowa strone moge tez wybrac jako strone pojawiajaca sie pod adresem
    0x8000. Caly dekoder to zatrzask + dwa uklady 7400 (wykorzystalem z nich
    chyba 6 bramek).
    Calosc zawiera ATMega128, 512 kB SRAM, 512kB FLASH, przetwornice do
    zasilania podswietlenia LCD (regulowana z procka), LDO do zasilania LCD
    S65, joystick, ma zlacze do LCD i drugie z wyprowadzonymi wolnymi
    portami z procka. Plytka jest wielkosci wyswietlacza (wyswietlacz na nia
    naklejam, wystaje jeszcze z jednej strony na ok. 1,5cm zeby byl dostep
    do joysticka). Jak chcesz to mam jeszcze wolna plytke.




    Greg\(G.Kasprowicz\) - 07-09-2006 11:45

      >
    > W ten sposób nie musze co chwile zmieniać bitów by sie przełączyć pomiędzy
    > przyłączone rejestry a pamięc.
    >
    > To chyba wszystko.

    nie widze luki w rozumowaniu, powinno dzialac




    PAndy - 07-09-2006 15:45

     
    "Michał Borkowicz" <brak@onet.pl> wrote in message
    news:ednad4$eig$1@nemesis.news.tpi.pl...
    > Tak wiem, ponoć dla 5V i powyżej 8MHz zalecana jest seria AHC.
    > Niestety w TME ani seguro nie widze demultipleksera w AHC.

    ACT a nie AHC...




    PAndy - 07-09-2006 15:45

     
    "Michał Borkowicz" <brak@onet.pl> wrote in message
    news:ednf5o$nm7$2@nemesis.news.tpi.pl...

    > Ok, chyba wiem.
    >
    > 1/(55*10^-9) wychodzi ponad 18 milionów, czyli na chłopski rozum
    > 18MHz.

    Podnies napiecie zasilajace o ok 10 - 15% pojdzie szybciej
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com