主题中讨论的其他器件: TM4C123
工具/软件:Code Composer Studio
尊敬的所有人
有人能不能建议如何从微控制器 tm4c129xnczad 向 DAC ad5791发送20位数据。 我在 ssiconfigsetexpclk 中看到的数据仅为4至16位。 请告诉我如何操作
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.
工具/软件:Code Composer Studio
尊敬的所有人
有人能不能建议如何从微控制器 tm4c129xnczad 向 DAC ad5791发送20位数据。 我在 ssiconfigsetexpclk 中看到的数据仅为4至16位。 请告诉我如何操作
尊敬的所有人:
我正在使用 eval ad5791板并尝试与德州仪器的 tm4c129x 通信。 我正在通过串行接口(SSI)发送数据。 但我无法获得任何输出。 我已检查 VDD=14V VSS=-14、Vcc=3.3V iovcc=3.3V、LDAC=0、RESET =1 CLR=1、在这种情况下、LDAC 被并行地短接至 GND。 .reset 是 iovcc 短接。 CLR 处于逻辑1、我是
以8位模式发送数据、因此我在3个周期内发送数据。 在我第一次发送数据0x20012时。 然后是0x1ffff 以获得最大输出、但我无法获得任何输出。 请帮助我获取输出。 我随附了该代码
include "stdbool.h" #include "stdint.h" #include "gpio.h" #include "rom_map.h" #include "sysctl.h" #include "hw_memmap.h" #include "pin_map.h" #include "ipt32x2_duattrab.id_u32h ; 包含"tidt32nattr.ipt.id_u32nath #include "u32nattr.ipt.id_u32nath;包含"u32nattr.ipt.id.id_u32nath #t.id_u32nath #t.id_u32nath 和 ipt/ipt.id_u32nath #t.ipt.id.id.id.id.idt.id.idt.u32nath #include "u32nath;t.id.id.id.idt.idt.u32nath #t.id. void DAC_normal (void); void DAC_LDAC (void); #define GPIO_PA2_SSI0CLK 0x0000080F #define GPIO_PA3_SSI0FSS 0x00000C0F #define GPIO_PA4_SSI0RX 0x0000100F #define GPIO_PA5_SSI0TX 0x0000140F #define NUM_SSI_DATA 3 #define SYS_TICK 延迟10000 uint32_t ui32SysClock; void DAC_LDAC () { MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIO); MAP_GPIOPinTypeGPIOOutput (GPIO_PORTS_BASE、GPIO_PIN_7);//同步脉冲 MAP_GPIOPinTypeGPIOOutput (GPIO_PORTS_BASE、GPIO_PIN_6);//CLR 为高电平 MAP_GPIOPinWrite (GPIO_PORTS_BASE、GPIO_PIN_7、GPIO_PIN_7);//同步脉冲高电平 MAP_GPIOPinWrite (GPIO_PORTS_BASE、GPIO_PIN_6、GPIO_PIN_6); } void DAC_normal() { pui32DataTx = 0x200312; SSI_DATA (); // pui32DataTx = 0x400002; // SSI_DATA (); } void SSI_DATA () { pui32DataTx1= pui32DataTx & 0x0000ff; pui32DataTx2=(pui32DataTx & 0x00ff00)>> 8; pu32DataTx3=(pu32DataTx3=(pinu_pitu0_gpin0_gpitx) ;pini32_gpit_gpio0 (pin0_pin0_pin0_gpin0_gpioport);pin0_pin_pio0、pin0_ pui32DataTx3); MAP_GPIOPinWrite (GPIO_PORTS_BASE、GPIO_PIN_6、0);/SYNC 低电平 while (SSIBusy (SSI0_BASE)) { } SSIDataPut (SSI0_BASE、pui32DataTx2); while (SSIBusy (SSI0_BASE)) { } SSIDataPut (SSI0_BASE、pui32DataTx1); while (SSIBusy (SSI0_BASE)) { } SSIIntClear (SSI0_BASE、SSI_RXFF); MAP_GPIOPinWrite (GPIO_PORTS_BASE、GPIO_PIN_7、GPIO_PIN_7);//同步高 电平} int main (void) { ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |SYSCTL_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_320)、 10000000); SysCtlPeripheralEnable (SYSCTL_Periph_SSI0); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); GPIOPinConfigure (GPIO_PA2_SSI0CLK); GPIOPinConfigure (GPIO_PA3_SSI0FSS); GPIOPinConfigure (GPIO_PA4_SSI0RX); GPIOPinConfigure (GPIO_PA5_SSI0TX); DAC_LDAC (); MAP_GPIOPinWrite (GPIO_PORTS_BASE、GPIO_PIN_7、GPIO_PIN_7); GPIOPinTypeSSI (GPIO_Porta_base、GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2); SSIConfigSetExpClk (SSI0_BASE、SysCtlClockGet ()、SSI_FRF_MOTO_MODE_0、 SSI_MODE_MASTER、100000、8); SSIEnable (SSI0_BASE); DAC_NORMAL (); while (1) { pui32DataTx = 0x1fff; SSI_DATA(); } //返回0; }