我可以在5v板上编程3.3v芯片吗?


8

我前一阵子买了一个Gertboard,它具有的功能之一是ATMega328(DIP)。但是,由于Gertboard是为与Raspberry Pi一起使用而设计的,因此它只能在3.3v电压下运行,因此时钟速度被限制在〜12MHz。

但是,通过Raspberry Pi对其进行编程非常麻烦。相反,我想将芯片转移到Arduino Uno板上,以便可以从台式机上载草图。然后,我将其传输回Gertboard以进行正常操作。

问题是我的Uno工作在更典型的5v / 16MHz。

尝试这样做安全吗?我是否需要在IDE中进行任何配置更改以告知它考虑不同的时钟速度?


通过SSH的avrdude不能为您工作吗?
伊格纳西奥·巴斯克斯

@ IgnacioVazquez-Abrams我真的在探索各种选择。如果需要的话,我不介意在命令行上工作,但是我更喜欢使用GUI进行代码输入。
彼得·布卢姆菲尔德

2
Samba共享目录,并调用ino进行构建。凌乱,但应该这样做。
伊格纳西奥·巴斯克斯

我以前从未见过一个ATmega328在3.3V电压下无法在16MHz下工作的情况。
Cyber​​gibbons 2014年

当然,但这不是这里的问题。
伊格纳西奥·巴斯克斯

Answers:


10

选择的时钟速度将同时影响delay*()和和millis()/ micros()以及中的功能<util/delay.h>,因此,如果您使用任何这些功能,则必须使用目标系统的正确时钟速度。通过编辑boards.txt和复制Uno的现有条目并更改f_cpu参数的值以匹配目标系统(在本例中为),可以轻松完成此操作12000000

电压差并不重要,因为芯片可以在任何一个电压下运行,并且在5V系统和3.3V系统之间没有建立连接。


不幸的是,引导加载程序可能假定为12 MHz。从理论上讲,可以用类似的“不匹配”来修改8u2 / 16u2的固件,并且可能导致能够以任何奇怪的波特率使用引导加载程序。但是,改进基于pi的编程过程可能会更容易,尤其是因为这将避免不断进行芯片移植。
克里斯·斯特拉顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.