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.

[参考译文] TLV571:CR0中设置了SWPWDN位的TLV571将不工作(断电模式不正常)

Guru**** 1740850 points
Other Parts Discussed in Thread: TLV571, TLC5510A, ADS7884
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/626272/tlv571-tlv571-with-swpwdn-bit-set-in-cr0-will-not-work-powerdown-mode-not-normal

部件号:TLV571
主题中讨论的其他部件: TLC5510AADS7884

我使用出色的TLV571芯片构建了一个示波器。

使用正常关机后效果良好,但我无法使软件关机正常工作。

正常关机寄存器设置:

Int OSC FAST,二进制

CR1:B101万

软件启动(D5),EOC (D4), 内部时钟(D3), 正常(D2)

CRO:B11万

我在CRO之前写入CR1,使用双向端口(C)的前3位来控制读取(位2),写入(位1)和cs (0)行:

我等待转换线的末尾在完成时到达高位

CLI ();
PORTC = B0.011万;//读数高,WR高,CS低
__ASM__("nop\n\t"); //等待一个机器循环(16 MHz)
                    //产生62.5 ns (纳秒)延迟
PORTC = B0.01万;//读数高,WR低,CS低
_ASM__("nop\n\t");
PORTC = B0.011万;//读取高,WR高,CS低-传输数据
_ASM__("nop\n\t");
 while ((PINC & econ)== 0);//等待econ高
SEI();

所有这些都工作正常,可以使用控制端口(C)读取数据,以便从端口(Pina)读取数据:

PORTC = B0.001万;// RD低,WR高,CS低
PORTC = B0.011万;// RD高,WR高,CS低
   //等待econ提高
   while ((PINC & econ)==0);
测试= Pina;

这是可行的。 (实现1189.1 KHz的数据速率)

但是,自动复位习惯是在等待输入触发时启动,使TLV571中的前2个数据字节不可用。

(数据表中提到了两个读数问题)

我可以通过不断地轮询ADC来绕过这个部分。 但这并不理想。

我尝试更改cr0以禁用自动关机。

B11.01万 // cr0 软件启动(D5),EOC (D4),内部时钟(D3),软件断电(D2)

然后,ADC返回常量值。

我不知道为什么。

有什么想法?

