Re: ATmega 328PB - zvláštní chování I2C sběrnice (glitche)

Pavel Kutina hw na prelude.cz
Sobota Srpen 7 16:37:45 CEST 2021


Kouknout osciloskopem, zmenšit pull-upy na I2C, podívat se do kódu, jestli se na pinu nebo celém portu neděje něco nekalého, nějaký re-init portů nebo tak něco. Začal bych tím osciloskopem, uvidíte, jestli je to puls s ostrou hranou (a tedy pravděpodobně z procesoru - nebo některého slave), nebo je to kulaté a pak mohlo odněkud prolézt rušení. Nejede některý slave v resetovací smyčce? Než se vzpamatuje a natáhne kód, mohlo by to dělat něco podobného při initu portů.

Pavel Kutina

-----Original Message-----
From: "Ondřej Pavelka" <opavelka na gmail.com>
To: HW-news <hw-list na list.hw.cz>
Sent: so, 07 srp 2021 16:05
Subject: ATmega 328PB - zvláštní chování I2C sběrnice (glitche)

Zdravím,
rozcházím takové zařízení - jedná se o jeden řídící ATmega 328PB jako I2C
master, který je spojen s dalšími ATmega328PB jako I2C slave - je jich tam
pověšených 8. Problém je, že při předávání parametrů jednotce s adresou
0xBA dojde ke generování zvláštních pulsům - tím dojde ke špatnému
vyhodnocení předávaného parametru.
A někdy to tam není. Naprosto stejný setup zařízení. Jako pokus jsem
zablokoval všechny ostatní slave zařízení a nechal pouze ten jeden
sledovaný, nepomohlo to. Pak jsem zapl, vypl, zapl, někdy i přeprogramoval
stejným SW a chování zmizelo. Pak se zase z ničeho nic objevilo.
Nedaří se mi najít metoda, jak ten problém řízeně kontrolovat.
Pro ilustraci přikládám obrázky z Kingst analyzátoru. Ty průběhy mohou
vypadat jinak, je to přece jen logický analyzátor.
Rychlost I2C je nastavená na 100kHz. Jedná se o HW implementaci pomocí
knihovny v CodevisionAVR, nejedná se o žádný bit-bang, ale řeší se to přes
přerušení. Na jiných projektech jsem s knihovnou problém neměl, takže asi
problém bych tam nehledal. Ty glitche jsou při write - tedy směr od
Masteru...

https://ibb.co/album/PDyRbr

Napadá vás něco ?
Nebo aspoň co vyzkoušet, abych to dostal pod kontrolu ?

Díky,
Ondra


Další informace o konferenci Hw-list