Other Parts Discussed in Thread: AFE031, SYSCONFIG
器件型号: AFE031
尊敬的 TI 团队:
我正在尝试与连接 AFE031 IC STM32 微控制器 但我无法获得正确的通信。
所有读取尝试都会返回 0xFF 和写入操作似乎不起作用。
以下是我的设置的详细信息:
Cube IDE SPI 配置:-
hspi1.instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8 位;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW ;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.nss = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCcalculation = SPI_CRCCALCULATION_disable;
hspi1.Init.CRCPolynomial = 7;
hspi1.Init.CRCLlength = SPI_CRC_LENGTH_DATASIZE;
hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;
HAL_SPI_Init (&hspi1);
SPI 写入操作:-
uint8_t Spi_Write_Buffer [2];
Spi_Write_Buffer [0]= RegAddress & 0x7F; //写入命令 (MSB = 0)
Spi_Write_Buffer [1]=数据;
HAL_GPIO_WritePin (AFE_MODEM_CS_GPIO_Port、AFE_MODEM_CS_Pin、0);
HAL_SPI_TRANSMIT (&hspi1、Spi_Write_Buffer、2、HAL_MAX_DELAY);
HAL_GPIO_WritePin (AFE_MODEM_CS_GPIO_Port、AFE_MODEM_CS_Pin、1);
SPI 读取操作:-
unsigned char Spi_Write_Buffer [2]={ 0x00 };
unsigned char Spi_Read_Buffer [2]={ 0x00 };
Spi_Write_Buffer [0]= RegAddress | 0x80; //读取命令 (MSB = 1)
Spi_Write_Buffer [1]= 0x00;
HAL_GPIO_WritePin (AFE_MODEM_CS_GPIO_Port、AFE_MODEM_CS_Pin、0);
HAL_SPI_TRANSMIT (&hspi1、Spi_Write_Buffer、2、HAL_MAX_DELAY);
HAL_SPI_Receive (&hspi1、Spi_Read_Buffer、2、HAL_MAX_DELAY);
HAL_GPIO_WritePin (AFE_MODEM_CS_GPIO_Port、AFE_MODEM_CS_Pin、1);
AFE031 SPI 模式:CPOL = 1、CPHA = 1(模式 3)
DAC 引脚= 驱动至低电平
D 引脚= 驱动至低电平
MCU SPI FREQ = 3MHz(已测试 1.5 MHz)
问题描述
-
所有 SPI 读取操作都会返回
0xFF。 -
写入操作似乎不会更新任何寄存器。
-
示波器上的 SPI 信号 (SCK、MOSI 和 CS) 显示正确。
-
验证了 STM32 和 AFE031 之间的引脚连接且正确。
请您帮忙确定一下 可能的原因 为什么即使 SPI 信号看起来正确、与 AFE031 的 SPI 通信也可能失败?
任何已知的初始化要求、时序注意事项或可能阻止寄存器访问的引脚条件都将非常有帮助。
谢谢您、
米德胡尔 P K