搜索
bottom↓
回复: 20

28335复位电路请教,偶尔会上电不工作。

[复制链接]

出0入0汤圆

发表于 2015-4-6 15:51:33 | 显示全部楼层 |阅读模式
本帖最后由 金色大元宝 于 2015-4-6 15:53 编辑

编辑原因,增加官方原理图,以供对照

28335上电复位电路请教,根据官方的原理图改编而来,但发现会随机出现上电不工作的情况,用的是30M有源晶振。
不工作的时候,示波器测试晶振输入脚30M没问题。CLKOUT脚,工作的时候正常输出37.5M,不工作的时候输出是3.75M,

不工作的情况是随机的,没有明显规律。

使用的复位是TPS767D301复位。

附部分原理图。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2015-4-6 16:12:06 | 显示全部楼层
我以前遇到过同样现象,28335上电不工作,后来我将30MHZ的有源晶振换成16MHZ的有源晶振就好了,直到现在没想明白咋回事

出0入0汤圆

 楼主| 发表于 2015-4-6 16:26:16 | 显示全部楼层
596142041 发表于 2015-4-6 16:12
我以前遇到过同样现象,28335上电不工作,后来我将30MHZ的有源晶振换成16MHZ的有源晶振就好了,直到现在没 ...

不是每次不工作,10次上电,可能会有1次不工作。和开关机长短,开关机频率都没有明显关系。随机出现。

出0入0汤圆

 楼主| 发表于 2015-4-6 16:46:49 | 显示全部楼层
最新发现, 上电不工作的时候,CLKOUT也是37.5M,那表示芯片复位成功,FLASH程序未执行吗?

出0入0汤圆

发表于 2015-4-6 18:59:31 | 显示全部楼层
我用BGA的lpc4357也出现过这种情况,100次有一次复位不成功,后来换了芯片

出0入0汤圆

发表于 2015-4-6 20:34:39 | 显示全部楼层
你的那个复位的电容估计是小了,一般得1uf以上吧,记得有个文档上要求是10uf,我现在都是用的10uf,没有遇到问题。

出0入0汤圆

发表于 2015-4-6 20:36:06 | 显示全部楼层
电容太小了,复位的低电平宽度不够,内核可能反应不过来。

出0入0汤圆

 楼主| 发表于 2015-4-6 20:46:43 | 显示全部楼层
zhandouji 发表于 2015-4-6 20:36
电容太小了,复位的低电平宽度不够,内核可能反应不过来。

您说的是c36吗?我记得复位电容是用在rc复位和手工复位的,这里的c36是参考官方原理图,个人认为是过滤尖峰脉冲的,不知道是不是我理解错误,

还有一点,我在dsp的去藕电容里,3.3和1.9各加了一个22uf的钽电容,增加电源稳定性,不知道对复位有没有影响

明天把钽电容拆了,c36加大试试

出0入0汤圆

发表于 2015-4-6 22:06:26 | 显示全部楼层
28335的复位管脚上要有个大一点的电容,如果你的电路上只有这个C36,那可能就是问题所在了。

出0入0汤圆

 楼主| 发表于 2015-4-7 05:30:41 | 显示全部楼层
本帖最后由 金色大元宝 于 2015-4-7 05:43 编辑
zhandouji 发表于 2015-4-6 22:06
28335的复位管脚上要有个大一点的电容,如果你的电路上只有这个C36,那可能就是问题所在了。 ...


只有这一个呢,今天改成大电容试试

出0入0汤圆

 楼主| 发表于 2015-4-7 08:55:41 | 显示全部楼层
一上班就测试了。C36加大为10uF,不工作状态频率反而加大了。拆掉钽电容,区别不大。

怀疑是FLASH执行问题,在main函数第一行,插入强制延时1秒程序。 有改观,原先大概10几次会死机一次。现在30几次才会偶尔来一次。

而且上电不工作的时候,延时程序还是执行的。

出0入0汤圆

 楼主| 发表于 2015-4-7 09:10:56 | 显示全部楼层
应该和硬件电路没多大关系了。刚刚怀疑软件问题,把所有代码都精简。只开一个CpuTimer0中断,用来闪烁运行灯。开关机100次。没发现不工作的情况。

那要慢慢查了。把代码和中断挨个开起来,看看哪部分会引起这个问题。

出0入0汤圆

发表于 2015-4-7 09:34:45 | 显示全部楼层
金色大元宝 发表于 2015-4-7 08:55
一上班就测试了。C36加大为10uF,不工作状态频率反而加大了。拆掉钽电容,区别不大。

怀疑是FLASH执行问题 ...

我之前也遇到过上电不工作的情况,10个板子里有3个板子是上电有时会遇到不工作,但是另外几个一直都是正常的,啥换电容啊,换复位芯片啊,都试过都不能解决,
我也怀疑过软件的问题,但是想不到软件上哪里会导致上电不正常工作,而且其他几个板子都是一直正常的啊

