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

Jaką pamięć 4Mbit wykorzystać do takiego zadania???

projektavr 06 Gru 2006 18:50 1707 11
REKLAMA
  • #1 3302120
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    Witam

    Potrzebuję kopiować dane z pamięci trwałej (np. flash) w której zapisane są dane do pamięci SRAM typu KM684000ALG-7 512Kx8 (4MBit). Pamięć z której będą kopiowane dane to np. taką jaką znalazłem o tej pojemności M29F040B90K1 pamięć Flash EPROM 5V 512Kx8 90ns PLCC32. Do przerzucania danych chę użyć procesora AVR np Atmega 16 lub 32. Nie używałem do tej pory pamięci równoległych i niewiem czy np. mogę podłączyć obydwie pamięci na te same porty (adresy, dane). Czy są jakieś procesory AVR które mają wbudowaną obsługę takich pamięci równoległych? A może jest jakieś inne lepsze rozwiązanie?
  • REKLAMA
  • #2 3302395
    Tdv
    Poziom 34  
    Posty: 2237
    Pomógł: 150
    Ocena: 53
    projektavr napisał:
    Witam

    Potrzebuję kopiować dane z pamięci trwałej (np. flash) w której zapisane są dane do pamięci SRAM typu KM684000ALG-7 512Kx8 (4MBit). Pamięć z której będą kopiowane dane to np. taką jaką znalazłem o tej pojemności M29F040B90K1 pamięć Flash EPROM 5V 512Kx8 90ns PLCC32. Do przerzucania danych chę użyć procesora AVR np Atmega 16 lub 32. Nie używałem do tej pory pamięci równoległych i niewiem czy np. mogę podłączyć obydwie pamięci na te same porty (adresy, dane). Czy są jakieś procesory AVR które mają wbudowaną obsługę takich pamięci równoległych? A może jest jakieś inne lepsze rozwiązanie?


    Jak na kogoś, kto się ogłasza, że projektuje układy na zlecienie dziwne pytania zadajesz na forum.
    Wystarczy zajrzeć do manuala dowolnego AVRa z obsługą zewnętrznej pamięci i zobaczyć sobie jakie one obsługują pojemności. Można oczywiście zrobić stronicowanie na dodatkowych pinach procesora. ATmega32 na 99% nie ma możliwości podłaczenia zewnętrznej pamięci ATmega64 ma możliwość podlaczenia do 64kB.
  • #3 3303462
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    Ucze sie projektować a to jest kolejny etap. Do tej pory nie potrzebowałem korzystać z tak dużych pamięci. Domyślam się że da rade podłączyć takie duże pamięci tylko trzeba bedzie napisać ich obsługę. Spróbuję podłączyc je równolegle i tylko poprzez CS je rozróżniać.
  • #4 3304250
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Nie potrzebujesz wcale procesora obsługującego te pamięci ... :) oczywiście jeśli tylko chcesz kopiować dane.
    Łączysz je równolegle (szyna adresowa i szyna danych), ustawiasz odpowiedni adres, potem na pamięć FLASH sygnał OE, a na pamięć RAM sygnał WR. Zmieniasz adres i powtarzasz cykl.
    Procesora w końcu nie obchodzi co przesyłasz, on się będzie zajmował jedynie generacją impulsów sterujących.
    Ciekawi mnie jednak coś innego .. jak zamierzasz podłączyć resztę układu - tą która będzie później korzystała z dnych zawartych w RAM.
  • REKLAMA
  • #5 3304457
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    Nie dokońca będzie to tylko kopiowanie zawartości gdyż niektóre komórki będą zmieniane. Pamięć SRAM do której będą zapisywane dane będzie dołanczana z zew. z podtrzymaniem bateryjnym więc nie będzie żadnych dodatkowych połączeń z innymi układami.
  • #6 3305046
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Opisz cos więcej .. może wyrysujemy jakis schemacik, ale bez dużej ilości portów, lub zatrzasków sie nie obejdzie.
  • #7 3307767
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    No to jest propozycja podłączenia na schemacie. Przypuszczam ze wejscia WE (write enable) i OE (output enable) mogą być na tych samych wyprowadzeniach bo i tak najwazniejszy jest (CE/CS) chip enable/select
    Załączniki:
    • Jaką pamięć 4Mbit wykorzystać do takiego zadania??? sch rownolegly.JPG (63.02 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #8 3310390
    matgaw
    Poziom 15  
    Posty: 198
    Pomógł: 4
    Ocena: 3
    Ze schematu rozumiem, że chcesz te pamięci obsługiwać programowo? Cóż, za szybkie to to nie będzie ale zawsze coś.
  • #9 3310449
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    przy kwarcu 16MHz nie powinno być tak wolno
  • #10 3311842
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Wg mnie cały cykl powinien wyglądać następująco:
    1. Wystawiasz adres
    2. Uaktywniasz sygnały CS i CE - aktywujesz pamięci
    3. Uaktywniasz OE pamięci FLASH - aktywujesz daną na wyjściu
    4. Uaktywniasz na chwilę WE - zapisujesz daną w RAM
    5. Deaktywujesz WE i inkrementujesz adres
    6. ... i do pkt. 4
    Powtarzasz cykl 512k razy ... ;)
    7. Deaktywujesz OE, CS, CE
  • #11 3311893
    projektavr
    Poziom 16  
    Posty: 234
    Ocena: 2
    Czyli nie trzeba odbierać tych danych do procesora tylko od razu z pamięci do pamięci? Nie wszystko będzie kopiowane, pewne obszary w pamięci docelowej muszą zostać nie ruszone.
  • REKLAMA
  • Pomocny post
    #12 3312506
    mzielin
    Poziom 22  
    Posty: 483
    Pomógł: 31
    Ocena: 16
    Skopiujesz tylko te obszary, na które wystawisz adresy. Jeżeli pewien obszar ma być nie ruszany, to nie wystawiasz po prostu adresu. Ale jeżeli zamierzasz modyfikować pobierane dane, wtedy szyna DATA niestety będzie potrzebna, jeżeli nie oszczędzisz 8 portów procka.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy sposobu kopiowania danych z pamięci Flash o pojemności 4Mbit (np. M29F040B90K1 512Kx8) do pamięci SRAM KM684000ALG-7 512Kx8 (4Mbit) z wykorzystaniem mikrokontrolera AVR, takiego jak Atmega16 lub Atmega32. Poruszono kwestie podłączenia pamięci równoległych do tych samych portów procesora, z rozróżnieniem za pomocą sygnałów CS/CE. Wskazano, że standardowe AVR, np. Atmega32, nie mają wbudowanej obsługi pamięci zewnętrznych o tak dużej pojemności, a Atmega64 obsługuje do 64kB. Proponowano realizację kopiowania poprzez programową obsługę sygnałów WE, OE, CS i CE, sterując bezpośrednio magistralami adresową i danych, bez konieczności odbierania danych do procesora. Zwrócono uwagę, że kopiowanie może być wolniejsze, ale przy taktowaniu 16MHz jest to akceptowalne. Omówiono również możliwość modyfikacji wybranych komórek pamięci SRAM podczas kopiowania oraz konieczność użycia magistrali danych do edycji danych. Zaproponowano schemat działania cyklu kopiowania: ustawienie adresu, aktywacja CS/CE, odczyt z Flash (OE), zapis do SRAM (WE), inkrementacja adresu i powtarzanie. Podkreślono, że obszary pamięci, które nie mają być zmieniane, po prostu nie są adresowane podczas kopiowania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA