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:DAC 芯片81416 Init 函数和 Main 函数-待更新的寄存器名称和值

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

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1214459/dac81416evm-the-dac-chip-81416-init-function-and-main-function---register-name-and-values-to-be-updated

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

大家好!

我们正在开发一个 Cell 电压仿真器模块、该模块从 SPI 的数字输入输出模拟电压。

我们希望使用将该 DAC81416芯片与微控制器连接、以便通过 SPI 发送数字数据、并使用 DAC81416将其转换为模拟输出。

现在、我们需要您将寄存器列表向下发送、该列表要作为初始化功能的一部分进行编程/配置。

void Init_DAC_Chip (void)


00h NOP NOP 寄存器 =??
01h DEVICEID 器件 ID 寄存器= ??
02h STATUS 状态寄存器= ??
03h SPIC732 SPI 配置寄存器= ??
04h GENCONFIG 通用配置寄存器== ??
05h BRDCONFIG 广播配置寄存器= ??
06h SYNCCONFIG 同步配置寄存器=???
07h TOGGCONFIG0 DAC[15:8]切换配置寄存器=??
08h TOGGCONFIG1 DAC[7:0]切换配置寄存器=??
09h DACPWDWN DAC 断电寄存器=??
0Ah DACRANGE0 DAC[15:12]范围寄存器=??
0Bh DACRANGE1 DAC[11:8]范围寄存器 =??
0Ch DACRANGE2 DAC[7:4]范围寄存器=??
0Dh DACRANGE3 DAC[3:0]范围寄存器 =??
0Eh 触发触发寄存器 =??
0Fh Brdcast 广播数据寄存器 =???
10h DAC0 DAC0数据寄存器 =??
11h DAC1 DAC1数据寄存器  =??
12h DAC2 DAC2数据寄存器=??
13h DAC3 DAC3数据寄存器 =??
14h DAC4 DAC4数据寄存器 =??
15h DAC5 DAC5数据寄存器 =??
16h DAC6 DAC6数据寄存器 =??
17h DAC7 DAC7数据寄存器 =??
18h DAC8 DAC8数据寄存器 =??
19h DAC9 DAC9数据寄存器 =??
1Ah DAC10 DAC10数据寄存器 =??
1Bh DAC11 DAC11数据寄存器  =??
1通道 DAC12 DAC12数据寄存器 =??
1DH DAC13 DAC13数据寄存器 =??
1Eh DAC14 DAC14数据寄存器 =??
1Fh DAC15 DAC15数据寄存器=??
20h OFFSET0 DAC[14-15;12-13]差分偏移寄存器 =??
21h OFFSET1 DAC[10-11;8-9]差分偏移寄存器 =??
22h 偏移2 DAC[6-7;4-5]差分偏移寄存器 =???
23h OFFSET3 DAC[2-3;0-1]差分偏移寄存器 =??

}

我们还要求您列出在主函数期间将要更新的寄存器、以便将数字数据转换为模拟电压。

void DAC_SPI_Transmission _Chip (void) -在10mSec 时间环路中调用该函数。

有待更新

}

非常感谢

此致

