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

Procesor z zewnętrznym flash - alternatywy dla ATmega z większą pamięcią?

piter2004 17 Gru 2005 16:32 1838 10
REKLAMA
  • #1 2092163
    piter2004
    Poziom 17  
    Posty: 336
    Pomógł: 11
    Ocena: 15
    czy jes mozliwe zeby procesor atmega ... wykonywala zewnetrzny
    program w pamieci typu flash a jesli nie to jakiej firmy procesor ma taką mozliwosc
    dla mnie 128kb to mało pamięci chciał bym podłączyć conajmniej 640kb
    jak nie 1mb
    ciekawi mnie dlaczego atmegi nie mają mozliwosc wyboru
    brak ogranicza mozliwości
    a moze ktoś napisał taki program który choćby obsłuży w bascom :cry:
  • REKLAMA
  • #2 2092194
    Dexter77
    Poziom 28  
    Posty: 889
    Pomógł: 134
    Ocena: 19
    Atmegi nie maja mozliwosci wykonywania programu z zewnetrznej pamieci. Chodzi o predkosc wykonywania programu. Atmega wykonuje instrukcje w jednym cyklu (wiekszosc) a ladowanie bajtu z zewnetrznej pamieci to conajmniej 3 cykle. Procesor by zwolnil kilkukrotnie a pozatym podlaczona pamiec musiala by byc szybka.
    Druga kwestia to fakt ze AVR maja architekture harwardzka czyli rozdzielona jest szyna danych i pamieci. Zeby dorzucic na zewnatrz druga szyne adresowa i danych to kolejne 18 nozek zuzytych. Atmegi maja byc prostymi, szybkimi,bogatymi w peryferia i tanimi uC a nie potworami. A tak z ciekawosci jakie Ty programy piszesz ze sie nie miescza w 128 kB ?? Moze by tak mala optymalizacja kodu ??
    Pozdro
    Dexter
  • REKLAMA
  • #3 2093655
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 616
    128 k tokawał Flasha.
    Wybacz ale jeszcze nie widziałem mikrokontrolera z 1Mb pamięci programu :!::!:
    Co to będzie za stwór jesli mozna wiedzieć :?:
  • #4 2095038
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    128kb kodu to mało ???????
    mi się nigdy nie udąło napisać więcej jak 16k. największy program jak kompilowałem to by 26k ale to nie jak to pisałem.

    jak masz dużo danych to możesz dac ja do pamięci zewnętrznaj (np obrazki do lcd) ale rozkazów nie zapiszesz na zewnątrz.

    mnie też zastanawia co piszesz za program że sie w 128k nie mieści
  • REKLAMA
  • #6 2095405
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    poszukaj u Maxim'a są tam perełki mogące szalec nawet z 16MB ;) + zewnętrzny SRAM i mamy prawie PC ;) i zapomnij o Bascomie ;) nie na taaakie projekty, a może zdradzisz do jakiej rakiety balistycznej piszesz sterowanie ;)
  • REKLAMA
  • #7 2098878
    nadmiszcz
    Poziom 16  
    Posty: 126
    Pomógł: 15
    Ocena: 4
    któreś ADuC mają możliwość pracy z 1MB zewnetrznego romu, trza poszukać
    zresztą prawie wszystkie '51 mogą pracować z zewnętrznym Romem (wtedy z architektury harwardzkiej przechodzą na Naumana (czy jakoś tak :))
    chyba też dotyczy to AVR 8515....
    Problem tylko z napisaniem takiego programu, który po zmianie bloku romu nie zawiesi się (po tej operacji licznik rozkazów nie wyzeruje się).
    Takie pytanie było już kiedyś na elektrodzie i odpowiedzi też było mnóstwo.....


    poza tym to nie dziwię się autorowi, te 128KB to w rzeczywistości 64K słowa (65536 pojedynczych instrukcji) , a jeśli w romie oprócz programu jest np taki *.wav z jakąs melodyjką, komunikatem czy co :) to 128k to rzeczywiście nie zawiele.... (a kompresja na uC to pomyłka ;)..
  • #8 2099248
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    no tak 64k rozkazów. ale kto każe zapisywać dane do pamięci programu. przecież można dołaczyć zewnętrzną pamięć ale tylko na dane. program z wewnętrznej pamięci flash w avr wykonuje sie co 1 cykl zegarowy a ja by była mozliwość a zewnętrznej to by trwała przynajmniej 2 jak nie więcej. cały czas mi się wydaje że zapisanie 128kb pamięci programem (nie danymi) nawet w bascomie jest prawie niewykonalne.

    pozdrawiam
  • #9 2099346
    nadmiszcz
    Poziom 16  
    Posty: 126
    Pomógł: 15
    Ocena: 4
    no fakt, można dołączyć flasha jako pamięć ram z raz zapisanymi danymi - a nawet je modyfikować.
    zapisać 128kb to można z palcem w ... , dzisiaj 256 MB to mało, również na program wyjątkowo niechlujnie napisany, poprzeplatany z danymi itp.
    no chyba że chodzi o: kilka / kilkanaście podobnych, długich programów umieszczonych kolejno w pamięci, uruchamianych w zależności od potrzeb, lub program który sam by się modyfikował :) (mega wirus ??? :))).
    Może kolega Piter 2004 zdradzi choć kawałek tajemnicy??????????
  • #10 2099650
    megao
    Poziom 25  
    Posty: 690
    Pomógł: 66
    Ocena: 91
    Duże możliwości adresowania zewnętrznych pamięci dają ARMy. Przestrzeń adresowa, to teoretycznie 4GB.
    Spora część układów ARM7 oraz serie wyższe pracują tylko z zewnętrznymi pamięciami.
    Z tego co wiem, to coraz więcej modeli ARMów można kupić detalicznie w polskich sklepach, więc może któryś z tych układów.
  • #11 2154194
    Nemo
    Poziom 31  
    Posty: 2078
    Pomógł: 9
    Ocena: 72
    Też bym polecił jakiegoś ARM. Właśnie zaczynam poszukiwania informacji o tej rodzinie. Generalnie jest tak, że procek pracuje na szybkim RAM'ie. To przestrzeń, którą można potraktować jak w czasach 6502, wspólna na dane, program, a być może również i I/O. Tego jeszcze nie wiem.

    Bardzo spodobały mi się produkty Atmela na ARM9 - mają wbudowany kontroler LAN i USB. Do tego olbrzymia przestrzeń adresowa i obudowa LQFP208, poza tym cena około 100PLN - to mnie trochę przeraża. :D Na żelazku płytki pod niego nie zrobię. Trzeba uzbierać trochę grosza i zlecić płytkę profesjonalnie. I obawiam się, że 2 warstwy nie wystarczą... :(

    Pozdrawiam.

Podsumowanie tematu

✨ Procesory ATmega nie obsługują wykonywania programu bezpośrednio z zewnętrznej pamięci flash ze względu na architekturę harwardzką oraz wymagania dotyczące szybkości dostępu do instrukcji (wewnętrzna pamięć flash umożliwia wykonanie instrukcji w jednym cyklu, podczas gdy zewnętrzna pamięć wymagałaby kilku cykli, co znacznie obniżyłoby wydajność). Rozszerzenie pamięci programu powyżej 128 kB w ATmegach jest ograniczone fizycznie i konstrukcyjnie, a dołączanie zewnętrznej pamięci jest możliwe jedynie dla danych, nie dla kodu programu. Alternatywą są mikrokontrolery z architekturą umożliwiającą adresowanie większej przestrzeni pamięci, takie jak mikrokontrolery Rabbit, które mogą adresować do 1 MB pamięci programu zewnętrznej, czy niektóre modele ADuC oraz popularne układy oparte na architekturze ARM, które oferują przestrzeń adresową do kilku gigabajtów i obsługę zewnętrznych pamięci flash. Produkty Atmela z rdzeniem ARM9 posiadają wbudowane kontrolery LAN i USB oraz dużą przestrzeń adresową, jednak ich implementacja wymaga bardziej zaawansowanego projektowania płytek PCB. Bascom nie jest zalecany do projektów wymagających bardzo dużej pamięci programu. W dyskusji podkreślono, że 128 kB pamięci flash w ATmedze jest wystarczające dla większości aplikacji, a w przypadku potrzeby większej pamięci warto rozważyć optymalizację kodu lub wybór innej platformy sprzętowej.
Wygenerowane przez model językowy.
REKLAMA