使用Raspberry PI编程Atmel ATMega 32-16pu

时间:2016-08-27 12:42:51

标签: raspberry-pi avr atmega

前一段时间,我买了ATMega32-16PU,我想,我可以用Raspberry PI的GPIO引脚编程。我尝试了几次,我意识到ATMega32-16pu需要5v和5v才能打破我的Raspberry PI,所以我买了施密特触发器来移动返回PI的信号电压。 现在我想,如果甚至可以用Raspberry编程ATMega ..如果不是,我应该买什么样的程序员?

1 个答案:

答案 0 :(得分:1)

AVR通常也工作在3.3V,可能会降低最大允许时钟频率(较旧的可以降至2.7V,较新的甚至降至1.8V),因此您可以直接使用Raspis SPI对其进行编程 - 无需任何级别的移位器。

您也可以使用较新的AVR(例如,大多数兼容的AtMega324 - 您也可以轻松地按比例放大或缩小闪存/内存大小)。因此,您可以将保险丝设置为ckdiv8,使其在编程时处于活动状态(此时为3.3V)并在程序启动时移除时钟分频器,如果您需要最大时钟频率。

如果你被绑在旧的Mega16上,那么至少你不需要输入电平移位器,因为AVR的阈值为“高”。是0.6 * VCC。除了重置引脚,但无论如何这很有用。所以只有MISO Pin需要一些照顾。简单的分压器应该足够AVR) --[ 10k ]-- (RPI) --[ 20k ]-- (GND

您似乎也可以将avrdude与程序员linuxspi一起使用。请参阅文档。

这个Article德国微控制器社区网站建议调整配置文件以设置用于重置AVR的正确引脚,并建议在配置文件中调整波特率。

programmer 
  id       = "linuxspi";
  desc     = "Use Linux SPI device in /dev/spidev*";
  type     = "linuxspi";
  reset    = 25; # <- your reset pin
  baudrate = 100000;
;

用于读取连接测试的Flash内容到/dev/null的avrdude命令行看起来有点像:

sudo /usr/local/bin/avrdude -c linuxspi -p m32p -P /dev/spidev0.0 -U flash:r:"/dev/null":r