| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Implement SPI.transfer16() as a true 16 bit transfer Signed-off-by: Dr M <drmcnelson@gmail.com>
|
Why did you removed defined(STM32U0xx) ? |
Sorry, something went wrong.
|
Actually, I did not remove it either. It was not in my version of that file. I will make the correction. |
Sorry, something went wrong.
Correction, defined(STM32U0xx) Signed-off-by: Dr M <drmcnelson@gmail.com>
|
Hi @drmcnelson In fact there is a mistake. Using LL_SPI_TransmitData16 is not enough to properly transfer 16bit. It requires to configure the data size to SPI_DATASIZE_16BIT. So it should require to manage it.
if (LL_SPI_GetDataWidth(_SPI) != LL_SPI_DATAWIDTH_16BIT) {
/* Change data width to 16 bit */
LL_SPI_Disable(_SPI);
LL_SPI_SetDataWidth(_SPI, LL_SPI_DATAWIDTH_16BIT);
LL_SPI_Enable(_SPI);
}This add at least 1 check per transfer.
|
Sorry, something went wrong.
|
@fpistm Wonderful, thank you, and thank for you looking at it. How about a variable transfer size? Some ADCs are 18 bit (or larger) and some are daisy-chainable, so that transfers could be several times 18 bits (or larger). I have been doing this by hand for an acoustic imaging array, but with the new world of 32 bit processors and higher precision preripherals, maybe it's time to upgrade the SPI interface for everybody. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Implement SPI.transfer16() as a true 16 bit transfer