STM32F3 ruseni SPI signalu

Jan Waclawek konfera na efton.sk
Sobota Prosinec 15 21:39:18 CET 2018


> Takze myslite, ze ta pidikapacita opravdu vytvori falesne pulzy na CLK? 

Ja by som to nevidel ako pidikapacitu. Na gigahertzoch su to vedenia a
anteny, a uz nie uplne pidi...

Ak v tych drotoch nemate tu zem (prekladanu, alebo trebars twisted pair ako
to pisal read-only kolega), no tak to mate vlastne slucky, tesne vedla
seba, takpovediac trafo. Ale ako vravim, takato "lumped" predstava na tych
frekvenciach nie je uz adekvatna.

> Me to prekvapuje jen v tom smyslu, ze jsem zadratoval podstatne vetsi 
> prasarny s jinymi periferiemi a problem s funkci nebyl. 

No ano. Niekedy ti diablici proste rozky nevystrcia, ale spolah na to nie
je.

Bud to nebola az taka "prasarna" t.j. napr boli tie zeme tahane paralelne,
alebo povedzme ste nepouzili ten najvyssi slew rate na tom GPIO, alebo
prijimac bol tolerantnejsi a mal trebars vstupny filter na SCK...

> Cekal bych 
> nejakou synchronni logiku na tom SCK kdyz je dovolena maximalni 
> frekvence polovina frekvence APB.  Proto jsem ji uvadel, APB1 je pak na 
> 36MHz.

Ano, to som kedysi cakal aj ja, presne kvoli tej dovolenej maximalnej
frekvencii. Ale zda sa, ze samotny shiftregister (presnejsie, asi
pocitadlo ktore ovlada multiplexor, ktorym sa emuluje ten shiftregister,
alebo nejaka podobna trocha zlozitejsia logika, pretoze to spravanie v
roznych medznych situaciach si normalnym shiftregistrom neviem vysvetlit)
je asynchronna. V I2S mode tej SPI/I2S jednotky som si vyskusal, ze v
slave mode je naozaj asynchronny; v SPI mode som takyto pokus este
nerobil. 

Ta maximalna frekvencia potom bude skor kvoli tomu, aby sa pri poslednom
bite stihli nashiftovane udaje presunut do zachytneho registra, ktory uz
bude APB-synchronny. 

S tymto vsetkym zrejme suvisi aj erratum Last data bit or CRC calculation
may be corrupted for the data received in SPI/I2S master mode depending on
the feedback communication clock timing with respect to the APB clock.

> Ten slave mod je stejne takovy divny u STM, clovek by rekl, ze kdyz je 
> SPI disabled, tak by nemel na nic reagovat 

Myslite tym, ze bit SPI_CR1.SPE = 0?
> ale nejak se mi zda, ze ho to 
> pred inicializaci zblbne, pokud do nej jdou nejaka data.

Hm, zaujimave, mne sa toto este nestalo, ale dobre vediet, budem si davat
pozor, dakujem.

Ten SPI modul v STM32 rozhodne nepatri medzi podarene kusky, napr.
https://community.st.com/s/feed/0D50X00009XkW6HSAV

> A take mne prekvapilo, ze ten soft reset nenastavi CR1,2 na 
> vychozi hodnoty...

Myslite tym nastavenie a nasledne vynulovanie prislusneho APBxRSTR.SPIxRST
bitu? Mne to spolahlivo nastavilo vsetky registre na pociatocne hodnoty -
a aj ked nemam 'F3 poruke, nechce sa mi verit, ze v nom by to bolo inak...
Prosim skuste to este raz.

wek



Další informace o konferenci Hw-list