STM32L152RB problem s interruptom na I2C

Jan Waclawek konfera na efton.sk
Středa Září 11 23:11:39 CEST 2013


A nie je to ten klasicky problem, ze instrukcia odstranujuca pricinu prerusenia je prilis blizko koncu prerusovacej rutiny, takze sa vdaka oneskoreniam pri zapisoch a medzi periferiou a vstupom NVIC stihne vyvolat este jedno prerusenie pocas odchodu z toho "skutocneho"?

wek


On Wed, 11 Sep 2013 21:16:07 +0200
Stano <stano.hw at gmail.com> wrote:

> Zdravim konferenci
> Pisem si vlastnu kniznicu pre I2C vyuzivajucu interrupt na STM32L152RC. 
> Program funguje viacmenej podla ocakavania. Teda vsetko je presne ako 
> som ocakaval podla datasheetu az na posledne prerusenie pri vysielani. 
> Poslednym IRQ by malo byt EV8_2 (Figure 210. Transfer sequence diagram 
> for master transmitter). Ale po tomto nastava presne po odoslani stop 
> condition este jedno prerusenie. Ked program stepujem v debuggeri 
> nenastane ale ak dam RUN tak ano. Zvlastne je to tym ze nieje nastaveny 
> ziaden flag ktory moze I2C EVENT vyvolat (SB, ADDR, AD10, STOPF, BTF, 
> TXE, RXNE). Posledne 2 by sa dokonca vobec nemali uplatnovat kedze 
> ITBUFEN je tiez 0.
> DMA zatial nepouzivam.
> Ak povolim ITBUFEN dany interrupt NENASTANE.
> Prerusenia sledujem pomocou GPIO a LA, jadro a zbernice bezia na 32MHz. 
> Ked SYSCLK podtaktujem (rychlost I2C zostava 400kHz) dane prerusenie 
> zmizne. Stretol sa s tym niekto?
> V principe mi ten IRQ nevadi, len chcem vediet co sa zanim skryva a 
> hlavne ako mohol nastat ked nieje aktivny ziaden z flagov ktore ho mozu 
> vyvolat.
> 
> Vopred dakujem za odpovede
> Stano


Další informace o konferenci Hw-list