1. SPI communication between MCU and MPU.
Hi,
I am working on SPI bus communication between IMX6dl MPU and STM32L476 MCU.
MPU work as a master device and MCU work as a slave device.
Configuration of MPU is:
pinctrl_ecspi3: ecspi3grp {
fsl,pins = <
MX6QDL_PAD_DISP0_DAT2__ECSPI3_MISO 0x100b1
MX6QDL_PAD_DISP0_DAT1__ECSPI3_MOSI 0x100b1
MX6QDL_PAD_DISP0_DAT0__ECSPI3_SCLK 0x000b1
#define GP_ECSPI3_NOR_CS <&gpio4 24 GPIO_ACTIVE_HIGH>
MX6QDL_PAD_DISP0_DAT3__GPIO4_IO24 0x0b0b1
>;
};
&ecspi3 {
fsl,spi-num-chipselects = <1>;
cs-gpios = GP_ECSPI3_NOR_CS;
/*spi-slave;*/
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi3>;
status = "okay";
spidev2: spi@0 {
compatible = "spidev";
reg = <0>;
spi-cpha;
spi-max-frequency = <34000000>;
};
};
Master clock frequency: 312500
Master Mode: CPOL = 0, CPOH = 1 (i.e. Mode 1)
Datasize = 8 bit
Configuration of MCU is:
hspi3.Instance = SPI3;
hspi3.Init.Mode = SPI_MODE_SLAVE;
hspi3.Init.Direction = SPI_DIRECTION_2LINES;
hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi3.Init.NSS = SPI_NSS_SOFT;
hspi3.Init.FirstBit = SPI_FIRSTBIT_LSB;
hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
hspi3.Init.CRCPolynomial = 7;
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
My queries are:
1. Is master and slave configuration is ok??
2. How can i check loop back mode in MCU??
First of all i have checked Loop back mode in Master.
Master loop back communication is working fine.
When i am testing master to slave SPI communication, master is sending dataframe "10101010" at slave end receiving dataframe is "01010101".
Please let me know what could be the reason for above point.
Thank you.
