2017-08-23 124 views
1

我正在使用ATtiny85 8引脚AVR将AT命令发送到RN42蓝牙模块。我使用Arduino作为ISP编程AVR,因此在Arduino IDE中编写代码,使用SoftwareSerial库作为AVR没有UART端口。配置ATtiny85使用外部8MHz振荡器?

为了确保数据准确计时,我在引脚2上添加了一个8MHz振荡器(LFSPXO018045),但我不确定如何确保AVR正在使用此功能,而不仅仅是默认使用内部振荡器。我见过提及需要设置的“保险丝”?有没有我需要做的任何代码内容,比如设置一个寄存器标志或任何预定标器?

这里是鹰电路和选项,我发现到目前为止,但不知道是否有其他任何需要做太多?:PCB & IDE

顺便说一句,这是我的第一个问题,请手下留情,如果我错过了一些东西!

+0

我不确定你将使用什么速度,但请注意,8MHz时钟不能与一些常用串行速度(例如115200bps)一起使用,请参见[WormFood的AVR波特率计算器](http:// wormfood .net/avrbaudcalc.php)的详细信息。 – hlovdal

回答

1

AVR MCU的时钟设置可以通过使用专用的熔丝位来改变。不幸的是,这些Fuse位不能从软件修改。编程熔丝位的唯一方法是使用JTAG编程器或ISP编程器(例如:USBasp,AVRISP mkII,或者您可以使用Arduino作为ISP编程器,并在其上绘制右侧草图)。

这个AVR Fuse calculator tool可以用来确定你需要编程什么设置和熔丝值。

+2

我会补充说,eclipse AVR插件&atmel工作室已经实现了这些计算器。所以不需要外部工具 –

+0

哦,我看到了...所以通过将cmd参数传递给avrdude来设置熔丝。由于我使用的Arduino IDE(和Arduino作为ISP)缩小了我的选项,所以如果选择“External 8MHz”和“Burn Bootloader”,它应该可以工作,然后再选择IDE允许我选择的选项。 感谢您的回复! –