@ taylorza - I diffed the csproj files and nothing different! However, there was some other test code that I did NOT copy over to the new solution, this code did compile, deploy and run fine before. Maybe something strange with function size or some other weird quirk.
I tried with and without buffering, and still the same end result. To put it simply, it really looks like what we think we are writing to the chip isn’t getting read back. I put a logic analyzer on the chip and it does indeed look like SPI timing but the value read back doesn’t seem right (always <= 0x16).
Here is how I am configuring the SPI. On my Cerberus I tried socket 5 and 6.
For socket 6 I used
var spiCfg = new SPI.Configuration((Cpu.Pin)FEZCerberus.Pin.PA13, false, 0, 0, false, true, 12000, SPI.SPI_module.SPI1);
For socket 5 I used
var spiCfg = new SPI.Configuration((Cpu.Pin)FEZCerberus.Pin.PC15, false, 0, 0, false, true, 12000, SPI.SPI_module.SPI1);
If I call
SPI.SPI_module spim = GT.Socket.GetSocket(5, true, null, null).SPIModule;
with either a 5 or 6 for the first param (socket id), it always returns 0, thus the usage of SPI.SPI_module.SPI1 for either socket 5 or 6
Further, the GET_IDENTIFICATION is returning something but not what the code in MX25l3206BlockDriver says the manufacturer and device id should be.
Can someone check my SPI.Configuration’s and tell me if I am off with these? I suspect this is a likely cause of the trouble.
Hopefully we have good news soon!