m16 转arduino小结(cp2102 成功控制arduino 复位)

Atmega16L-8PU的芯片,想搭建最小系统试试,查了一些资料,也多亏论坛各位兄弟的帮忙 ,终于能跑起来了,分享一些资料在这里,同时也有一些问题没弄完,抽空继续弄好了,再分享出来

参考网址https://github.com/MCUdude/MightyCore#wiring-reference

添加板子https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json

选择m16 按照C:\Users\Administrator\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\1.0.8 \boards.txt中你选择的板子设置熔丝和用usbasp烧录对应bootloader,切记烧录时候如果usbisp报错,重启动机器,再烧录。不要怀疑程序,肯定烧录成功,多烧录几次。

打开blink工程,设置led引脚29(PA5),然后点上传,按住reset按键,在程序马上上传完成后松开。100%成功,现在还没有解决DTR自动程序控制重启动。应该是cp2102的问题。郁闷中。。。。

今天终于解决了问题,原来是2102驱动能力不够,在官方电路中去掉104电容,改为4.7k上拉,和4.7k下拉。目的是限制2102的dtr电压在2.5v左右。因为2102下拉电平只能在1.8v左右,要保证正常的时候,dtr电压大于2v,下拉的时候小于1.8v,这样就能可靠复位。

今天又改进了复位电路,把电容修改为100uf,上拉100k,下拉56k,目前正常复位。


总结一下,要cpu可靠复位的条件是,rst脉冲宽度和高低电压,由于ttl电压是2v以上是高电平,1.8以下是低电平。所以保证正常的时候,rst上是大于2v的,可靠点2.5v比较好。重启动时候要拉低到1.8v,这个电压可以通过R1和R2来调整分压。

R1和R2的选择大小,决定了脉冲宽度,要根据电容的充电曲线来决定,小了,脉冲宽度不够。开始我选择的是10k,发现脉冲宽度不够,调整到100K就好了。


电容决定脉冲高度,电容要选100UF,而不是官方提供的104电容,开始我选择104电容,示波器上看到脉冲高度只有0.2v,根本不能复位,所以增大电容,提供脉冲高度,脉冲高度可以到1.8v。

官方原理图


M16引脚图


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值