David

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

    您好,David:

    它在数据表中提到,如果转换后一个时钟没有RD,它将进入自动断电模式。  您能否尝试一下,看看它是否有帮助?

    Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。
    是的,我也读过这段话,并决定不清楚它是指第高还是第低。
    那么...
    等待比较器创建中断时,当源达到触发级别并具有正确的方向时:
    我试过...
    1)保持低档。
    2)保持在高位

    在触发中断和开始数据收集时,这两种方法都产生了相同的结果- 2假初始数据样本。
    因此,我在中断挂起时就开始轮询数据。
    (前两个要点可以,正如您在我的屏幕截图中看到的那样,但与后面的要点不一致)

    这就是为什么我看了不是正常的断电选项,它似乎一直是ADC开,直到CS低电平为止。
    但是,设置SWPWDN位时,我无法从ADC获取任何数据。
    谢谢,
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,David:

    如图5和图7所示,如果脉冲高到(低到高) RD线会发生什么情况。

    Mike
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Mike:
    图7是我的实现。
    我的设置写入了寄存器CR0和CR1,然后将CS LOW和WR LOW写入HIGH,同时保持RD HIGH。
    这是根据数据表进行的第一次转换。
    始终从先前的ADC转换开始高电平。
    RD被切换为从低到高(现有高)。
    我总是让CS保持低。
    这一切都在1.1891 MHz下工作1000个数据点
    当EOC高电平时,我会进行下一个采样,因此在1000个数据采样期间不会自动关闭。
    我需要做的是防止在等待硬件触发时自动关机。

    您对SWPWDN位的使用有什么想法吗? ——我对手册的不满意,没有任何评论。

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

    您好,David:

    从我对数据表的读数来看,如果SWPWDN为0 (正常模式),则部件将查看RD以确定何时关闭。  如果转换后一个时钟没有RD,它将自动关闭电源。  您能否尝试一下,一旦EOC变为高脉冲,RD针脚将变为低电平,然后又恢复为高电平,看看这是否有帮助?  

    另一个选项是,如果SWPWDN为1 (断电模式),则通过将CS拉至DVDD直接控制断电。

    我无法找到数据表中显示断电后第一次转换已损坏的区域。  请你向我指出这一点吗?

    Mike

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

    您好,Mike:

    正如我刚才所说,“平机会一高,我便抽取下一个样本”

    这是我的投票解决方案。

    SWPWDN =1的问题是,TLV571在设置时始终返回固定的数字。

    (断开电源后的数字不一定相同)

    我在数据表中找不到一个引用来建议在设置SWPWDN时必须执行的其他操作-

    芯片的内部编码很可能存在故障,或者您可能可以访问其他详细信息?

    关于第 12页上的无效读数:CF开机和初始化:

    谢谢,

    David

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

    我也不能仅从阅读数据表中回答您的问题。 我已经请一些过去支持此零件的工程师看看他们是否知道答案。 如果他们有任何答案,我会告诉您。

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

    一位在多年前与零件合作的工程师说,使用软件关闭的正确方法是设置SWPWDN = 1,然后将CS设为高。 我们还不能弄清楚为什么设置了固定号码。 当SWPWDN = 1和CS = 0时,您获得该值? 遗憾的是,我们无法访问此芯片的内部属性,因为它是很久以前设计的。

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

    您好,Mike:

    首先,我感谢你努力解决这一问题。

    我在CR0设置过程中尝试了CS状态的变化,但没有成功。

    (更像是在没有河床地图的情况下钓鱼,或者知道要瞄准哪条鱼!)

    这适用于正常模式:

    //将数据端口设置为在端口"Porta"上输出

    //设置控制线路c0-C2输出,c0 = CS,C1 = WR,C2 = RD (端口"PORTC"上)

    字节CR1 = B101万;
    Porta = CR1;

    CLI();//禁用interupts
    PORTC = B110;//读数高,WR高,CS低
    __ASM__("nop\n\t"); //等待一个机器周期(16 MHz) ,产生62.5 ns (纳秒)延迟
    PORTC = B100;//读数高,WR低,CS低
    _ASM__("nop\n\t");
    PORTC = B110;//读高,WR高,CS低-传输数据
    _ASM__("nop\n\t");
     while ((PINC & econ)== 0);//等待econ高
    SEI();//启用中断

    CR0 = B11万

    Porta = cr0;

    CLI ();
    PORTC = B110;//读数高,WR高,CS低
    _ASM__("nop\n\t");

    PORTC = B100;//读数高,WR低,CS低
    _ASM__("nop\n\t");
    PORTC = B110;//读高,WR高,CS低-传输数据
    _ASM__("nop\n\t");
     while ((PINC & econ)== 0);//等待econ高
    SEI();

    DDRA = B0万;现在输入数据端口
    测试= Pina;//从端口获取数据

    serial.print (F ("测试读取"));
     用于(字节I = 0;i < 10;I++){
     PORTC = B0.001万;// RD低,WR高,CS低
     PORTC = B0.011万;// RD高,WR高,CS低
     //等待econ提高
       while ((PINC & econ)==0);
     测试= Pina;
     serial.print("");serial.print(test);
     }

    以方波作为源的输出:

    测试读取 9 9 9 52.48249251亿 9 9 8

    工作!

    带cr0 = B11.01万

    输出:

    测试读数 为2492.49249249亿 249 2492.49249249亿 2492.49249249亿 24.9249万

    修复了非本地数据

    我试过

    1)在写入循环后将所有控制线路发送到高位

    2)在写入周期中切换高:

    CLI ();
    PORTC = B110;//读数高,WR高,CS低
    _ASM__("nop\n\t");

    PORTC = B100;//读数高,WR低,CS低
    _ASM__("nop\n\t");
    PORTC = B111;//读高,WR高,CS高-传输数据
    _ASM__("nop\n\t");
     while ((PINC & econ)== 0);//等待econ高
    SEI();

    3)在数据读取过程中保持CS高电压

    结果:(B1111.1001万)

    测试读数 为2492.49249249亿 249 2492.49249249亿 2492.49249249亿 24.9249万

    对于特定控制线路流结构的任何建议,我们都将不胜感激。

    此致,

    David

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

    从您对代码和结果的描述来看,似乎有两种不同的断电类型。 看起来,当1写入CR0的D2时,该部件立即断电,不会返回结果。 看起来此断电模式持续到将0写入CR0的D2。
    第二种断电类型是当CR0的D2设置为0时。 此模式下有两种断电版本。 一种是进行读数,而不是在转换后让RD出现一个时钟周期。 另一种方法是将CS拉至DVdd。
    可以通过查看电源电流并尝试每种断电方式来测试此情况。 正常电源电流介于4至7 mA之间,具体取决于电源和时钟。 当您尝试每种方法时,您都应该看到电流下降。

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

    您好,Mike:

    我同意你的描述。 这是我在发布问题时得出的结论。

    我无法检查 电路板以测量电源电流。

    正如我在上文详述的,除了防止自动关机外,没有其他方法。

    循环RD线。

    在CR0中设置D2是一个毫无意义的选项-我怀疑D2 =1之后从ADC数据行返回的重复数字只是设置D2时写入数据行的最后一个值。

    因此,我继续。

    是否存在至少 具有1.2 MSPS且具有更近的谱线的并行5V参考ADC?

    我看的TLC5510A具有20Msps和最大参考电压4V -不理想。

    此致,

    David

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

    您好,David:

    TLC5510A是离您的要求最近的设备。  如果您能够转至SPI接口而不是并行接口,则可以使用其他一些选项,如ADS7884。

    Mike

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

    谢谢Mike。