主题中讨论的其他器件: AMC131M03
工具/软件:
您好、使用 ADS131M04、我尝试与 IC 通信、我读取默认寄存器值、但数据是 incorrect.in、只是尝试读取 MODE 寄存器默认值。
uint16_t ADS_ReadRegister (uint8_t reg_addr)
{
uint8_t tx_buf[3]={ 0 };
uint8_t rx_buf[3]={ 0 };
// RREG 命令格式:001A aaaa annn nnnn→0x20 |(addr << 1)
uint16_t 操作码;
opcode = opode_RREG |((uint16_t) reg_addr)<< 7);
tx_buf[0]=(uint8_t)((opcode >> 8)& 0x00FF);
tx_buf[1]=(uint8_t)(opcode & 0x00FF);
tx_buf[2]= 0;
HAL_SPI_TransmitReceive_dma (&hspi3、tx_buf、rx_buf、3);
返回((uint16_t) rx_buf[0]<< 8)|((uint16_t) rx_buf[1]);
}
void ADS_WriteRegister (uint8_t reg_addr、uint16_t 数据)
{
uint8_t tx_buf[6]={0};
uint8_t rx_buf[6]={0};;
uint16_t 操作码[1];
opcodes[0]= opode_WREG |((uint16_t) reg_addr)<< 7);
// WREG 命令格式:011A aaaa annn nnnn→0x60 |(地址<< 1)
tx_buf[0]=(uint8_t)((opcodes[0]>> 8)& 0x00FF);
tx_buf[1]=(uint8_t)(opcodes[0]& 0x00FF);
tx_buf[2]= 0x0;
tx_buf[3]=(uint8_t)(data >> 8)& 0x00FF;
tx_buf[4]=(uint8_t) data & 0x00FF;
tx_buf[5]= 0x0;
HAL_GPIO_WritePin (CS2_GPIO_Port、CS2_Pin、GPIO_PIN_RESET);
HAL_SPI_TransmitReceive_dma (&hspi3、tx_buf、rx_buf、6);
HAL_GPIO_WritePin (CS2_GPIO_Port、CS2_Pin、GPIO_PIN_SET);
返回;
}
读取和写入或不工作以及一个以上 IC 开始提供连续数据示例4ksps 作为默认模式值。 IM 使片选信号持续变为低电平。
该怎么做任何建议,是否有帧格式正确或不正确。 我的 SPI CLK 为10MHz、CLKIN 为8MHZ