Я хочу создать свое собственное модульное USB-устройство, используя ATtiny45, который просто отправляет данные на ПК через USB. Я не читаю данные, поэтому однонаправленное (ATtiny -> PC) соединение было бы вполне нормально.
Я использую Arduino Uno в качестве интернет-провайдера со стандартным эскизом ArduinoISP, загруженным из программного обеспечения Arduino. Я думаю об использовании AVRDUDE для программирования ATtiny45 с Arduino в качестве ISP, потому что я хочу иметь возможность использовать код на C, скомпилированный в HEX, поскольку он более продвинут, чем язык программирования 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); }
Обратите внимание, что я не использую контакт 3 (пока), но мне нужно определить его для SoftwareSerial.
Таким образом, используя SoftwareSerial, я смог отправить данные с ATtiny непосредственно на вывод TX моего Arduino UNO, на который был загружен пустой эскиз для этого теста. Я использовал Serial Monitor из программного обеспечения Arduino для чтения данных на COM4 (в моем случае), потому что мой компьютер не распознавал никакое устройство (COM-порт), так как я пытался подключить запрограммированный ATtiny непосредственно к USB-кабелю.
К сожалению, я получил только странные символы Юникода в Serial Monitor. Я думаю, что это потому, что данные в шестнадцатеричном формате или около того. Итак, я заметил, что мне нужно подключить USB / Serial Converter между USB и ATtiny45 ... Я искал такие преобразователи, но я не хочу использовать какие-либо готовые платы, так как я хочу все мои компоненты на одной плате. Я думаю, что чип FTDI был бы слишком "большим" для моего проекта, не так ли? (У него слишком маленькие контакты, чтобы паять ...)
Тогда V-USB был моим вторым подходом, так как ему не нужен конвертер USB / Serial (как я знаю). Поэтому, чтобы использовать V-USB, мне нужно использовать AVRDUDE, как я упоминал ранее.
Я нашел этот хороший пример V-USB EasyLogger . Содержит схему конструкции и пример прошивки. (C / C ++ / HEX)
Единственное, что я хочу знать: мне действительно нужно, чтобы моя схема выглядела так, как показано в примере? ->
Что еще мне нужно знать об 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 (прокрутите вниз до раздела «Последовательный вывод»)