2023-03-30 04:13 PM
I am trying to use I2C and SPI communications at the same time, where I2C is interrupt driven and SPI is DMA based. Separately they work fine, but they fail when put together. On the Nucleo-32 F303K8 I am using pins PB7(SDA)/PB6(SCL).and SPI is using PA7(MOSI)/PA6(MISO)/PA5(SCK)/ PA4(CS).
According to this reference document, STM32 Nucleo-32 boards (MB1180) - User manual Section 6.10 Solder Bridge, there are two 0 ohm resistors, SB16 and SB18, tying PB7 to PA6 and PB6 to PA5. This connection would explain why the program freezes.
It seems simple to disconnect that solder bridge, but according to the reference document, if SB16 is off, "CN4 pin 7 is used as Arduino Nano analog input A5 without I2C support and CN3 pin 8 is available as Arduino Nano D5."
So am I just sol? There are no other SPI connections possible and PA14/PA15, which can be I2C, seem to be used by internal hardware of the board.
2023-03-30 07:41 PM
hi , According the user mannual and the datasheet of STM32F303 , the PB7(SDA)/PB6 (SCL) is for the I2C use, if at the same time you want to use PA5/PA6 for SPI use, you should disconnect SB16&SB18. or you can use CN3 { PA11 (CS), PB5(MOSI), PB4(MISO) }, CN4 { PB3(CLK)} for the SPI connection.
2023-03-31 09:48 AM
Okay, thank you! I should have clarified but my gripe was with the wording of that document. I wasn't sure if removing the solder bridges would disable I2C functionality all together.
2023-04-02 07:18 PM
hi j.f303k8, for the multi-function use of the pins, the Arduino pins need multiple function for them, so the board need solder bridges to add the functions on it. for the I2C function, it comes from PB7/PB6, but CN4 PIN7 &PIN8 also need i2c functions. so you can try remove the solder bridge first to try the functions.