出0入0汤圆

发表于 2015-4-7 09:36:33 | 显示全部楼层
金色大元宝 发表于 2015-4-7 08:55
一上班就测试了。C36加大为10uF,不工作状态频率反而加大了。拆掉钽电容,区别不大。

怀疑是FLASH执行问题 ...

既然延时程序都执行了那么程序上电就跑起来了,看不到程序工作的现象,说明程序跑死了

出0入0汤圆

 楼主| 发表于 2015-4-7 09:40:43 | 显示全部楼层
xiaowenshao 发表于 2015-4-7 09:36
既然延时程序都执行了那么程序上电就跑起来了,看不到程序工作的现象,说明程序跑死了 ...

是的。正在挨个查,XINTF,SCI, EPWM,挨个启用。看看是哪里的问题。

出0入0汤圆

发表于 2015-4-7 09:45:40 | 显示全部楼层
金色大元宝 发表于 2015-4-7 09:40
是的。正在挨个查,XINTF,SCI, EPWM,挨个启用。看看是哪里的问题。

坐等你成功

出0入0汤圆

 楼主| 发表于 2015-4-8 10:34:02 | 显示全部楼层

问题找到了,程序跑死的问题,,出现在XINTF, 上电后会有XINTF外部SRAM的自检工作,会卡死在那里,麻烦帮我分析下,怎么提高XINTF的存取成功率?

  1. void RAM_Test(void)
  2. {
  3.         volatile Uint16 *RAM_Addr;
  4.         volatile Uint16 j;
  5.         volatile Uint32 i;
  6.         RAM_Addr=(volatile Uint16 *)0x100000;        //SRAM起始地址

  7.         for(i = 0; i < 0x4000; i++){                //检测32K
  8.                 *(RAM_Addr + i) = 0x5555;                //
  9.                 for(j=0;j<10;j++){asm(" NOP");}        //延时
  10.                 //此处有加调试LED灯,上电卡死的时候不会执行到此处,应该是赋值的时候就卡死了。
  11.         }
  12.         for(i = 0; i < 0x1000; i++){                //检测32K
  13.                 if(*(RAM_Addr + i) != 0x5555){        //检测不同,则自检不通过
  14.                         b_MacCheckResult = 1;break;
  15.                 }
  16.                 for(j=0;j<10;j++){asm(" NOP");}        //延时
  17.         }

  18. }
复制代码


附SRAM原理图,难道是电容不够大?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-4-8 10:36:39 | 显示全部楼层
SRAM存取速率应该没问题的,测试的时候增加调快过ACTIVE等参数。计算过耗时时钟,都可以正确存取。

  1. // Zone 6------------------------------------
  2.     // When using ready, ACTIVE must be 1 or greater
  3.     // Lead must always be 1 or greater
  4.     // Zone write timing
  5.     XintfRegs.XTIMING6.bit.XWRLEAD = 3;                //默认 3,   //2  //选择后面这个数值,SRAM存储速度加快一倍。
  6.     XintfRegs.XTIMING6.bit.XWRACTIVE = 7;        //默认 7,   //4
  7.     XintfRegs.XTIMING6.bit.XWRTRAIL = 3;        //默认 3,   //2
  8.     // Zone read timing
  9.     XintfRegs.XTIMING6.bit.XRDLEAD = 3;                //默认 3,   //2
  10.     XintfRegs.XTIMING6.bit.XRDACTIVE = 7;        //默认 7,   //4
  11.     XintfRegs.XTIMING6.bit.XRDTRAIL = 3;        //默认 3,   //2

  12.     // double all Zone read/write lead/active/trail timing
  13.     XintfRegs.XTIMING6.bit.X2TIMING = 1;        //默认 1,   //0

  14.     // Zone will sample XREADY signal
  15.     XintfRegs.XTIMING6.bit.USEREADY = 0;        //默认 1,   //0 因为XREADY未连接,所以设置为0
  16.     XintfRegs.XTIMING6.bit.READYMODE = 1;   // sample asynchronous

  17.     // Size must be either:
  18.     // 0,1 = x32 or
  19.     // 1,1 = x16 other values are reserved
  20.     XintfRegs.XTIMING6.bit.XSIZE = 3;
复制代码


现在使用的是默认参数,大侠们帮我分析下。问题会出在软件上还是硬件上?

出0入0汤圆

 楼主| 发表于 2015-4-8 18:30:01 | 显示全部楼层
顶上去,求助

出0入0汤圆

 楼主| 发表于 2015-4-9 10:52:04 | 显示全部楼层
找到原因了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-9-30 16:54:06 | 显示全部楼层
好贴,长见识了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-2 22:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表