PhilBladen / Radio

A library for using the AR1010 and Si468x with STM32
6 stars 1 forks source link

si468x + stm32 (HAL) and spi bus #1

Open silelis opened 3 years ago

silelis commented 3 years ago

Hello,

Have You tried to connect with si468x via spi? In my case i2c is working but spi status3 return all possible spi bus errors.

PhilBladen commented 3 years ago

I'm afraid this project only used I2C for control communication to the SI4684.

From the reference manual, only SPI Mode 0 (CPHA=0, CPOL=0), and SPI Mode 3 (CPHA=1, CPOL=1) are supported by the SI468x, so ensure you are in the correct mode. If you are able, I would put a logic analyser on your SPI bus to check it matches the timing diagrams in the reference manual.

silelis commented 3 years ago

I understand that You don't use spi so will try with it on my own. But I have also question about I2C DMA where I have also problem and I noticed that You use DMA I2C.

My problem is that If add to i2c communication DMA mechanism one of i2c dma streams do no't work.

But from the beggining. in software mode i2c communicate with slave device (generally doesn't metter if it is 24c16 or si468x). In interrupt mode it is also working but strange things happens with DMA. If only one i2c dma stream is turned on (i.e. for rx or tx) it is working but when I turn on both dma (for rx and tx) the stream with higher number works and this with lower number do not work. It does not mather if rx or tx is higher (I can change it in HAL configuration). The rule is that HIGHER stream not working.

I have tracked it in debugger and it seems that MCU do not exen execute DMA stream IRQ handler function for lower stream DMA.

Have You got similar issue? My MCU is stm32f411re.