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.

The Chip don't Reset when pin PORz go LOW in Linux!

Other Parts Discussed in Thread: TPS65217

The Chip don't Reset when pin PORz go LOW in Linux!
my PCB AM335x ZCZ PORz signal is driver by power supervisor chip TPS3707-33D,
when i push the MR_n pin of TPS3707-33D to GND, RESET_n pin of TPS3707-33D got an 200mS Low Pluse.
if this happen in U-boot running, the chip will reset,u-boot restart,this is ok;
but if this happen in Linux running, the chip just HALT,u-boot don't restart! what's wrong?

any guys can test this on BeagleBone or BBB,force PMIC_PGOOD signal low when running linux?

see what happen next.

PORz是AM335x的全局复位输入,如果此信号变低,CPU应该复位,但我的测试发现在U-boot下,这个有效(CPU重启,重新进入uboot),但在linux下却不行(死机,但示波器看到A10管脚WARMRST_n跟随PORz,一起变低,随后变高)

我在http://e2e.ti.com提问了相同的问题

http://e2e.ti.com/support/arm/sitara_arm/f/791/t/333946.aspx

  • 想先问一下,有没有测试过warmreset这个管脚,将其拉低能不能reset芯片?

  • 我是这么理解的,PORZ是配合AM335x上电时序的cold reset,如果所有电压都正常上电的情况下去单独控制这个信号给AM335x一个cold reset,这是不符合上电时序的,我认为会导致芯片不稳定。

    我之前尝试过在starterware环境下去拉低这个信号,也能reset芯片,但是我怕导致不稳定,最终还是去reset PMU,如TPS65217,让AM335x系统整个重新上电,起到一个cold reset的作用。

  • warmreset可以在linux下复位CPU

  • 在linux下是提醒是否需要重启吧,不是立即进入重启,有个选择和等待的过程

  • 与此无关,既然PORz是硬件复位,CPU是被硬件复位的,应该去执行其片内的ROM Code。

    有谁能试试BeagleBone  BBB,飞线PMIC_PGOOD,进入linux后,PMIC_PGOOD碰GND一下,看CPU是否重启,或者是CPU死机了。

  • 梁工,能提供详细的应用场景吗?

  • 我补充一点,在我之前做的测试,是在beaglebone上将PORZ拉低测试的,跑的starterware,测了10次左右,每次都是能够正常重启的

  • 我的场景:

    1.我的电源拓扑是:

    +5V ----> DC_DC_1  ---> 1.8V
         |                      |
         |                      \--> LDO --> 1.1V
         \--> DC_DC_2  ---> 3.3V

    DC_DC1 enable by +5V,DC_DC2 enable by 1.8V,LDO enable by 3.3V. there is an Supercapacitor on +5V

    一片TPS3707-33D工作在3.3V上,其RESET_n接到AM335x的PORz上,

    由TPS3707-33D的DATASHEET可知,其threshold voltage是2.93V,当VDD小于该值时,TPS3707-33D的RESET_n会输出200ms的有效信号。在上电过程中从5V加进来到所有电压都正常仅仅需要10mS时间,因此200mS作为PORz没有问题。(参照SPRS717F Figure 4-2. Alternate Power-Supply Sequencing with Dual-Voltage IOs Configured as 3.3 V)

    2.出现的问题:



    由于+5V上有法拉电容,在+5V外部供电关断后,法拉电容会维持整个CPU系统工作约1秒的时间,如果我快速关断--闭合+5V外部供电,3.3V的会下跌而导致产生PORz有效信号(注意:这时3.3V的电压并不低,看图中a测量线处,3.3V是3.02V左右,而1.8V也正常,1.1V是从1.8V通过LDO来的,必然也没有下降),但这个复位信号并没有使得CPU复位,而是死机状态。唯有彻底掉电后,再上电才能正常。而由于法拉电容的存在彻底掉电需要10秒。也就是说在10秒内及时+5V再给电,系统也还是死机状。这个跟我的设计意图不一致,原来的意图是:PORz是全局复位信号,只要该信号有效,并且所有供电上电完毕,那么CPU会重新运行。

    注意:在http://e2e.ti.com/support/arm/sitara_arm/f/791/t/333946.aspx的提问中,Biser Gatchev-XID说可能跟SYSBOOT引脚有关,我后来的测试觉得未必有关

    一开始提问时,我的U-boot没有打开LCD显示,但SYSBOOT对应引脚被设置成LCD_DATA[0:15],其后启动的Linux是会有显示的。

    Biser Gatchev-XID认为可能跟CPU采样SYSBOOT管脚未正常有关,我后来把SYSBOOT5上拉,测试CLKOUT1作为辨别SYSBOOT采样是否正常的,发现PORz上升沿位置CLKOUT1有24MHZ输出。由此推测SYSBOOT采样是正常的。

    但后来我把U-boot的显示功能打开,发现PORZ复位会导致死机。(此前是Uboot没显示,PORz复位,CPU重启)

    3.我的提问改为:

    AM335x在所有电源均正常时,PORz信号出现一个200mS低脉冲,AM335x的响应是什么?其内部逻辑如何响应?是否会可靠重启?


  • 我认为:

    1. SYSBOOT那些引脚设置和U-boot有没有使能LCD没什么关系。您可以做个实验,看看在Linux环境下用warm_reset重启系统看看是否和掉电上电之后的正常启动是一样的。

    2. PORZ的持续低电平,应该是一种状态未知的不可靠重启。

  • 你好,

     从示波器来看,你的3.3V的电压在一段时间内低到并维持3.02V,这个值低于VDDSHV6域实际要求范围(3.14V-3.47V),对于CPU端来讲,有可能它会认为这个属于POWER ON RESET的下降沿时间太长,所以导致整个RESET 失败。

    你是否可以修改电路将这个3.3V电压提高到要求范围之内,然后再做测试,看看是否会有改善。

    另外,你提到的复位内部逻辑,你可以参考TRM 8.1.7 reset management.

  • 我也遇到了这种问题,uboot下按复位键每一次都可以重启,linux跑起来以后第一次按复位键不行,再按一次就可以复位了。有解决办法吗?

    注:只有这批新焊接的板子有这种问题,以前的板卡是没问题的,现在的am335x是800MHz的,应该是2.1版本的,以前720MHz的就没这种问题。

    更奇怪的是linux下用reboot命令复位板卡也会出现死机的现象,必须再按一下复位键。

x 出现错误。请重试或与管理员联系。
x 出现错误。请重试或与管理员联系。