Cube, M0, divne chovani

Jan Waclawek konfera na efton.sk
Pátek Listopad 27 13:14:44 CET 2015


Mozete prosim prezradit, ako toto dopadlo?

Dakujem,

wek


----- Original Message ---------------
>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