器件型号:LDC1041EVM
工具/软件:Code Composer Studio
您好!
我的 MSP432和 LDC1041问题未得到解决。 您是否有一个代码示例可帮助我管理 LDC1041的使用? 我没有对传感器进行任何更改:我保留了 LDC1041评估板的线圈和 PCB,只是将 MSP430连接到了 MSP432上。 因此、我使用的参数与软件"传感解决方案 EVM GUI"提供的参数相同。
谢谢你
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:LDC1041EVM
工具/软件:Code Composer Studio
您好!
我的 MSP432和 LDC1041问题未得到解决。 您是否有一个代码示例可帮助我管理 LDC1041的使用? 我没有对传感器进行任何更改:我保留了 LDC1041评估板的线圈和 PCB,只是将 MSP430连接到了 MSP432上。 因此、我使用的参数与软件"传感解决方案 EVM GUI"提供的参数相同。
谢谢你
Sylvain、您好!
我对您遇到的问题的理解是、您在 LDC1041的频率输出寄存器中得到全0;是这样吗?
如果我对问题的理解是正确的,我怀疑您可能应用的参考频率太低-我们通常使用大于4MHz 的参考频率。 在极低基准频率下、如果器件配置为高采样率、则在采样窗口期间可能不会捕获基准的节拍。
您能否提供从 INA 或 INB 到接地的传感器信号短路示波器?
此致、
Chris O
Sylvain、
我已经能够与我的同事进行讨论、但不幸的是、他的例子是 LDC2114。 回顾这一主题和之前的主题、我认为问题在于芯片选择(CSB)。 MSP432提供的四线制模式使用从器件发送使能(STE)的概念、这与片选不同。 我已经附上了一个片段、介绍了如何通过片选写入 SPI。
Chris
/*-版权所有-、BSD *版权所有(c) 2017、德州仪器(TI)公司 *保留所有权利。 * * 只要 符合以下条件*、允许以源代码和二进制形式重新分发和使用: * *源代码的重新分发必须保留上述版权 声明*、此条件列表和以下免责声明。 * ***二进制形式的再发行必须在 *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。 * ***未经 事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。 * *本软件由版权所有者和贡献者"按原样"提供 *、 不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或 *贡献者都不对任何直接、间接、偶然、特殊、 *模范、 或相应的损害(包括但不限于 *采购替代产品或服务;丧失使用、数据或利润; *或业务中断)、但出于任何责任理论 、*无论是在合同中、严格责任还是由于 使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他) 、*即使已获悉可能会发生此类损坏。 *--/版权--*/ * MSP432 SPI - 3线主器件递增数据 * 此示例展示了 SPI 主器件如何使用3线模式与 SPI 从器件进行通信。 *主器件从0x01开始发送递增数据。 接收到的数据 *应与之前的传输相同。 eUSCI RX ISR 用于 *处理与 CPU 的通信、通常在 LPM0中。 由于 LPM0处于 ISR 中之后的所有执行*、初始化等待 DCO 相对于 * ACLK 稳定。 * *请注意、在此示例中、EUSCIB0用于 SPI 端口。 如果用户 *希望将 EUSCIA 用于 SPI 操作、则他们能够使用具有 EUSCI_Ax 参数的相同 API *。 * ** ACLK =~32.768kHz、MCLK = SMCLK = DCO 3MHz * **与 SPI 从站数据回显代码一起使用。 * * MSP432P401 * -------- * | | * | | * | | * | P1.6|->数据输出(UCB0SIMO) * | | * | P1.7|<-数据输入(UCB0SOMI) * | | * | P1.5|->串行时钟输出(UCB0CLK) (UCB0CLK /* DriverLib 包括*/ #include /*标准包括*/ #include #include uint8_t TXData[2]; //![简单 SPI 配置] /* SPI 主配置参数*/ const eUSCI_SPI_MasterConfig spiMasterConfig = { EUSCI_B_SPI_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源 3000000、 // SMCLK = DCO = 3MHz 50万、 // SPICLK = 500kHz EUSCI_B_SPI_MSB_FIRST、 // MSB 优先 EUSCI_B_SPI_PHASE_DATA_Changed_ONFIRST_Captured_On_Next、//相位 EUSCI_B_SPI_CLOCKPOLARITY_INACTION_HIGH、//高极性 EUSCI_B_SPI_3引脚 // 3线 SPI 模式 }; //![Simple SPI Config] int main (void) { /*停止 WDT */ WDT_A_HOLDTimer(); //![简单 SPI 示例] /*在 SPI 模式下选择 P1.5 P1.6和 P1.7 */ GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P1、 GPIO_PIN5 | GPIO_PIN6 | GPIO_PIN7、GPIO_PRIMARY_MODULE_FUNCTION); /*在3线主控模式下配置 SPI */ SPI_initMaster (EUSCI_B0_BASE、&spiMasterConfig); /*启用 SPI 模块*/ SPI_enableModule (USCI_B0_BASE); TXData[0]= 0x01; TXData[1]= 0x02; /* *发送带芯片选择的指令 * /*轮询以查看 TX 缓冲区是否就绪*/ while (!(SPI_getInterruptStatus (EUSCI_B0_BASE、EUSCI_B_SPI_Transmit 中断))); /*在此处选择 Set Chip */ /*向从器件发送数据时,eUSCI 被缓冲,因此可以进行两次写入*/ SPI_transmitData (EUSCI_B0_BASE、TXData[0]); SPI_transmitData (EUSCI_B0_BASE、TXData[1]); while (!(SPI_getInterruptStatus (EUSCI_B0_BASE、EUSCI_B_SPI_Transmit 中断))); SPI_clearInterruptFlag (EUSCI_B0_BASE、EUSCI_B_SPI_Receive_interrupt); /*直到最后一个字节被发送后才清除片选信号。 。 * TX IFG 表示发送缓冲区是空闲的且可以加载。 。 * RX IFG 表示字节已实际传输-实际传输 *为了接收数据、需要加载发送缓冲区以生成时钟 *脉冲。 * while (!(SPI_getInterruptStatus (EUSCI_B0_BASE、EUSCI_B_SPI_receive_interrupt))); /*清除芯片在此选择*/ /*继续代码*/ }