How to communicate with max96712 by SPI on Nano

SPI have 4 pins MOSI MISO SCLK CS. max96712 have MOSI, MISO, SCLK, RO(read only), and BNE(buffer not empty) pins.
I want to read a register value by SPI from Nano to max96712. SPI master on Nano firstly write register address. Then when does SPI master on Nano read register value from max96712?
When max96712 prepares the register value, max96712 sets BNE high. But it seems that Nano doesn’t read BNE. Perhaps SPI master on Nano reads register value when BNE is low which means max96712 doesn’t prepare register value. So SPI master on Nano gets wrong register value.
Could you please explain reading method of SPI master on Nano? I am not sure my understanding is right.

Hi szcszc123,

Are you using the devkit or custom board for Orin Nano?
What’s the Jetpack version in use?

In this case, it seems you should connect BNE to Orin Nano so that it would know when it can receive the data from MISO. I think MAX96712 driver should handle for that. Or you should implement it in your application. Please also contact your vendor for the usage and the porting guide.

Use the devkit for Orin Nano. The version is 35.4.1

Do you know the SPI read mechanism on Orin Nano? When does SPI master on Orin Nano begin to read after writing register? How does SPI master know the reading data is ended?

MAX96712 driver code in kernel is an I2C driver, not SPI driver. But MAX96712 has SPI feature.

As my understanding, it would read the data immediately since it would specify the buffer for both TX/RX before sending the data.
You can simply perform the SPI loopback test(by shorting MISO/MOSI) to know how it works.

Yes, it seems there’s a I2C driver for max96712(max96712.c) in linux kernel.
If you want to get SPI driver for max96712, I would still suggest you contacting your vendor for those information since it is not developed from us and we don’t have such module to verify.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.