我想使用ATtiny45制作自己的模块化USB设备,该设备只需通过USB将数据发送到PC。我没有读取数据,因此单向连接(ATtiny-> PC)完全可以。
我正在使用Arduino Uno作为ISP,并从Arduino软件中加载了标准ArduinoISP草图。我正在考虑使用AVRDUDE与Arduino作为ISP一起对ATtiny45进行编程,因为我希望能够使用编译为HEX的C代码,因为它比Arduino编程语言更高级。
我对电路的基本想法是:
如您所见,我想要一个“直接” USB连接。到目前为止,我知道我必须为此使用基于软件的解决方案。
我已经管理SoftwareSerial与我的ATtiny45一起使用。为此,我使用了Arduino软件通过以下代码对ATtiny45进行编程:
#include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 SoftwareSerial serial(rxPin, txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(led, OUTPUT); serial.begin(4800); } void loop() { serial.println("1"); delay(1000); }
请注意,我还没有使用Pin 3(但),但需要为SoftwareSerial定义它。
这样,通过使用SoftwareSerial,我能够将数据从ATtiny直接发送到我的Arduino UNO的TX引脚上,该引脚上已加载了此测试的空白草图。我使用Arduino软件的串行监视器读取COM4上的数据(在我的情况下),因为我试图将编程的ATtiny直接连接到USB电缆时,我的PC无法识别任何设备(COM端口)。
不幸的是,我在串行监视器中只有奇怪的unicode字符。我认为是因为数据采用十六进制格式左右。因此,我注意到我需要在USB和ATtiny45之间连接一个USB /串行转换器 ...我已经搜索了此类转换器,但是我不想使用任何预制板,因为我想要所有我的组件放在一块板上。我认为FTDI芯片对我的项目来说太“太多了”,不是吗?(它的引脚太细小,无法焊接...)
V-USB是我的第二种方法,因为它不需要USB /串行转换器(据我所知)。因此,要使用V-USB,我需要使用前面提到的AVRDUDE。
我找到了一个很好的示例V-USB EasyLogger。它包含电路设计和示例固件。(C / C ++ /十六进制)
我唯一想知道的是:我真的需要使电路看起来像示例中所示吗?->
关于这种USB连接,我还需要了解什么?(为什么我需要USB /串行转换器?我可以只接+5和VCC吗?我绝对需要哪些组件?我需要通过TX发送什么样的信号?位?十六进制?需要什么电压?成为 ? )
感谢您的所有回答。
更新
以下是一些确实对我有帮助的附加链接。但是我还是不完全了解...
第一个-> http://www.ernstc.dk/arduino/tinycom.html
第二个-> http://www.re-innovation.co.uk/web12/index.php/zh-CN/blog-75/227-attiny-arduino(向下滚动到“串行输出”部分)