SPI communication problem

Hi all, I’m new in the comunity and how not, I’ll introduce myself with a noob question :wink: .
I’m trying to comunicate the FEZ Hydra with a own made design (FPGA) via SPI. The FPGA requires a start up comand with is just simply the sequence 00000110 00010000, this would be 2 bytes (int 6 and int 16) but the FPGA design needs to receive all the bytes without any interbyte delay (as shown in picture SDS00003 attached). The configuration and code I’m using is the following:

Microsoft.SPOT.Hardware.SPI.Configuration conff = new Microsoft.SPOT.Hardware.SPI.Configuration(Microsoft.SPOT.Hardware.Cpu.Pin.GPIO_NONE, false, 0, 0, false, false, 20000, Microsoft.SPOT.Hardware.SPI.SPI_module.SPI1, Microsoft.SPOT.Hardware.Cpu.Pin.GPIO_NONE, false);
Microsoft.SPOT.Hardware.SPI spi2 = new Microsoft.SPOT.Hardware.SPI(conff);
byte[] dato = new byte[2] { 6, 16 };
            while (true)

The result I’m having is showned in picture SDS00002 which is the bytes with a short time between them. How can I remove the interbyte time? I’ve tried with all possible configurations and I always get the same result.
Thank you in advance :wink:

PS: SDS00003 I got sending the value ushort[] dato = new ushort[1] { 1552 }; but as I said, I need bytes, no ushort type, for future data byte sending.

@ adritati - Welcome!

I am not aware of any method you can use to achieve a 24bit transfer using NETMF. The only way I can think of is using native code and bit banging. Software SPI.


Have I mis-read the post and you only need 16bits? If I have then do a 16 bit transfer then change back to an 8bit transfer.

The only way would be using RLP and through DMA. Using DMA is a bit complex but you are working with FPGA so you should be able to figure it out.