主题中讨论的其他器件:MSP430F5517、
大家好!
我使用 MSP430F5517 MCU 通过 SPI 与 DAC8718通信。 两个器件之间的 NCS、SCLK、MOSI 和 MISO 信号在示波器上显示正确:
- 当在一 个 NCS 周期内通过 MOSI 发送写入命令时、MISO 在下一个周期回显写命令的所有24位。
- 在一个 nCS 周期内通过 MOSI 发送读取命令时、MISO 在下一个周期回显读取命令的前8位、后跟目标寄存器的16位值。
但是、DAC 不会在其输出端产生任何电压。 当电路通电时、无论写入寄存器的值是多少、每个通道都会产生稳定的11mV 电压。 DAC 在单电源模式下运行、具有以下电源轨电压:
- IOVdd = 3.3V
- DVDD = 5V
- AVDD = 31V
- DGND = 0V
- AGND-A = 0V
- AGND-B = 0V
- AVSS = 0V
失调电压 A 和失调电压 B 均与数据表中定义的用于单电源运行的 AVSS 相连。 参考 A 和参考 B 都连接到稳定的5V 电源、并且配置寄存器中的增益位设置为6、以产生30V 的最大理论输出。
下面是我在 MSP430上的 SPI 引擎的设置代码:
//DAC USCI configuration UCA1CTL1 = UCSWRST; //unlock USCI A1 registers UCA1CTL0 = UCMSB + UCMST + UCSYNC; //configure change on first edge, LOW idle, MSB first, 8-bit, master, 3-pin SPI, synchronous UCA1CTL1 |= UCSSEL_1; //configure ACLK as source for BRCLK (ACLK = 1MHz) UCA1BR0 = 0; //disable prescaler UCA1BR1 = 0; //disable prescaler UCA1CTL1 &= ~UCSWRST; //lock USCI A1 registers, initialize USCI A1 state machine
在初始化 MSP430 SPI 引擎后、我创建了一个测试程序来向 DAC 发送命令。 下面详细介绍 了我发送和接收的数据包:
- MOSI:0x081111 MISO:0x000000 (无前一条命令)
- MOSI:0x092222 MISO:0x081111 ("将寄存器8写入0x1111"命令的回显)
- MOSI:0x890000 MISO:0x092222 ("将寄存器9写入0x22222" 命令的回显)
- MOSI:0x000020 MISO:0x892222 ("读取寄存器9"命令的回显、后跟寄存器9的值)
- MOSI:0x880000 MISO:0x000020 ("无操作"命令的回显)
- MOSI:0x000020 MISO:0x881111 ("读取寄存器8"命令的回显、后跟寄存器8的值)
下面是我使用的逻辑分析仪的捕获结果、其中显示了相同的数据:
我可能会出什么问题?