Atmel AVR + program w zewnetrznej pamieci

Nov 05, 2005 9 Replies

Witam,



chcialbym podlaczyc dodatkowa pamiec (nieulotna) do atmela AT90S2313 (lub inny z dwoma wolnymi portami), tak zeby mozliwy byl odczyt zapisanych tam danych, zapis oraz w drugiej wersji, zeby program wykonywany przez mikroprocesor byl odczytywany z tej zewnetrznej pamieci.



jaka pamiec wybrac, jak ja podlaczyc (schemat), jak obsluzyc - chodzi o jak najprostsze i w miare tanie rozwiazanie.



pozdrawiam,



Janek



Najprosciej to jakas pamiec szeregowa zastosowac. Chyba, ze masz atmega64(?) lib atmega128, ktore maja interfejsy do pamieci, wtedy potrzebujesz tylko dodac latcha (schemat jest w pdfie). Niestety procesory AVR nie moga wykonywac programu z zewnetrznej pamieci, wiec ta mozliwosc odpada. Jesli bardzo ci na tym zalezy to na opencores masz AVRy w VHDLu, widzialem tam projekty z mozliwoscia wykonywania programu z zewnetrznej pamieci.

Uzytkownik "T.M.F." snipped-for-privacy@nospam.mp.pl> napisal w wiadomosci news: snipped-for-privacy@hermes.wizzard...

Ale mozna zastosowac bootloadera i instrukcje samoprogramowania danymi z pamieci szeregowej. Tyle, ze to juz dosc skomplikowane rozwiazanie i trzeba bardzo uwazac w czasie pisania programu.

Fishman

Za bardzo skomplikowane to to nie jest, problem w tym, ze FLASH mozna programowac skonczona ilosc razy, a wiec jesli czesto mialby sie reprogramowac z zewnetrznej pamieci to dlugo by nie pozyl. Poza tym nie wszystkie AVRy moga sie same programowac.

W ATMega8515 piszą, że 10000 razy to nie jest tak mało. Powiedzmy, że programujemy to 10 razy dziennie to wystarcza na trzy lata prawie. Po trzech latach w najgorszym przypadku można wymienić procka o ile w ogóle komuś jeszcze te urządzenie będzie potrzebne, ponieważ pewnie będzie nowsze :-)

Uzytkownik "T.M.F." snipped-for-privacy@nospam.mp.pl> napisal w wiadomosci news: snipped-for-privacy@hermes.wizzard...

Chodzilo mi o to, ze trzeba sobie tak organizowac program, zeby nie odwolywac sie do fragmentów kodu, których w danym momencie nie ma w pamieci. A to wymusza specyficzne konstruowanie kodu itp.

Tu wlasnie wchodzi kwestia tego, jak czesto byloby to potrzebne. Jezeli kilka razy dziennie, to jeszcze zadna tragedia. Jezeli kilka razy na sekunde, to juz jest problem.

Z serii atmega to chyba wszystkie? Poza tym, jezeli ktos chcialby do takiego AT90S2313 podlaczac zewnetrzna pamiec programu, to moze ja zawsze któryms klonem '51 zastapic, gdzie jest to prawie bezbolesne.

Fishman

No wlasnie, dyskusja czysto akademicka, bo zamiast bawic sie w reprogramowanie prosciej wziasc procka, ktory ma wieksza pamiec. Najwiekszy obecnie AVR ma 256kB.

dzieki za podpowiedzi :)

mam jeszcze jedno pytanie: z tego co sie orientuje, to istnieja rozne typy pamieci szeregowych - ktore uklady sa najbardziej popularne (tzn. czesto wykorzystywane w ukladach) i daja sie programowac w sposob podobny do programowania atmeli (czyli bez wykorzystania specjalnych programatorow - a poprzez prosty interfejs podpiety do PC) ?

(wybaczcie, jesli pytam o banalne rzeczy ;)

chodziloby o sytuacje, gdzie dane wprowadzane sa do kosci pamieci raz, poza ukladem, a potem sa tylko wykorzystywane i ew. modyfikowane przez program mikroprocesora.

Janek

Zainstaluj ponyproga i zobacz jakie pamieci supportuje.

Z pamieci szeregowych najtanszych w przeliczeniu zl/MB, a jednoczesnie jeszcze nie calych kart pamieci, polecam serie DataFlash od Atmela. 6 zl za 512KB to chyba dobra cena?

formatting link
Obsluguje je kabelkiem podlaczanym do portu LPT (podobnie jak programowanie AVRow) m.in. ISP Programmer:
formatting link

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required