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

David Obdrzalek David.Obdrzalek na mff.cuni.cz
Sobota Srpen 7 20:27:42 CEST 2021


No ano, to odpovídá specifikaci. Logika je taková, že když je clock nahoře, data se 
měnit nesmí. Když jde clock dolů, měnit se můžou jak chtějí, klidně 150x, než zas 
clock půjde nahoru. Tak proč by se data neměnila zároveň se sestupno hranou hodin... 
(teda on tam je nějakej povinnej ochrannej čas držení dat po a před změnou clock, 
ale myslím, že pro 100kHz to je při padání clock 0 a před náběhem clock něco v řádu 
malých jednotek us)

Vzhledem k tomu, že se jedná o poslední bit prvního bytu po Start condition, tak to 
je určení směru komunikace (R/°W), což si umím představit, že jestli to je 
implementované programem, tak mohl někdo napsat, že se pošle 7 bitů adresy, linka se 
uvolní, a pak if write, stáhni dolů. Proč ne.

D.O.

On 7 Aug 2021 at 20:05, Pavel Kutina wrote:
> Je pravda, že ten binec jde se sestupnou hranou, otázkou je, jaká je tam 
> logka - všechna data, co tam vidím, chodí se sestupnou, takže to tam ten 
> binec dělá (což zase na druhou stranu popírá miji krásnou teorii o tom, že
> tam do toho něco kecá, to by bylo nejspíš asynchronní).
> 
> Pavel Kutina
> 
> 
> ----- Original Message ----- 
> From: "David Obdrzalek" <David.Obdrzalek na mff.cuni.cz>
> To: "HW-news" <hw-list na list.hw.cz>
> Sent: Saturday, August 7, 2021 7:56 PM
> Subject: Re: ATmega 328PB - zvláštní chování I2C sběrnice (glitche)
> 
> 
> > Mě se to zdá v pořádku.
> >
> > Data se smí měnit jen když je clock dole a to se mi tady zdá, že je 
> > (samozřejmě až
> > na Start/Stop Condition) a čtou se se vzestupnou hranou hodin, kdy se 
> > nesměji měnit,
> > a to tady taky vypadá OK.
> >
> > Zkus to ještě zazoomovat, jestli to tak je, ale vypadá to tak. Samozřejmě 
> > osciloskop
> > by byl lepší - už jsem kdysi zoufale hledal chybu v programu, protože 
> > logický
> > analyzátor ukazoval jasná data, ale na osciloskopu byl vidět bordel, který
> > samozřejmě jak čert chtěl to zařízení vyhodnocovalo jako 0 a 1 navíc.
> >
> > D.O.
> >
> > On 7 Aug 2021 at 16:05, Ondřej Pavelka wrote:
> >
> >> 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
> >>
> >
> >
> >
> > _______________________________________________
> > HW-list mailing list  -  sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> > 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list