Jump to content
ELFORUM - Forumul electronistilor

estimare dimensiuni program C in flashul unui atmega8


srdjan

Recommended Posts

imi puteti spune ochiometric daca e suficienta memoria flash la atmega8-16pu 8k pentru a face urmatoarele (scris in c nu in asm):RTC (cristal extern 32.768) y2k compliant :rade: 2 intrari ADC (presiune si temperatura)1 interfatare card SD (SPI - fat32 sau fat16 daca se poate...daca nu ma multumesc si cu raw data)1 interfatare port serial (SPI - max232)1 Iesire LCD grafic 84/48 (nokia 3310)(nu am facut niciodata compilari pentru microcontrollere de aceea intreb)eventual daca imi sugerati link-uri cu niste clase cat mai compacte pentru cele mentionate raman profund indatoratevident voi incerca sa minimizez si codul (la lcd pot renunta si sa fac setarile conectat la pc)ce spuneti, am vreo sansa, e imposibil sau incape lejer?multumiri!

Link to comment
  • Replies 13
  • Created
  • Last Reply

Top Posters In This Topic

  • srdjan

    7

  • Eugenn

    5

  • XAN77

    1

  • MifTy

    1

Top Posters In This Topic

Codul pentru card SD o sa ia cel mai mult flash si RAM. Flash-ul necesar depinde de cat de complet e implementat FAT16/32, daca e necesara doar citirea de fisiere poate incapea, pentru scriere si implementare ca la standard cred ca e insuficient.Cu RAMul e problema - mega8 are doar 512B, atat are si un sector pe card, plus ca se mai consuma RAM si pentru rularea restului de program.Portul serial e pe UART, cardul o sa fie pe SPI.Deci nu merge cu atmega8. Minim ar trebui 1kB de RAM, am facut un server cu atmega16, dar merge foarte incet fiindca nu are destul RAM sa trimita pachete mai mari.

Link to comment

ok...si daca salvez datele pe SD card in raw data format. as putea sa le trimit prin microcontroller spre pc (probabil ca va dura mult) sau as putea pune pe pauza salvarea datelor (sa le tina in sdram pana scot, copiez si pun la loc cardu - comutator)crezi ca varianta asta ar merge?raw-data de pe card pe windows oare cu ce as putea sa le citesc?merci de feedback

Link to comment

Aici nu stiu daca e corect ce spun ca nu am mai lucrat de ceva vreme cu carduri. Din ce imi aduc aminte cele SD pot sa faca doar transferuri pe sector, la MMC se putea lucra la nivel de byte. Asa ca pentru a scrie si la o singura adresa trebuie trimisi 512 octeti.Nu stiu cum s-ar putea citi raw pe windows, pentru ca se opreste la orice eroare si in MBR. Probabil vreun soft de recuperare de date?Oricum tot cu filesystem e in final mai bine, ca si raw trebuie sa existe un mecanism de a identifica datele si se complica treaba - filesystem e mai complex dar se pot gasi implementari gata facute.Microsoft are drepturi pt FAT si cere licenta pt utilizare...

Link to comment

sa vedem unde gasesc... am vazut ca si atmega8L are 1kb srdam :(( mi-ar trebui sa gasesc in 1-2 zile ceea ce-s slabe sanse aici la noi... daca nu reusesc o sa merg pe varianta cu raw-data...si citirea o voi face tot prin mcumerci de indicatii

Link to comment

yep...am luat-o de buna fara sa mai verific...intr-adevar atmega88, 8, 168, 328 au 1kb sram... doar atmega48 e cu 512deci in concluzie posibil sa iasa ce vreau?!? :rgtrwgtre

Link to comment

multumesc... daca tot suntem aici...imi explicati si mie ce rol are eepromul in cazul unu mcu cum sunt atmega?...sa stochezi niste constante doar indiferent de program sau acolo pui bootloaderul?

Link to comment

EEPROM-UL e pentru memorat niste date ce vor fi folosite si la urmatoarea folosire a sistemului, de exemplu constante de calibrare sau niste parametrii la care a ajuns sistemul si de care va avea nevoie la urmatoarea alimentare, scrierea in EEPROM se poate face de catre programul rulat pe uC. Accesul nu este prea rapid, mai ales scrierea, trebuie testat un flag daca scrierea e completa inaintea unei noi utilizari.Bootloaderul se pune tot in flash, ca uC poate executa cod doar din flash. Apoi exista optiunea ca bootloaderul sa traga programul prin serial, sa il scrie in flash si sa il lanseze in executie.

Link to comment
  • 2 months later...

probabil debitez tâmpenii, dar... nu se poate folosi un eeprom/flashrom separat, adic? un alt chip pe lâng? atmega, din care s? se citeasc? suspomenitele date, ?i sramul din atmega s? fie un soi de ram dinamic???

Link to comment

probabil debitez tâmpenii, dar... nu se poate folosi un eeprom/flashrom separat, adic? un alt chip pe lâng? atmega, din care s? se citeasc? suspomenitele date, ?i sramul din atmega s? fie un soi de ram dinamic???

se poate... ideea e ca atata aveam in dotare cand am cerut ajutorul (doar atmega8)... si era la fel de simplu sa iau alt microcontroller precum sa iau memorie externa pentru a mari memorica incorporata in atmega8.intamplator pentru stadiul actual al aplicatiei (si probabil pana la cea finala) sram-ul de 1k imi va fi suficient. problema era ca initial crezusem ca atmega8-16pu are doar 512bytes sram...ceea ce evident nu era suficient pt ca aveam nevoie de minim 512b + un pic :)in concluzie problema s-a rezolvat prin faptul ca nu exista :rade: doar ca incercam sa ma scutesc de munca inutila apeland la sfatul "batranilor". a meritat pe deplin
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines