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.

[参考译文] PGA308EVM:软件锁定模式- VOUT 在对寄存器进行编程后不启用

Guru**** 2468460 points
Other Parts Discussed in Thread: PGA308, PGA308EVM

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1400013/pga308evm-software-lock-mode---vout-not-enabling-after-programming-the-registers

器件型号:PGA308EVM
主题中讨论的其他器件:PGA308

工具与软件:

我正在尝试按照用户手册中图5-14中的流程图进行操作。

我将使用 Arduino Uno 驱动及 Vout_F 上的逻辑分析仪验证步骤。

寄存器读取和写入似乎按预期运行、但 Vout 似乎随后未启用。

我有几个问题:

1) 1)此模式是否需要在每次启动之前进行下电上电?

2) 2)是否需要在读取/写入 RAM 寄存器后禁用单线制(CFG2 D15 = 1)?

3) 3)为了成功使用此模式、除了提及"读取"或"写入"的步骤之外、我是否需要执行图5-14中所示的任何步骤(例如、我是否需要禁用校验和、启用单线制或禁用单线制超时)?

4) 4)即使我设置 DIS OUT = 0、单线读取和写入在此模式下是否仍然有效?  如果没有、那么在流程图的哪一点设置 DIS 是合适的?

如果有用、以下是逻辑分析仪的输出:

此致、

