STM32L152RB problem s interruptom na I2C

Jan Waclawek konfera na efton.sk
Pondělí Září 16 09:53:05 CEST 2013


>dival jste se na nejake starsi priklady od ST ? Me tam zarazi spousta while cekacich casti, prave proto si rikam, zda to ma vyznam z hlediska casu CPU vubec delat pres hw i2c u ST32F1.. .

Ta I2C periferia (ako aj niektore ine periferie) maj rozne vyvojove stadia,
a v F1 (kedze je to najstarsi rad) je to uplne najhorsie. Teraz som sa
pozeral na Vami spomenutu erratu pre F1, a je to skutocne tragedia -
nehovoriac o tom, ze tej errate ani moc nerozumiem... :-| Necudujem sa
Vam, ze si I2C robite "rucne", aj ked ja osobne kebyze uz idem do niecoho
takeho, tak sa to pokusim urobit v preruseni od casovaca.

>Navic nektere slave IO na sbernici se trosku rovnaji na CLK I2C tj. pokud by jste to udelal v nejake hlavni smycce misto delay-while, tak by to taky nemuselo fungovat nebo ne ?

Nerozumiem - ta hardwarova periferia dodrzuje vsetky casovania podla normy
(okrem repeated start podla erraty, ale to by nemalo byt v drvivej vacsine
pripadov kriticke), takze by malo byt jedno, ako sa obsluhuje, nie? Alebo
hovorite o nejakych zariadeniach, ktore nie su celkom podla normy? Mozete
prosim uviest konkretny priklad?

----

Inak I2C je prekvapujuco zlozity protokol, ktory je notoricky
implementovany v hardware s roznymi vadami. Spominam si ako onoho casu
este v 90tych rokoch v Philipsovskom mcu fore opluvali nejaku tusim
P8xC7xx, v ktorej udajne sa za urcitych okolnosti ten I2C hardware sekol a
bolo ho treba zobudzat "manualne" generovanymi SCL clockmi.... Ja osobne
som si uzil s I2C (pardon, TWI :-) ) v ATMegach, ktore sa mi za urcitych
okolnosti sekali v multimaster rezime... Takze moj nazor je, ze tie I2C hw
su zrejme bez vacsich problemov pouzitelne pre "klasicke" aplikacie typu
"master pre jednu alebo niekolko bezproblemovych slave ktore su trvalo
pripojene kratkymi prepojmi na jednej doske"; ale cokolvek co sa tomu
vymyka si vyzaduje mat implementovany aj nejaky plan B - preferujem
timeouty pomocou casovacov, ale v odovodnenych pripadoch to moze byt aj
spomenuta "rucna metoda", preco nie.

----

V L1/F2/F4 ma I2C opravene tie najhrubsie chyby. F0/F3 som neskumal, ale
akop vidite, tuna pan kolega Stano to vychvalil... :-) A tyka sa to podla
vsetkeho aj inych periferii, vid . Mozno, ze na "vseobecne pouzitie" je
dobre sa vykaslat na F1 a prejst na F3...?

wek




Další informace o konferenci Hw-list