ATMEGA128A 与atmega128的区别 导致我们的产品步进电机不会转动了
ATMEGA128A 与atmega128的还是有区的,官方上讲了主要有3点区别 1:功耗是以前的1/22:复位上拉电阻为30K~65K 3:低电平输出从0.7V 升为0.9V (ATmega128A) 参阅http://www.waveshare.net/Article/avr-1-1-20.htm别看它改了一些不痛不痒的东西,但是后果是我们产品的步进电机全部不能运行。可能还有其他问题。所以atmega 还算聪明后面加了个A字,说这是2个芯片。
要是在同一个芯片上进行单方面的 善意的升级优化,那atmega估计有点麻烦
现在问题解决了:
我们的产品控制步进电机的原理是 atmega128发送电机脉冲给atmega16A的外部int0 与int1 外部中断里边写电机驱动,但是以前的程序是毕业生写的,把16芯片的int0和int1的DDR开启 下拉了。 atmega128发脉冲时候 由于有内阻 在int0 int1的电压 高电平为2.5 低电平为 0.35V但是以前的芯片 容错性比较高 居然也能用,我们就将错就错用了好几年 ,现在用A系列以后 应该是0.45~2.5V把 直接造成 电平判断失败 (但好像低电平判断应该是0.7V。理论上能识别,不懂),解决的方法就是int0 int1口的ddr关闭。 DDR是设置端口方向端,怎么能上下拉?只可设置为输出或输入的啊。 楼主讲的应该是将端口配置为高阻态的输入输出模式吧。 没整明白楼上的意思,输出要不为0要不为1,何来高阻态? 我猜就是让128与16比赛掰手腕,老M128力大,M16虽不从,也无可奈何.
现在新128手劲没有以前大了,就无法完全操纵M16,想表示的数就不对,工作也不正常了.
LZ应感谢AT,否则还不知道有如此重大的隐患一直存在于你们的东东上. 楼上没错 , 假如要将芯片配置成输入 则不能写配置DDRA=0x01;因为这样芯片端口会被拉低接地。
但是m128的力比较的 ,5V的IO电平能拉高被m16拉低的地。
弱弱的说一句 我们是做医疗仪器的,这个芯片就是用在输液泵上的。 以前这个错误就存在了好几年 弱弱的说一句 我们是做医疗仪器的,这个芯片就是用在输液泵上的。 以前这个错误就存在了好几年
-------------------------------------------------------------------------------------------------
经常潜水,看到这句话实在忍不住,汗一个............... 学好单片机很重要啊,万一哪天需要用上输液泵了,输液泵又不转了,赶紧叫护士:“快!看看那泵里边腿儿最多的芯片儿上有没有第三个A……” 回复【7楼】snakevip
-----------------------------------------------------------------------
啊哈哈~楼上太逗了,赞一个。国内做医疗的确实很浮躁,社会风气造成的。我刚做医疗,也发现不少问题,感觉挺昧良心的~o(︶︿︶)o 唉 哈哈哈哈哈哈哈 迟来的汗{:funk:} 哈哈,长见识了,以后我也得注意这种问题才行。 来了
就长长记性 有这样的BUG还不召回升级? 说到底还是自己问题嘛,带不带A,就是可以理解成容忍度的区别,只要是以前按标准设计的,肯定是不会有问题的。 医疗产品难道不做测试的吗?我们以前给小日本做产品的时候,要做的测试多呀,这种问题应该在测试中能发现的。 额。。。这个好可怕啊。{:funk:}
页:
[1]