Rob

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

    为了跟进、下面是有关此特定应用的更多信息:

    跳线设置:

    1 - 1W 至 VOUT
    2 -固定 VREF
    3 -固定 VREF
    4 - 4.096V
    5 -内部 VREF
    6 -常闭
    7 - 1W 转换为1
    9 -常闭
    10 -常闭
    11 - VCLAMP
    13 - VOUT 至 XTR
    14 - VDUT
    15 - Vexc = VREF
    16 -外部 VCLAMP
    17 -外部
    18 -外部

    5V 的 VSUPPLY 连接到 T2处的 VCLMP EXT。

       对于所需的0.5V 至4.5V PGA308输出、VIN 范围为-5.979至-3.336mV

    代码片段(transactOneWire 参数是  initializationBytecommandByte、LSBDataByte 和  MSBDataByte:

    void buttonPress (){
     unsigned short int zDAC = 0xD5D3
     unsigned short int gDAC = 0x359F
     unsigned short int CFG0 = 0x0F07
     unsigned short int CFG1 = 0x0000
     unsigned short int CFG2 = 0x0800
     unsigned int sum1 = zDAC + gDAC;
     unsigned char binaryCarry = sum1 >>16 & 0x01
     unsigned short int sum1_c =(0xFFFF 和 sum1)+ binaryCarry;
     unsigned int sum2 = sum1_c + CFG0;
     BinaryCarry = sum2 >>16 & 0x01
     unsigned short int sum2_c =(0xFFFF 和 sum2)+ binaryCarry;
     unsigned int sum3 = sum2_c + CFG1;
     BinaryCarry = sum3 >>16 & 0x01
     unsigned short int sum3_c =(0xFFFF 和 sum3)+ binaryCarry;
     unsigned int sum4 = sum3_c + CFG2;
     BinaryCarry = sum4 >>16 & 0x01
     unsigned short int sum4_c =(0xFFFF & sum4)+ binaryCarry;
     unsigned short int checksum =~sum4_c;
     PORTD &=~0x20 // PGA308断电
     delay(10)
     PORTD |= 0x20 // PGA308加电
     delay(10)
     transactOneWire (0x550x040x00、0x28);
     TwoByteStruct TIFlag = transactOneWire (0x550xC0、0x00、0x00);
     transactOneWire (0x550x070x50、0x00); // SWL
     transactOneWire (0x550x000xFF 和 zDAC、zDAC >> 8);
     transactOneWire (0x550x010xFF 和 gDAC、gDAC >> 8);
     transactOneWire (0x550x020xFF 和 CFG0、CFG0 >> 8);
     transactOneWire (0x550x030xFF 和 CFG1、CFG1 >> 8);
     transactOneWire (0x550x040xFF 和 CFG2、CFG2 >> 8);
     // transactOneWire (0x55、0x05、0xFF 和校验和、校验和>> 8);
     // transactOneWire (0x55、0x04、0x00、0x08);
     serial.println ("TIFlag ="+ String (TIFlag. MSBDataByte << 8 | TIFlagLSBDataByte、hex));
     serial.println ("checksum ="+ String (checksum、hex));
     //延迟(2e3);
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Robert、感谢您为该问题提供了详尽的记录。  我今天将回顾您的问题、并在今天结束时得到解答。  很抱歉耽误你的时间。

    此致、艺术

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

    Robert

    1. PGA308EVM 具有响应 USB-DAQ-Platform 发送的所有命令的功能。
    2. 此功能可在"USB controls"下拉菜单"Debug USB"选项下找到。  按下 "Press for Debug"按钮。  这将回显发送到小调试窗口的所有命令。
    3. 使用此功能、您可以查看 PGA308EVM 软件发送到器件的单线命令。  
    4. 我启用该调试功能、清除初始命令、然后开始校准。  
    5. 对于校准中的每个步骤、 会写入前10个寄存器来配置器件。  因此、我的目标是在典型寄存器写入中查看发送的确切命令序列。
    6. 下面是校准过程第一步的调试工具的屏幕截图。
      1. 首次下电上电(CMD 关闭)
      2. 第二次供电开始循环、然后在单线制线路上进行通信。  这与图5-14中的第一步相对应。  这是通过 CMD WAKE_UP_ONE 完成的
      3. 然后寄存器7被写入(SFTC 寄存器)、软件锁定被启动(一个55 7 50 0)。
      4. 接下来写入寄存器0到 A。
    7. 项目6说明了如果您有一个来自 Vout 的单线路径、则进行通信所需的一切。  不过、在您的情况下、单线连接到 Vout。  因此、您必须执行以下额外步骤。
      1. 当单线连接到 Vout 时、放大器输出信号不能与通信同时处于活动状态。  如果发生这种情况、输出信号将引发数字通信。  因此、当器件上电时、输出在短时间 (25ms)内被禁用。  如果在25ms 周期内建立了通信、则放大器输出将保持禁用状态1秒。  在1s 周期后、如果校验和正确、PGA308将启用放大器输出。
      2. 启用放大器后、重新建立通信的唯一方法是循环通电。
    8. 建议使用单线制禁用、以避免意外与单线制接口通信(例如噪声或放大器输出转换)。   从技术上讲、在开发过程中、您应该不必使用此功能、但最终可能希望在器件配置为"写保护"器件后禁用单线制接口。  进行下电上电时、禁用功能不会激活。
    9. 您给了我很多信息。  我主要关注您的问题、没有检查您的代码的详细信息。  我假设您拥有 EVM、因为您提到了跳线设置。  我知道您正在使用 Arduino、但我想您可能希望在开发过程中、您可以定期使用 USB-DAQ 作为调试工具(或参考设计)。  如果这些信息有所帮助、或者您还有其他问题、请告诉我。

    此致、艺术  

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

    尊敬的 Art:

    谢谢您的提示。  我不知道 Cool USB 调试工具、我相信这将会证明是有用的。

    事实证明、驱动单线的引脚在寄存器读取/写入后恢复为高电平、从而将 Vout 线路保持为该逻辑高电压(不允许更改 Vout)。  现在一切都恢复正常和正常工作。

    周末愉快!

    此致、

    Rob

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

    尊敬的 Art:

    是否有任何操作模式在每次执行读/写时不需要下电上电?

    此致、

    Rob

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

    Rob、   

    如果保持单线线路与 Vout 之间的距离、则可以保持接口处于活动状态、而无需循环通电。  每当将单线连接到 Vout 时、就必须执行循环通电。

    此致、艺术