stm32 registro trapeni

Jan Waclawek konfera na efton.sk
Úterý Duben 11 21:08:02 CEST 2023


Takymto testom nie je rozoznatelne, ci sa cita lokalne echo, alebo hardware
vklada waitstaty pri citani z kernel domeny. To by bolo treba pozriet asm,
spocitat nejake cykly, blikat tou LEDkou a pozerat na osciloskope... ved
som povedal, ze to je vela roboty.

Inak je zopar bitov, ktore sa hardwarom nuluju, ked je PE=0, na tom by
mozno bolo zaujimave sledovat, co sa udeje po zapise do CR1 ktory vynuluje
to PE. Aj SDA/SCL by sa mali strojstavovat ked je PE=0, znova v kombinacii
s tym vystupom, osciloskopom atd...

Navyse zaujimave v kontexte povodneho problemu je, ci sa TIMING register
berie do uvahy, ked sa zapise prilis skoro po vynulovani PE (alebo prilis
neskoro pred jeho nastavenim?) Ale to zase vyzaduje napisat nieco co na tu
zbernicu naozaj nieco aj posle, a to zase je dost vela roboty.

wek


PS. 
>   LedGreen << true;
Ako ja chapem, ze ste fanusik toho plusplus, ale fakt sa tomu neda odolat?
:-)




----- Original Message ---------------

Subject: Re: stm32 registro trapeni
   From: Miroslav Mraz <mrazik na volny.cz>
   Date: Tue, 11 Apr 2023 20:47:50 +0200
     To: hw-list na list.hw.cz

>Chvíli jsem tomu věnoval a vypadá to, µe je to lokální echo z APB 
>domény. Hodiny mám 76MHz, pro I2C jsem pouµil pomalej±í HSI 16MHz, aby 
>bylo spí± něco vidět. Je to STM32L452.
>
>static GpioClass LedGreen  (GpioPortA, 10);
>static constexpr uint32_t mdat = 64;
>static volatile  uint32_t data [mdat];
>static void sync_test () {
>   RCC.CR.B.HSION = 1u;
>   while (RCC.CR.B.HSIRDY);
>   LedGreen << true;
>   RCC.CCIPR.B.I2C1SEL   = 2u;
>   RCC.APB1ENR1.B.I2C1EN = 1u;
>   I2C1.CR2.B.SADD = 0xAAu;
>   I2C1.CR2.B.SADD = 0x55u;
>   for (unsigned n=0; n<mdat; n++) {
>     data [n] = I2C1.CR2.R;
>   }
>   asm volatile ("bkpt 1");
>}
>GDB říká
>sync_test () at main.cpp:26
>26	  asm volatile ("bkpt 1");
>gdb: > p/x data
>$1 = {0x55 <repeats 64 times>}
>
>Takµe nic, ale moµná čekání není nutné, prostě to "nastartuje" o něco 
>později.
>
>Mrazík
>
>
>On 11. 04. 23 18:11, Jan Waclawek wrote:
>> Nic sa tam nepise o zapise do ineho registra s touto istou poznamkou, a nic
>> sa tam nepise o citani (t.j. ze ci citanie napr. PE bitu odraza realny
>> stav PE bitu v kernel_clock=I2CCLK domene, alebo "lokalne echo" z
>> APB=PCLK1 domeny -- mimochodom, ST ma aj ten zvyk, ze jeden signal
>> pomenuje viacerymi menami, o to je to citanie dokumentacie zabavnejsie).
>> 



Další informace o konferenci Hw-list