我正在尝试通过 SPI 将 TLV5616与 mbed 连接。
我建立的连接如下:
https://i.stack.imgur.com/duiLJ.png
注意:mbed 由相同的5V 电源供电。
我修改了 mbed SPI helloworld prorgam:
#include "mbed.h" SPI SPI (P5、P6、p7);// mosi、mISO、 SCLK DigitalOut cs (p8); int main (){ uint16_t fixed = 0x4000; uint16_t value = 1000; uint16_t final = value << 2; final = fixed ^ value; cs = 1; spi.format (16、3); spi.frequency(1000000); //通过设置芯片选择 low cs = 0来选择器件; //发送0x8F,读取 whoami 寄存器 spi.write (final)的命令; //取消选择设备 cs = 1; }
前4位(从左侧)应为0100、后2位为00。 10位值介于两者之间。 数据表(www.tij.co.jp/.../tlv5616.pdf)对此进行了说明。
我已经使用了位模式0x4000、并将其与10位值进行异或运算、后者被移位2。 这将导致 DAC 接受一个位模式。
然而、当测量 DAC 输出时、该值往往保持在200mV 左右、有时会低于、这会导致我相信某种情况不太正常。 如果值为1000、您将期望值接近3.3V (REF)。
我应该提到的是、虽然我认为没有必要测试基本功能、但我没有在该电路中使用过电容器。
是否有任何关于出错的想法?