Stránka 1 z 1

ATmega a externí SRAM

Napsal: 26 led 2015, 14:14
od silas15
V mém projektu, který mám malý web server mi dochází sram. Je to tím, že na stránce je několik zobrazených zadávacích polí jinak nic, ale jakmile je jich tam víc jak 5, tak se ATmega zasekne. Nehledě na debug kód, který posílá výpisy sériově a taky dost sežere. Chvilku jsem pátral, našel jsem externí paměť od firmy Microchip 23K640. Má 64K a komunikuje přes SPI (pouze je na 3,3V tak že musím použít převodník z 5V. Chci aby ATmega běžela spolehlivě na 16 MHz). Máte s přidáváním paměti nebo flash paměti někdo zkušenost?

O flash paměti jsem taky uvažoval. Abych v ní mohl mít nějaké zajímavější www stránky uloženy.

Jinak používám k programování arduino.

Napsal: 26 led 2015, 14:25
od ross4435897
myslim ze mega328 nepodporuje zadnou formu externi pameti ... ale jinak na netu je toho plno
muj nazor ... pouzivat arduino na web server aplikace je asi neco jako ladit fiata500 na zavod F1. Kombinace arduino+raspberry se mi jevi jako mnohem realistictejsi ...

Napsal: 26 led 2015, 14:53
od silas15
no jo, v datesheetu nic není. Bude to tím, že když jsem to hledal, díval jsem se přitom na atmegu 128. Ta to tam má napsáno. Nicméně i tak se tam dá dodat paměť, protože na fórech o arduinu se ta tématika taky probírá.

Jinak si myslím, že by to tím mělo jít. Když si vezmu jen obyč router, ten v sobě taky nemá kdo ví co. Určitě ne ARMový procesor s horou paměti. A to router v sobě má těch stránek podstatně víc. Já chci jednu s pár políčkama a pár tlačítky. Pak číst a zobrazit hodnoty z ad převodníku a pár relátek nic víc.

Napsal: 26 led 2015, 15:00
od ross4435897
vychazel jsem z toho, ze WEBapp nestavis jenom pro to, aby ses dival doma na ciselne hodnoty ... predpokladam treba sber a grafickou prezentaci dat, a hlavne nejaky standartni zabezpeceny (SSL) vzdaleny pristup, mozna nejaky IPfilter ... a to s arduinem fakt nedas ...

Napsal: 26 led 2015, 15:31
od rnbw
Domaci router ma typicky CPU MIPS, radovo stovky MHz, 8-32 MB RAM a 4-8 MB flash. OS vacsinou Linux.

Napsal: 26 led 2015, 15:31
od ZdenekHQ
Externí paměť s I2C nebo SPI se dá sehnat i s kapacitou 1MB, dá se použít i FRAM (i když ty mívají menší kapacitu) - ale problém je v "pomalosti" zápisu, pokud se třeba přerušení pokusí zapisovat taky... :?

Pomalostí nemyslím samotný HW zápis, ale více instrukcí nutných pro jeho obsluhu.

Napsal: 26 led 2015, 15:44
od silas15
Kdybych vzal raspberry měl bych strach, protože na tom poběží linux a tam už všechny věci nemusím obsáhnout, nemám prostě kontrolu. Musel bych teda mít ATmegu a starat se o kritické záležitosti a k tomu rasp. kvůli webu.

Možná se zeptám blbě, ale zase tak moc za 8 bit nevidím. A ani tam to není nic moc. Mě se nějak příčí myšlenka použít na jeden problém dvě různé logiky ARM a 8 bit. Líbí se mi představa mít na to jeden procesor. Co taková ATxmega. Ta už vypadá schopněji. Akorát tu přes arduino ide nenaprogramuji. Tak že asi bude problém s ethernetem. (mám enc...)

Napsal: 26 led 2015, 15:49
od ross4435897
RPI by byl proste jenom ten WEBapp ... na 8bitu zadny "normalni" webserver nepostavis, ale treba to neni tvym cilem ... nevim jakou mas predstavu

Napsal: 26 led 2015, 19:19
od silas15
chci jen abych tam mohl zadat cca 15 hodnot a tím nastavit hlídání baterie a případně nějaký to relátko. samozřejmě měřím napětí pomocí adc. to je vše. nic víc od webu nechci. bohužel se mi kód nedaří udělat tak paměťově náročný, aby to atmega zvládla. proto jsem chtěl paměť přídavnou. nebo taky koupit tu atmgeu 128, ta má 4KB

Napsal: 26 led 2015, 21:59
od ross4435897
zkus usetrit RAMku pouzitim PROGMEM ... daji se tak ulozit promenne do FLASHky, no mozna te to spasi ....

Napsal: 26 led 2015, 22:44
od mtajovsky
Zásadní řešení pro externí SRAM podle dotazu je použít procesor podporující externí operační datovou paměť. Z řady ATmega jsou to ATmega64 a vyšší. Poznají se podle existence pinu ALE (adress latch enable). Odkládání dat na paměti I2C, EEPROM a tak dále se hodí pro data méně frekventovaná a je to vždy kompromis.

Ovšem na tak malý web server, jako píšete by snad 2K interní SRAM mělo stačit. Taky je otázka, kolik vezmou knihovny Arduina. Samozřejmě, že všechna konstantní data jsou v PROGMEM.

Napsal: 27 led 2015, 09:54
od silas15
díky, zkusím ten progmem použít. našel jsem teď kus kódu, který vypíše volnou ram. zkusím se podle toho řídit.

Kód: Vybrat vše

http://playground.arduino.cc/Code/AvailableMemory


zkusím ještě co nejvíc dostat do eepromky. Akorát si říkám, že poměrně komplikovaně dostávám data ze zadávacího pole do programu. sežere to poměrně velkou strukturu podmínek. to si myslím, že bude ten největší problém

Napsal: 28 led 2015, 14:24
od ross4435897
mozna by ti na to vsechno stacil treba ESP-01 modul ...