Re: *****SPAM***** trable s stm32f4 a spi

Vojtěch Petrucha petrucha na volny.cz
Pondělí Červenec 10 12:35:23 CEST 2017


Zdravim,
 
ja vim ze je to moloch..   
SPL mam take stazene.. 
ale pokud se to podari v tom HALu budu vdecny.. neni to zas tak kriticka aplikace /vycist 16 kanalu ADC a poslat je do sveta pres UART + nejake zapnuti vypnuti dcdc apod/ a ta relativni jednoduchost se mi hodi, cilem je ted  ziskat data a pracovat s nimi ne udelat super-program.
 
V.
 
 
______________________________________________________________
> Od: Jaroslav Buchta <jaroslav.buchta na hascomp.cz>
> Komu: hw-list na list.hw.cz
> Datum: 08.07.2017 11:26
> Předmět: Re: *****SPAM***** trable s stm32f4 a spi
>
Primarni problem vidim v pouziti Cube, nasel jsem tam sveho casu tolich 
 chyb a podivnosti, ze jsem zase presel k SPL abych mel trosku klidne 
 spani...
 Ono to hezky funguje na takove ty zakladni naklikane aplikace, jak se 
 ale zacnou ruzne periferie prat, tak se v tom neda moc zorientovat co to 
 vlastne dela a co se ovlivnuje.
 
 Dne 08.07.2017 v 11:20 Vojtěch Petrucha napsal(a):
 > Zdravim,
 >   
 > potreboval bych pomoci stm32f412zgt6 precist data z AD prevodniku AD7768. AD prevodnik se chova jako master, poskytuje DOUT (8*4*8) bitu (8 kanalu po 8+24 bitech), clock (bezi zda se porad) a DRDY signal, viz screenshot z osciloskopu: http://jpeg.cz/obrazek/goNq <http://jpeg.cz/obrazek/goNq>  (modra-DRDY, zluta - data, cervena - CLK)..
 > Cili v MCU jsem pomoci CubeMX nastavil SPI2 jako receiving only slave s hardware NSS. Motorola frame format, 8 bitu, msb first, clock polarity LOW, clock phase 2edge, CRC disabled, NSS signal type je input HW...
 >   
 > .. a chtel pouzit DMA na cteni tech dat.. to nefungovalo.. tak jsem presel na obycejne cteni, pomoci funkce HAL_SPI_Receive(&hspi2,&adcbuf1[0],32,100);    (promenna do pro data: volatile uint8_t adcbuf1[33];)
 > To ale nefunguje taky.. kdyz v mainu funkci pustim parkrat za sekundu tak vetsinou precte same nuly, obcas se tam objevi "nejaka" data (nikdy neni na zacatku hodnota 0x10, ktera by tam mela byt dle nastaveni ADC - je videt i na obrazku ze skopu..).
 > Kdyz v CubeMX nastavim format SPI na TI tak se spravne? precte prvni byte, ale ten je v promenne na prvnich 14 mistech a pak zas same nuly..
 > Chapal bych, ze proste cte nekdy pozdeji kdyz uz tam ta data nulova data jsou (clock bezi porad a DOUT je pak v nule), ale proc nereaguje na ten NSS..
 >   
 > Nemel nekdo prosim napad co s tim?
 >   
 > Moje asi naivni predstava byla, ze kdyz je tam nastaveny ten rezim rec-only-slave a nss hardware, tak to proste po zavolani funkce pocka na spadovou hranu toho nss a precte pozadovany pocet byte a konec..  podobne s DMA - pockal bych na preruseni nebo transfer complete callback a zpracoval si prijata data..
 >   
 > v te funkci na prijem je:
 >   
 >   while(hspi->RxXferCount > 0U)
 >      {
 >        /* Check the RXNE flag */
 >        if(__HAL_SPI_GET_FLAG(hspi, SPI_FLAG_RXNE))
 >        {
 >          /* read the received data */
 >          (* (uint8_t *)pData)= *(__IO uint8_t *)&hspi->Instance->DR;
 >          pData += sizeof(uint8_t);
 >          hspi->RxXferCount--;
 >        }
 >   
 > coz nevypada ze by se o ten nss staralo..
 >   
 > Diky
 > Vojta
 >   
 > p.s. s stm32 jsem temer uplny zelenac, takze asi placam blbosti..
 > _______________________________________________
 > HW-list mailing list  -  sponsored by www.HW.cz
 > Hw-list na list.hw.cz
 > http://list.hw.cz/mailman/listinfo/hw-list <http://list.hw.cz/mailman/listinfo/hw-list>
 
 
 _______________________________________________
 HW-list mailing list  -  sponsored by www.HW.cz
 Hw-list na list.hw.cz
 http://list.hw.cz/mailman/listinfo/hw-list <http://list.hw.cz/mailman/listinfo/hw-list>

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20170710/e9d6b2e1/attachment.html>


Další informace o konferenci Hw-list