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.

[参考译文] DAC81416EVM:DAC81416EVM - DAC/SPI 配置

Guru**** 2535750 points
Other Parts Discussed in Thread: DAC81416

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1216723/dac81416evm-dac81416evm---dac-spi-configuration

器件型号:DAC81416EVM
主题中讨论的其他器件:DAC81416

您好!

 

我想为您提供更多关于我们现在正在观察的项目和问题的信息。

 

  1. 我们使用与 TI DAC 芯片 DAC81416连接的 NXP MCU S32K144来开发电池电压仿真模块。
  2. 我们使用 S32K144EVM-Q100评估板、它通过 SPI 与我们的 DAC81416EVM 板连接。
  3. SPI 驱动程序在微控制器模块上作为主器件工作正常。
  4. 我们已将 SPI 模块配置为主器件、将芯片选择配置为低电平有效、并在微控制器模块中的 SCK 低电平有效期间对数据计时以及每帧32位数据计时
  5. 下面是主微控制器中作为主控制器的 SPI 配置。

常量 lpspi_master_config_t lpspi_0_MasterConfig0 ={

 .bitsPerSec = 1000000UL、

 .whichPcs = LPSPI_PCS1、

 .pcsPolarity = LPSPI_ACTIVE_LOW、

 .isPcsContinuent = false、

 .bitcount = 32u、

 .lpspiSrcClk = 8000000UL、

 .clkPhase = LPSPI_CLOCK_PHASE_2ND_EDGE、

 .clkPolarity = LPSPI_SCK_ACTIVE_LOW、

 .xlsbFirst = false、

 .transferType = LPSPI_Using_interrupts、

 .rxDMAChannel = 0u、

 .txDMAChannel = 0u、

 .ccallback = NULL、

 .callbackParam = NULL

};

  1. 以下寄存器用于配置 SPI (每帧24位)并通过 DAC0通道发送数据、以将数字数据转换为模拟电压。  它不能正常工作。 TP12不提供内部基准电压。

#define SPICXit 0x00030004u                

#define GENCONFIG               0x00043F00u

#define BRDCONFIG               0x00050000u

#define SYNCCONFIG              0x00060000u

#define TOGGCONFIG0             0x00070000u

#define TOGGCONFIG1             0x00080000u

#define DACPWDWN                 0x00090000u

#define DACRANGE0               0x000A0000u

#define DACRANGE1               0x000B0000u

#define DACRANGE2               0x000C0000u

#define DACRANGE3               0x000D0000u

#define 触发器                  0x000E0000u

#define BRDCAST                  0x000F0000u

#define OFFSET0                  0x00200000u

#define 偏移1                  0x00210000u

#define 偏移2                  0x00220000u

#define OFFSET3                  0x00230000u

  1. 由于首先发送 MSB (在最后一个字节附加零)、因此更新以下寄存器 以配置 SPI 并通过 DAC0通道发送数据、从而将数字数据转换为模拟电压。 它不能正常工作。 TP12不提供内部基准电压。

#define SPICX703000400u                

#define GENCONFIG               0x043F0000u

#define BRDCONFIG               0x05000000u

#define SYNCCONFIG              0x06000000u

#define TOGGCONFIG0             0x07000000u

#define TOGGCONFIG1             0x08000000u

#define DACPWDWN                 0x09000000u

#define DACRANGE0               0x0A000000u

#define DACRANGE1               0x0B000000u

#define DACRANGE2               0x0C000000u

#define DACRANGE3               0x0D000000u

#define 触发器                  0x0E000000u

#define Brdcast                  0x0F000000u

#define OFFSET0                  0x20000000u

#define 偏移1                  0x21000000u

#define 偏移2                  0x22000000u

#define OFFSET3                  0x23000000u

  1. 类似地、数据以两种格式发送、输出引脚上的电压不可用。

#define DAC0                     0x00103FFFU

#define DAC1                     0x00117FFFU

#define DAC14                    0x001EBFFFU

#define DAC15                    0x001FFFFFU

 

#define DAC0                     0x103FFF00u

#define DAC1                     0x117FFF00u

#define DAC14                    0x1EBFFF00u

#define DAC15                    0x1FFFFF00u

  1. 很明显、SPI 驱动器在每帧32位的微控制器中充当主器件。 我们无法对 DAC81416进行配置、无法通过 SPI 发送数据、也无法在输出引脚上看到模拟电压。
  2. MCU 配置为每帧32位、DAC 配置为每帧24位。  请如何处理 MCU 和 DAC 芯片之间的帧(位数)长度差异?

 

请帮我解决这个问题。 如果您有空、我们可以召开团队会议以更好地展示此问题。 也请拨打我的手机+44 7934 466587详细讨论。

 

非常感谢

此致

Siva.