项目简介
本项目是Till Harbaum的I2C-Tiny-USB适配器或Thomas Fischl的I2C-MP-USB的直接复制版本,专为ATmegaXU4控制器编写。由于原项目基于PIC,而作者只有ATmega32U4开发板,所以编写了此固件。它采用相同的协议和VID/PID对,现有驱动无需修改即可使用,借助Dean Camera的LUFA库实现USB支持。
项目的主要特性和功能
- 硬件支持:支持ATmega16U4和ATmega32U4(如Arduino Leonardo),可能在LUFA支持的其他带USB功能的AVR上工作,不过ATmegaXU2系列因无硬件I2C不支持。
- I2C性能:支持高达400 kHz的快速流水线操作,字节间无死区时间,波特率可在5 kHz至400 kHz间选择。
- 错误指示:可选LED用于错误指示(默认禁用)。
- 驱动支持:支持Linux(通过i2c-tiny-usb驱动或Thomas的Python、Java库)、Windows(搭配Zadig和Thomas的库),有对应的Python和Java库可用。
- USB开发支持:借助LUFA库,提供丰富功能,如USB设备模式实现、主机模式支持、端点管理和数据传输等,支持多种AVR架构微控制器,提供模板化代码和全面底层支持。
安装使用步骤
固件烧录
项目提供了适用于16 MHz晶振的预构建十六进制文件。
- 通过DFU引导加载程序烧录到XU4:
sh
avrdude -u -p atmega32u4 -P usb -c flip1 -Uflash:w:i2c-tiny-usb.hex
- 尝试通过Arduino引导加载程序烧录到Arduino Leonardo(未测试):
sh
avrdude -u -p atmega32u4 -P <your port here> -c avr109 -Uflash:w:i2c-tiny-usb.hex
从源码构建
需要较新的avr-gcc(Windows可使用Zak Kemble的构建版本
),确保PATH
指向avr-gcc二进制文件,然后执行:
sh
make
若设备已连接并处于引导加载程序模式,可执行:
sh
make flash
调整配置
- 若开发板晶振频率非16 MHz,需在
makefile
中调整F_CPU
。 - 若需要错误指示LED,可在
i2c-tiny-usb.c
开头附近通过#define
配置LED引脚。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】