STM32L151RB problem s EEPROM a IRQ

Jan Waclawek konfera na efton.sk
Pondělí Únor 17 13:58:37 CET 2014


>jeste se kouknu do datasheetu

Tym ste snad mali zacat, nie?

S 'L' nerobim, ale zo zvedavosti som sa pozrel.

[frflanie]

Je to priserny bordel, ale uz ma to az tak nesokuje, len zaraza... To
programovanie nie je popisane v RM0038. Je tam sice odkaz, ze je to v
osobitnom dokumente, ale ten dokument je uvedeny ako PM0076, a taky
neexistuje, prip. ho nedokazem najst. V skutocnosti je to PM0062. 

Dalej, EEPROM je (aj v RM0038, aj v PM0062, do datasheetu som sa nedival)
niekde nazvana DATA memory, niekde EEPROM. To je tiez dost idiotska metoda
ako priznat diletantstvo.

Dalej, funkcionalita zvysku svabu pocas zapisu je zavisla od bank FLASH
(EEPROM je sucast FLASH). Parslovnu klucovu informaciu, ze vo vsetkych
svaboch je len jedina banka, okrem high-density (co je tiez informacia,
ktoru musim vzdy a znova dolovat z jednotlivych datasheetov alebo z
roznych inych obskurnych zdrojov, hoci by mohla byt jednoducha tabulka
hned na zaciatku kazdeho dotknuteho dokumentu) kde su dve, tiez treba
viacmenej uhadnut; pricom na zmatenie nepriatela je este vynimka pre
medium+ v niektorych konkretnych puzdrach, co je len tak nenapadne
kurzivou spomenute... nepriatel je este viac zmateny ked v PM0062 v
tabulke pre medium+ narazi na oznacenie Data EEPROM Bank, a System memory
Bank, z coho moze nespravne usudit, ze tieto su v inych bankach nez
programova FLASH.

Ako je mozne, ze ked sa pozriem do KTOREHOKOLVEK manualu od STM32, tak do
10 sekund v nom najdem aspon jednu takuto trivialnu, slaboduchu a pritom
castokrat pre pouzitelnost fatalnu chybu? Chapem, ze tie dokumenty dali
pisat tretotriednym inzinierom najatym v krajinach, a nedali im viac nez
prislovecny dolar na hodinu, ale to naozaj je take tazke dat tie manualy
niekomu aj precitat? Ako moze niekto robit support bez toho, aby si tie
dokumenty prestudoval; a ak ich prestudoval, ako to, ze tieto chyby
nenasiel a netrval na ich odstraneni?

[/frflanie]


Teraz nejake fakty.

>tak jsem to zmeril a vychazi mi to stejne
>zapis (jeden radek nize uvedene sekvence ) je 6.5ms (zapisuje se long) a
>po tu dobu nejde interrupt
>interrupt se vykona po konci kazdeho zapisu .Normalne bezi interrupt
>kazdych 500us

Tie prerusenia Vam nejdu preto, lebo ak vykonavate ten zapis do EEPROM z
tej istej banky FLASH (co u 15xxB nevyhnutne je, lebo (najprv datasheet a
aj tam viacmenej hadat) ma 128kB FLASH co (spat do PM0062) je medium
density, t.j. to nie je medium+ v jednom z puzdier na vynimku ani high
density), tak hned nasledujuci instrukcny fetch do takto zamestnanej FLASH
sposobi stall procesora na cas tprog.

Presunte si tu programovaciu rutinu a prerusenia do RAM.

Ak aj nic ine neurobite, len si EEPROM predmazete, tak tu dobu mozete
skratit na polovicu.

wek




Další informace o konferenci Hw-list