Normally it is forbidden (cfr documentation) but there is a way to use SPI2_CS with ADL_BUS_SPI_FRAME_HANDLING :

bus2Settings.ChipSelect = ADL_BUS_SPI_ADDR_CS_GPIO;
bus2Settings.ChipSelectPolarity = ADL_BUS_SPI_CS_POL_LOW;
bus2Settings.Clk_Mode = ADL_BUS_SPI_CLK_MODE_0;
bus2Settings.Clk_Speed = 127;
bus2Settings.DataLinesConf = ADL_BUS_SPI_DATA_UNIDIR;
bus2Settings.GpioChipSelect = ADL_IO_Q2686_GPIO_35;
bus2Settings.LsbFirst = ADL_BUS_SPI_MSB_FIRST;
bus2Settings.WriteHandling = ADL_BUS_SPI_FRAME_HANDLING;

You will simply use SPI2_CS as GPIO :wink: It works !!!

Why Wavecom denied to use directly ADL_BUS_SPI_ADDR_CS_HARD with ADL_BUS_SPI_FRAME_HANDLING… I don’t know :wink:

If it can help someone !!!

Best regards,



Hello Gauthier,

That is a very good question, maybe it has a reason but hard to imagine it can’t be solved. According to the OAT 4.20 documentation everything is the same with this problem.

During designing the first prototype we did not read the ADL user guide so we connected to the Chip Select pin for CF card, so with the first panel we could not use the SPI bus for our purposes. I think at least it sould be mentioned in the hardware user guide because it strongly limits the SPI bus.



It’s working for me but I spend time with such problems…

The only problem I have with SPI now is that I cannot use SPI1 and SPI2 at the same time… (wavecom.com/modules/movie/sc … .php?t=622)

If someone have an idea please reply in the other post.


Best regards,



Resolved. I make an error :blush:


Best regards,



I understand now, so it can work if you use the dedicated chip select line as GPIO… the matter of fact, we didn’t mess around and we connected the external chip select to a free GPIO when we red the ADL user guide. The mistery is bigger now, why it can be used ADL_BUS_SPI_ADDR_CS_HARD with ADL_BUS_SPI_FRAME_HANDLING.