Cube, M0, divne chovani

Jan Waclawek konfera na efton.sk
Středa Listopad 25 08:29:03 CET 2015


A verziu Cube mate aku?

'F0 v1.3.0 release notes:
HAL RCC

    Implement workaround to cover RCC limitation regarding Peripheral
enable delay.

wek


----- Original Message ---------------
>Nad pricinou budu badat, spis me napadlo, ze dojde k nejakemu prehozeni 
>operaci s registry - zapina se AF jako vystup PWM, ale divne mi je, proc 
>to funguje u UART a ostatnich GPIO (co se nastavuji i predtim) a zrovna 
>PWM ne.
>Kod je to ciste vygenerovany pres CubeMX, takze chyba IMHO nebude na 
>nasi strane (ale je take mozna chyba v HW...) Je to STM32F051
>
>Dne 24.11.2015 v 21:56 Jan Waclawek napsal(a):
>> A co tak pozriet do registrov GPIO, ci po volani tej funkcie je tam to co
>> tam ma byt?
>>
>> A M0 alebo M0+? GPIO je zhodou okolnosti nieco, v com sa dost vyrazne lisia.
>>
>> Inak klasicky problem - a nielen s GPIO, ale u ostatnych periferii to byva
>> menej vypukle pretoze su obvykle za pomalsou zbernicou resp.
>> resynchronizatorom co dostatocne oneskori zapis - je, ze sa nestihnu
>> zapnut hodiny po zapise do registra RCC a uz nastane zapis do registra
>> GPIO, ktory je ale (kvoli este nebeziacim hodinam) ignorovany. Riesenim je
>> precitat dany RCC register po zapise pred zapisom do GPIO; druhym je
>> zapisovat do registra GPIO v slucke, ktora sa opusti az ked sa precitana
>> hodnota zhoduje. Ja to vsak robim tak, ze vsetky RCC registre
>> inicializujem naraz na zaciatku programu, a potom este robim ine veci
>> ktore s RCC nesuvisia, a az potom zacnem robit vsetko ostatne. O ano, som
>> staromodny a "kniznicami" pohrdam.
>>
>> A neodpustim si: ak je to tato pricina, tak to je prave nasledok toho
>> rozsiahleho nahradzania porozumenia problemu mavanim rukou.
>>
>> wek
>>
>>
>>
>> ----- Original Message ---------------
>>> Dnes kolega narazil na zajimavy problem, pri prekladu bez optimalizace
>>> fungovalo PWM OK, jakmile se nastavila optimalizace na velikost (Os) tak
>>> fungovat prestalo.
>>> Pokusnou metodou jsem zjistil, ze je problem ve funkci HAL_GPIO_Init,
>>> pokud se pro ni vypne optimalizace, funguje, pokud zapne, nefunguje.
>>> Pritom treba UART, ADC, bezne IO fungujou v obou pripadech.
>>>
>>> Budu nad tim zitra badat, mozna je to chyba na nasi strane, ale nesetkal
>>> se s tim nekdo? Ponekud mne to znervoznuje.



Další informace o konferenci Hw-list