电子说
第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进行编程。
全部0条评论
快来发表一下你的评论吧 !