我想使用 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 上的数据(在我的情况下),因为我的 PC 无法识别任何设备(COM 端口),因为我试图将编程的 ATtiny 直接连接到 USB 电缆。
不幸的是,我在串行监视器中只得到了奇怪的 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/en/blog-75/227-attiny-arduino(向下滚动到“串行输出”部分)

