如何从树莓派编程ATtiny85

电子说

1.2w人已加入

描述

第1步:在Pi的终端上设置Raspberry Pi

编程

下载并构建avrdude

sudo apt-get install bison automake autoconf flex git gcc

sudo apt-get install gcc-avr binutils-avr avr-libc

git clone https://github.com/kcuzner/avrdude

cd avrdude/avrdude

。/bootstrap && 。/configure && sudo make install

在GPIO上设置SPI

sudo raspi-config

并在“高级选项”中启用SPI设备(参见图片)

您可以使用lsmod在命令行中进行检查,否需要重启。 (也许需要sudo modprobe spidev)

下载并为gpio命令构建WiringPi

cd〜

git clone git://git.drogon.net/接线Pi

cd接线Pi

。/build

步骤2:电气连接

编程

将ATtiny85连接到Raspberry Pi GPIO(图片中的电线颜色仅供参考):

GPIO引脚ATtiny引脚注释

15 1 GPIO22进行重置(通过1K,蓝色导线)

17 8 3.3 V(绿色导线)

19 5 MOSI(通过1K,黄色线)

21 6 MISO(通过1K,橙色线)

23 7 SCLK(通过1K,红色线)

25 4 GND(棕色线)

(我找不到在指令表中做一个漂亮表的方法)

步骤3:测试Avrdude连接

编程

测试通过与ATtiny85的连接,我们在ATtiny复位时使用GPIO引脚22进行设置。我们必须将该引脚拉低以对芯片进行编程。这可以通过其他方式完成,例如开关,但我使用GPIO的另一个引脚来执行此操作。

sudo gpio -g模式22 out gudo + g写22 0 sudo gpio -g写22 1

这必须给出成功类型消息!

第4步:编写ATtiny85

编程

对ATtiny85进行编程:

cd〜 mkdir ATtiny85

cd ATtiny85 mkdir闪烁

cd闪烁

创建blinky.c文件并添加以下代码

nano blinky.c

//////////////////////

#define F_CPU 1000000L

#include

#include

int main(void)

{

DDRB = 0xFF;//PORTB输出,所有引脚

PORTB = 0x00;//将引脚设为低电平以启动(

);; {

PORTB ^ = 0xFF;//反转所有引脚

_delay_ms(100);//等待一段时间

}

返回0;

}

////////////////////////

将此代码添加到Makefile文件中

nano Makefile

/////////////////////

MCU = attiny85

AVRDUDEMCU = t85

CC =/usr/bin/avr-gcc

CFLAGS = -g -Os -Wall -mcall-prologues -mmcu = $(MCU)

OBJ2HEX =/usr/bin/avr-objcopy

AVRDUDE =/usr/local/bin/avrdude

TARGET = blinky

all:

$(CC)$ {CFLAGS)$ {TARGET).c -o $ {TARGET )

$(OBJ2HEX)-R .eeprom -O ihex $(TARGET)$(TARGET).hex rm -f $(TARGET)

install:全部 gudo -g模式22 out

sudo gpio -g写22 0 sudo gpio -g写22 1 sudo $(AVRDUDE)-p $(AVRDUDEMCU)-P/dev/spidev0.0 -c linuxspi -b 10000 -U flash:w :$(TARGET).hex

保险丝:

sudo gpio -g模式22 out sudo gp io -g写22 1

clean:

rm -f * .hex * .obj * .o

//////////////////////

(抱歉,指令文本编辑器破坏了上面代码中的所有制表符和空格,如果没有正确的制表符,Makefile将无法工作)

要编译类型:

make

编译代码并将其上传到ATtiny:

make install

要发送保险丝:

make fuse

该程序将所有5个引脚振荡为输出,因此LED应该闪烁。

我们正在直接使用avr-libc对ATtiny进行编程。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分