Siva.

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

    尊敬的 Siva:

    1.请使用以下寄存器值 初始化 DAC81416

    00h NOP 寄存器 >>  0x0000
    01h DEVICEID 器件 ID 寄存器>> 忽略、它仅是读取寄存器
    02h STATUS 状态寄存器>>忽略、它仅是读取寄存器


    03h SPIC732配置寄存器>> 写操作  DEV-PWDWN bit = 0若要将器件设置为工作模式、请 根据您的要求设置其他位、否则使用默认值


    04h GENCONFIG 通用配置寄存器>>  WRITE  Ref-PWDWN  位= 0 如果外部基准 已连接、则  根据您的要求设置其他位、否则使用默认值

     
    05h BRDCONFIG 广播配置寄存器>> 时间 DACx-BrdCAST-EN  位设置为1时、相应的 DACx 会被设置为将其输出更新为 BRDCAST 寄存器中设置的值。 所有 DACx 通道必须配置为单端模式才能进行广播。 如果一个或多个输出被配置为差分模式、此广播模式将被忽略。 当清零时、相应的 DACx 输出不受 BRDCAST 命令的影响


    06h SYNCCONFIG 同步配置寄存器>>  while  DACx-SYNC-EN  位设置为1时、相应的 DACx 输出设置为更新以响应 LDAC 触发器(同步模式)、当 设置为0时、相应的 DACx 输出设置为立即更新(异步模式)。


    07h TOGGCONFIG0 DAC[15:8]切换配置寄存器>>忽略、仅 用于切换模式
    08h TOGGCONFIG1 DAC[7:0]切换配置寄存器 >>它仅 用于切换模式


    09h DACPWDWN DAC 断电寄存器>> WRITE DACx-PWDWN  位 = 0以  在激活模式中设置 DACx 通道
    0Ah DACRANGE0 DAC[15:12]范围寄存器>>设置的输出范围 DAC 通道3;  

                                             > 0000 = 0至5V、

                                             > 0001 = 0至10V

    > 0010 = 0至20V、

    > 0100 = 0至40 V、

    >1001 =-5V 至+5V、

    >1010 =-10 V 至+10 V、

    > 1100 =-20V 至+20V、

    > 1110 =-2.5V 至+2.5V、

    >所有其他:无效


    0Bh DACRANGE1 DAC[11:8]范围寄存器 >> 设置的输出范围  DAC 通道2;  

                                             > 0000 = 0至5V、

                                             > 0001 = 0至10V

    > 0010 = 0至20V、

    > 0100 = 0至40 V、

    >1001 =-5V 至+5V、

    >1010 =-10 V 至+10 V、

    > 1100 =-20V 至+20V、

    > 1110 =-2.5V 至+2.5V、

    >所有其他:无效


    0Ch DACRANGE2 DAC[7:4]范围寄存器>>  设置的输出范围  DAC 通道1;  

                                             > 0000 = 0至5V、

                                             > 0001 = 0至10V

    > 0010 = 0至20V、

    > 0100 = 0至40 V、

    >1001 =-5V 至+5V、

    >1010 =-10 V 至+10 V、

    > 1100 =-20V 至+20V、

    > 1110 =-2.5V 至+2.5V、

    >所有其他:无效


    0Dh DACRANGE3 DAC[3:0]范围寄存器 >>  设置的输出范围  DAC 通道0;  

                                             > 0000 = 0至5V、

                                             > 0001 = 0至10V

    > 0010 = 0至20V、

    > 0100 = 0至40 V、

    >1001 =-5V 至+5V、

    >1010 =-10 V 至+10 V、

    > 1100 =-20V 至+20V、

    > 1110 =-2.5V 至+2.5V、

    >所有其他:无效


    0Eh 触发触发寄存器>> 根据您的要求设置触发位、否则使用默认值(有关更多详细信息、请查看数据表)


    0Fh BRDCAST 广播数据寄存器>>向 BRDCAST 寄存器写入内容会强制已在 BRDCONFIG 寄存器中设置为广播的 DAC 通道将其数据寄存器更新到 BRDCAST 数据寄存器、否则忽略


    10h DAC0数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    11h DAC1数据寄存器>>对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    12h DAC2数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    13h DAC3数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    14h DAC4数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    15h DAC5数据寄存器 >> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    16h DAC6数据寄存器 >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    17h DAC7数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    18h DAC8数据寄存器 >> 对此寄存器进行写入将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    19h DAC9数据寄存器 >> 对此寄存器进行写入将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1Ah DAC10数据寄存器 >> 写入此寄存器将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则请忽略
    1Bh DAC11数据寄存器  >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1CH DAC12数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1DH DAC13数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则将忽略
    1Eh DAC14数据寄存器 >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1Fh DAC15数据寄存器 >> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略

    20h OFFSET0 DAC[14-15;12-13]差动偏移寄存器>> 忽略、它仅 适用于差分 模式(有关更多详细信息、请查看数据表)
    21h OFFSET1 DAC[10-11;8-9]差动偏移寄存器 >> 忽略、它仅 适用于差分 模式(有关更多详细信息、请查看数据表)
    22h Offset2 DAC[6-7;4-5]差动偏移寄存器 >> 忽略、仅 适用于差分 模式(有关更多详细信息、请查看数据表)
    23h OFFSET3 DAC[2-3;0-1]差分偏移寄存器 >> 忽略、它仅 适用于差分 模式(有关更多详细信息、请查看数据表)

    2.请 为主循环使用以下寄存器值将 DAC 代码转换为 DAC81416的电压

    a.对于广播模式更新:

    0Fh BRDCAST 广播数据寄存器>>向 BRDCAST 寄存器写入内容会强制已在 BRDCONFIG 寄存器中设置为广播的 DAC 通道将其数据寄存器更新到 BRDCAST 数据寄存器、否则忽略

    b. 对于 正常 模式更新:

    10h DAC0数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    11h DAC1数据寄存器>>对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    12h DAC2数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    13h DAC3数据寄存器>> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    14h DAC4数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    15h DAC5数据寄存器 >> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    16h DAC6数据寄存器 >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    17h DAC7数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    18h DAC8数据寄存器 >> 对此寄存器进行写入将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    19h DAC9数据寄存器 >> 对此寄存器进行写入将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1Ah DAC10数据寄存器 >> 写入此寄存器将强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则请忽略
    1Bh DAC11数据寄存器  >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1CH DAC12数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1DH DAC13数据寄存器 >> 写入此寄存器会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则将忽略
    1Eh DAC14数据寄存器 >> 对该寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略
    1Fh DAC15数据寄存器 >> 对此寄存器进行写入会强制 DAC 通道更新其数据寄存器数据、从而更新 DAC 输出、否则忽略

    如需更多说明、请告诉我、或者  有关更多详细信息、请参阅 DAC81416的数据表。

    谢谢。

    Sanjay

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

    你好、Sanjay

    我希望您做得非常好。 非常感谢您提供宝贵意见。  

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

     

    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详细讨论。

     

    快速请求。 我们已在 S32K144 MCU 中将 SPI 配置为主器件并 通过 SPI 与 DAC81416EVM 连接。

     S32K144 MCU 被配置为每帧32位的 SPI 主器件、DAC81416被配置为每帧24位的 SPI。 禁用 CRC 机制。

    我们该如何处理这种情况呢? MCU 主器件应仅发送24位数据或32位数据、在 MSB (8位)中附加零、或在 LSB (8位)中附加零的32位数据。 请帮助我们尽早解决此问题。

    如果我们可以解决每帧24位的此问题、我们很乐意继续。  

     如果不是、我们想要使用32位帧以及 CRC 校验机制、我们需要将 CRC 与数据一起发送吗? 现在、我会请求您共享用于计算 CRC 的 C 代码/函数。

    计算出 CRC 后、我们可以打包新的32位帧并通过 SPI 将其发送至 DAC 模块 DAC81416EVM。

    非常感谢、

    此致

    Siva.

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

    尊敬的 Siva:

    我们可以通过一个快速调试会话来更好地了解问题吗?

    平均时间、我将研究这个问题、并尝试找出在这种情况下可能会出现的问题。

    此致、

    Sanjay