Ich möchte mein eigenes modulares USB-Gerät mit einem ATtiny45 herstellen , der einfach Daten über USB an den PC sendet. Ich lese keine Daten, daher wäre eine Einwegverbindung (ATtiny -> PC) völlig in Ordnung.
Ich verwende ein Arduino Uno als ISP mit der Standard-ArduinoISP-Skizze, die aus der Arduino-Software geladen wird. Ich denke darüber nach, AVRDUDE zu verwenden, um den ATtiny45 mit dem Arduino als ISP zu programmieren, weil ich in HEX kompilierten C-Code verwenden möchte, da dieser weiter fortgeschritten ist als die Arduino-Programmiersprache.
Meine Grundgedanken der Rennstrecke:
Wie Sie sehen können, möchte ich eine "direkte" USB-Verbindung. Bisher weiß ich, dass ich dafür eine softwarebasierte Lösung verwenden muss.
Ich habe SoftwareSerial für die Arbeit mit meinem ATtiny45 verwaltet. Dafür habe ich die Arduino-Software verwendet, um den ATtiny45 mit folgendem Code zu programmieren:
#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); }
Bitte beachten Sie, dass ich Pin 3 (noch) nicht verwende, ihn aber für SoftwareSerial definieren muss.
Auf diese Weise konnte ich mit SoftwareSerial Daten vom ATtiny direkt an den TX-Pin meines Arduino UNO senden, auf den eine leere Skizze für diesen Test geladen war. Ich habe den seriellen Monitor der Arduino-Software verwendet, um die Daten auf COM4 zu lesen (in meinem Fall), da mein PC kein Gerät (COM-Anschluss) erkannt hat, da ich versucht habe, das programmierte ATtiny direkt an ein USB-Kabel anzuschließen.
Leider habe ich im Serial Monitor nur seltsame Unicode-Zeichen. Ich denke, das liegt daran, dass die Daten im Hex-Format oder so sind. Ich habe also festgestellt, dass ich einen USB / Serial Converter zwischen USB und ATtiny45 anschließen muss ... Ich habe nach solchen Konvertern gesucht, möchte aber keine vorgefertigten Karten verwenden, da ich alle möchte meine Komponenten auf einer einzigen Platine. Ich denke, ein FTDI-Chip wäre viel zu "viel" für mein Projekt, nicht wahr? (Es hat zu kleine Stifte zum Löten ...)
V-USB war dann mein zweiter Ansatz, da es keinen USB / Seriell-Konverter benötigt (wie ich weiß). Um V-USB zu verwenden, müsste ich AVRDUDE verwenden, wie ich bereits erwähnt habe.
Ich habe dieses schöne Beispiel V-USB EasyLogger gefunden . Es enthält ein Schaltungsdesign und eine Beispielfirmware. (C / C ++ / HEX)
Das einzige, was ich wissen möchte, ist: Muss ich meine Schaltung wirklich so aussehen lassen, wie im Beispiel gezeigt? ->
Was muss ich noch über diese Art von USB-Verbindung wissen? (Warum brauche ich einen USB / Seriell-Wandler? Kann ich einfach +5 & VCC anschließen? Welche Komponenten brauche ich unbedingt? Welche Art von Signal muss ich über TX-Bits senden? Hex? Welche Spannung benötigt es? sein ? )
Vielen Dank für all Ihre Antworten.
AKTUALISIEREN
Hier sind einige zusätzliche Links, die mir in einigen Punkten wirklich geholfen haben. Aber ich habe es immer noch nicht ganz verstanden ...
der erste -> http://www.ernstc.dk/arduino/tinycom.html
und das zweite -> http://www.re-innovation.co.uk/web12/index.php/en/blog-75/227-attiny-arduino (scrollen Sie nach unten zum Abschnitt "Serielle Ausgabe")