Conversation
Implement SPI.transfer16() as a true 16 bit transfer Signed-off-by: Dr M <[email protected]>
|
Why did you removed |
|
Actually, I did not remove it either. It was not in my version of that file. I will make the correction. |
Correction, defined(STM32U0xx) Signed-off-by: Dr M <[email protected]>
|
Hi @drmcnelson In fact there is a mistake. Using It requires to configure the data size to 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.
|
|
@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. |
Implement SPI.transfer16() as a true 16 bit transfer