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