logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega128 i uruchomienie at45db081d

paw1976 17 Kwi 2014 10:20 1872 8
REKLAMA
  • #1 13517582
    paw1976
    Poziom 11  
    Witam.

    Mam problem ze startem pamięci at45db081d. Poniżej schemat.

    Atmega128 i uruchomienie at45db081d

    Właściwie jest taki sam jak w znanym MMnet01 propoxa.
    Po podaniu zasilania na płytkę atmega odczytuje cały czas FF dopiero chwilowe zwarcie wspólnego połączenia linii RST,WP,VCC do masy powoduje prawidłowy odczyt statusu z pamięci. Zasilanie na linii VCC to ok. 3,1V. Obserwacja oscyloskopem potwierdza że dopiero po tym zdarzeniu na linii SO pojawiają się dane. Co może być przyczyną zasilanie, czy też konieczność dodatkowej obsługi linii RST?
    Poniżej kod.
    Dziękuję za pomoc

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Problem chyba leży w zasilaniu. Zauważyłem że opóźnione podanie zasilania na pamięć (np: z oddzielnego zasilacza 3V) w stosunku do reszty powoduje prawidłowe jej działanie. Tzn najpierw podłączam zasilacz główny na płytkę startuje atmega, a później podaję zasilanie na pamięć i działa poprawnie. Jednoczesne lub wcześniejsze zasilenie pamięci powoduje brak odczytów. Chwilowe odłączenie zasilania tylko z pamięci powoduje że działa już prawidłowo.
    Opóźnienia programowe na początku niestety nadal nic nie dają.
  • REKLAMA
  • #2 13529579
    mickpr
    Poziom 39  
    A co to za cudaczny układ zasilania???
    Gdzie konwerter poziomów logicznych?
    Zasilanie (VCC) AT41xxx powinno być 3,3V.

    Podciągnij RST "po Bożemu" do VCC przez rezystor 4,7-10k.
    Wywal tą diodę.
    Piny - które mają być "LOW" - bezpośrednio na masę.
    Pin CS - również podciągnij przez rezystor do VCC.
    Czemu WP nie jest podłączone do GND (lub podciągnięte do VCC), tylko zwarte z RST?
  • REKLAMA
  • #3 13531668
    paw1976
    Poziom 11  
    Cytat:
    A co to za cudaczny układ zasilania???
    Gdzie konwerter poziomów logicznych?
    Zasilanie (VCC) AT41xxx powinno być 3,3V.


    Nie znam układów at41xxx, a te w temacie mogą być zasilane od 2,7 do 3,6V.
    Jak wywalę diodę to zasilanie będzie 5V a to za dużo.
    Linia RST i WP podciągnięta jest do 3,1V po co jeszcze opornik?
  • #4 13531702
    mickpr
    Poziom 39  
    Chodzi mi o to, żebyś zamiast diody wstawił normalny stabilizator 5V->3,3V "jak człowiek".
    Od kiedy to dioda LED zastępuje stabilizator?
    Następnie do owego 3,3V podciągnij rzeczone piny (RST, WP i CS) rezystorami (trzema oddzielnymi 4k7-10k).
    Układ toleruje 5V na swoich pinach - więc nie powinno się teoretycznie nic wielkiego dziać, ale skoro już używasz logiki 3,3V - zapewnij jej normalne zasilanie.
    Takiego rozwiązania jestem pewny, natomiast powodem twoich problemów jest zapewnie ta dioda i niewłaściwie wykonująca się inicjacja (RESET) układu AT45xxx.
  • #5 13531988
    tmf
    VIP Zasłużony dla elektroda
    A przy okazji - po co stosować droższą i jak widać niewygodną ATMega128, jeśli można wykorzystać tańszą i pracującą z pełną szybkością ATXMEGA128? W dodatku mając DMA uzyskasz realnie transfer 2 MB/s z i do pamięci bez istotnego obciążenia procesora. W takiej sytuacji potrzebne jest tylko jedno zasilanie np. 3V3 i po kłopocie.
  • REKLAMA
  • #6 13536442
    paw1976
    Poziom 11  
    Niestety nie pomogło ani dołożenie stabilizatora ani podciągania opornikami. Pomogła za to wymiana pamięci na drugi egzemplarz. Działa stabilnie z zasilaniem przez diodę tak jak na schemacie lub też dwie prostownicze. Pamięć at45xxx to jedyny element na płytce który musi być zasilany niższym napięciem dlatego uważam stabilizator za zbędny.
    Atmega128 dlatego że ma komunikować się głównie z układami 5V np: rtl8019as i pamięcią sram równoległą 32kB na tej samej szynie. Nie wiem czy xmega ma wyjście na magistralę równoległą. I jeszcze ważna dla mnie rzecz do takiego zestawu jest już np: darmowy ethernut z odpowiednimi sterownikami.
  • REKLAMA
  • #7 13536800
    tmf
    VIP Zasłużony dla elektroda
    Rozumiem, że składasz coś do muzeum techniki?:) rtl8019as - aż łezka się w oku kręci :) Teraz masz do dyspozycji tańsze układy z interfejsem SPI, realizujące większość zadań związanych z TCP/IP - np. ENC28j60. Do tego masz nie tylko XMEGA z szyną równoległą, ale nawet XMEGA posiadające 32 kB wbudowanej pamięci SRAM, co czyni zbędnym dokładanie dodatkowej kości pamięci.
  • #8 13537005
    paw1976
    Poziom 11  
    Nie wiem czy wyjdzie taniej xmega z takim ramem, aczkolwiek poszukam, popatrzę. Realtek owszem spory ale stabilizatora nie gotuje jak enc. I czy znajdę na to coś ala ethernut.
  • #9 13537629
    tmf
    VIP Zasłużony dla elektroda
    Biorąc pod uwagę różnice zasilania 5V vs. 3,3V to ENC wcale taką grzałką nie jest - pobierają porównywalne moce Z kolei ENC ma wielokrotnie niższy prąd w trybie idle i sleep, a sądząc z doboru mikrokontrolera, jakiś mega ilości danych przez ethernet transmitował nie będziesz i kontroler eth będzie głównie bezczynny. Zapewne warto też wstawić regulator impulsowy - proste i bez grzania. Kodów obsługi ENC jest pełno.
    Co do procka - XMEGA384C3 ma 32 kB SRAM, nie zawsze jest dostępna. Z 16 kB jest wiele dostępnych procków. Jeśli nawet umieścić zewnętrzną pamięć SRAM to cena XMEGA A1U vs. ATMega128 to 20 zł vs. 40-70zł w zależności od wersji. Weź też pod uwagę, że procek z wbudowaną pamięcią + enc to także prostsza płytka i mniej połączeń. W efekcie tańsza. Jednak jest duża różnica pomiędzy zastosowaniem dwóch scalaków w tqfp100 + SRAM i latch vs. dwa scalaki w mniejszym rastrze.
REKLAMA