STM32F303 SPI3 DMA2 negeneruje TC flag

Stano stano.hw na gmail.com
Středa Srpen 14 18:35:23 CEST 2013


DMA_CNDTRx sa ani nepohol a ked som to zbehol teraz vsimol som si ERROR flag, ze mate pravdu JE nastaveny.
Transakcia prebehne len pri 16bit citani z SPIx->DR. Pri 8bit pristupe neprebehne korektne prevzatie dat z SPI, aspon tolko moj dohad. Je to zvlastne ale nic ine nakoniec nebolo treba zmenit len tu sirku RX DMA a uz to funguje. TX DMA je 8bit kedze potrebujem odosielat 8bit spravy a dokonca aj citanie ak potrebujem naozaj cittat a nie len cakat na koniec transakcie funguje v 8bit rezime.
Jediny problem je ak je zakazane inkrementovanie adresy ako periferie tak pamate, vtedy to v 8bit rezime nefunguje a v 16bit ano.

Este upresnim jedna sa o STM32F303VCT revizie Y, Periferia bola SPI3 a 
DMA2 kanal. Doska je 4vrstva s pomerne slusnym blokovanim takze 
nepredpokladam EMC problem.

Jan Waclawek  wrote / napísal(a):
> Coze? Ved TC sa ma nastavit pri dosiahnuti daneho poctu transakcii, to by
> predsa nemalo zavisiet od velkosti transakcie...?
> Ak tam bol predtym ten DMA_MemoryDataSize_Byte, na akej hodnote sa zastavil
> DMA_CNDTRx?
>
> wek
>
> ----- Original Message ---------------
>   
>> Nie, tym to nieje. Moze tam zapisovat dokonca som toto miesto zmenil na 
>> pole ked som testoval ci to funguje ak je zapnute inkrementovanie adresy 
>> pamate. A fungovalo...
>> Uz som nasiel pricinu, v tomto pripade je treba pouzit 16bit citanie. V 
>> RX DMA bolo treba zmenit:
>>
>> DMA_InitStructure.DMA_MemoryDataSize         = DMA_MemoryDataSize_HalfWord;
>> DMA_InitStructure.DMA_PeripheralDataSize    = 
>> DMA_PeripheralDataSize_HalfWord;
>>
>>     
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>   



Další informace o konferenci Hw-list