Hello ffatih,
Your interface modification looks okay, but in your code, reset funciton is before init function.
If so, your data log should be reset first as below.
MOSI: 0x7E; MISO: 0x00 |
MOSI: 0xB6; MISO: 0x00 |
And, for SPI reading in BMA400, we need one dummy byte. ( bma400.c line 593)
For example, in case of chip ID, data log shall be as below.
MOSI: 0x80; MISO: 0x00 |
MOSI: 0x00; MISO: 0x00 |
MOSI: 0x00; MISO: 0x24 |
However, in your log, MOSI just sent two bytes as 0x80, 0x00.
I think you can check based on this one.
Please let me know if you have any quesitons.
Thanks,
I have tried it with 3 and 4 bytes read, but no success.
Hello ffaith,
Please check your SPI mode is running within two SPI mode.
Below capture is the BMA400 read with CPOL = '1' and CPHA = '1'.
Thanks,
Hi Minhwan,
Thank you, I have checked SPI mod, Picture I have sent previous message was CPOL = '0' and CPHA = '0'. I read the document and as you shared it supports 0-0 and 1-1 modes. I also tried 1-1 mode, result is same on my side. I see no data on miso line. Maybe poor soldering cause this, I am not sure.
Hello ffaith,
Yes, it looks like okay and could be working though.
Here is the two suggestions.
1) Slow down SPI like 1Mhz.
2) Reset before reading ID. (Reg 0x7E, CMD 0xB6), and 150ms delay.
Please share your result after test.
Thanks,