主题中讨论的其他器件:LDC1612、
您好!
我们购买了 LDC1612EVM 电路板、使其工作正常。 我们从 LDC1612EVM 板获得了 LDC1612和线圈设计、并将其放在我们自己的定制板上。
问题是我们会将数据全部设置为0。
我们按照 LDC1612数据表中的第8.2.4节"详细设计过程"进行了操作、并使用了与 EVM 相同的寄存器设置。 EVM 生成的数据约为1900万到2000万、而我们的电路板生成的数据为全零。
我们只需读回它们、即可确认在8.2.4中写入的寄存器。 我们使用如下所示的值对这些寄存器进行编程。 我们目前仅使用 CH0
void LDC_init (void)
{
//这些值是从 EVM 获取的
LDC_WRITE_register (0x14、0x1001);//1。 写入 ch0时钟分频器
LDC_WRITE_register (0x10、0x0400);//2。 写入 ch0稳定时间
LDC_WRITE_register (0x08、0xFFFF);//4。 写入 CH0转换时间
LDC_WRITE_register (0x19、0x0001);//5。 写入错误 cfg 寄存器以启用 INTB DRDY
LDC_WRITE_register (0x1E、0xF000);//6。 写入 ch0电流驱动(IDRIVE0)
LDC_WRITE_register (0x1b、0x820c);//7。 写入 MUX_CONFIG 寄存器
LDC_WRITE_register (0x1a、0x1e01);//8。 写入配置寄存器
}
读取的 CH0数据如下所示、但它们在我们的定制板上仅给了我们0值。
此代码也用于 EVM 的 LDC1612和线圈断开部分、因此我们确信这些设置和代码能够正常运行。
uint32_t LDC_READ_CH0 (void)
{
uint16_t DATA_MSB_ch0=LDC_READ_register (0x00);
uint16_t data_lsb_ch0=LDC_READ_register (0x01);
返回((((uint32_t) data_msb_ch0)<<16)|data_lsb_ch0);
}
Im 添加原理图屏幕截图

显示线圈的3D Altium 视图、与 LDC1612EVM 上的线圈相同

对于我们的定制板为什么会产生0数据的任何见解或指导,非常感谢