Dies ist möglicherweise die Grenze der ATTiny13-Möglichkeiten, aber dennoch: Ist es möglich, ATTiny13 an USB anzuschließen, um ADC-Messwerte zu erhalten (in eine Richtung)?
Laut diesem Artikel http://www.vk2zay.net/article/211 (und meinem Verständnis davon) scheint es machbar zu sein, obwohl die Größe des seriellen Kommunikationsprogramms viel Speicher benötigt.
Anstelle von max232 habe ich jedoch einen Micro-USB-zu-Seriell-Adapter von Microbot ( http://www.microbot.it/products/mr002-002-1.php ). (Nun, ich habe auch einen max3323-Chip, aber ich würde ihn gerne für etwas anderes ersparen).
Ich bin mir dieser Frage bewusst: Wie kann ich ohne die Verwendung eines RS232 / USB-Adapters zwischen Mikrocontroller und PC kommunizieren?
kann aber nicht ganz verstehen, warum max232 dazwischen benötigt wird?
UPDATE : Ich kann kein besseres Datenblatt zum Adapter finden, aber er verwendet den MCP2200-Chip.
UPDATE 2 : Wie Passerby unten antwortete, kann man Attiny direkt mit dem Adapter des Mikrobots verbinden. Fürs Protokoll, dies sind Änderungen, die ich am oben genannten Projekt vorgenommen habe, damit es funktioniert:
Zeile 52 des benötigten Codes "const": const unsigned long mags[10] PROGMEM = {... to make avr-gcc happy.
Pin 6 des Attiny muss mit RX des Adapters verbunden werden (Attiny kann Vdd und Gnd für 5 V Strom verwenden)
Ich habe mit avrdude keine Fuses gesetzt (in Makefile entfernt)
Die Baudrate war in meinem Fall 1200, und alles, was nötig war, um die Ausgabe von attiny zu sehen, war cu -l /dev/ttyACM3 -s 1200 (ich denke, cu macht am Anfang etwas Magie mit dem Adapter, um die Baudrate einzustellen). Die Baudrate wurde berechnet, indem der Ausgang von Pin 6 mit einem Oszilloskop betrachtet wurde, das eine minimale Impulsbreite von etwa 0,8 ms ergab. (cu ist ein serielles Linux/Unix-Dienstprogramm, ein anderes ausprobiertes ist minicom)
Das Datenblatt des Adapters reicht nicht aus. Ich musste die Spezifikationen des MCP2200-Chips nachschlagen, um bessere Vermutungen anstellen zu können
Der Microbot-Adapter ist ein TTL-basierter USB-zu-Seriell-Adapter (normalerweise 5 V). Ich kann nicht sagen, welchen IC sie verwenden, aber sie verhalten sich alle gleich. Verbinden Sie einfach die TX-, RX- und GND-Pins mit Ihrem ATTiny13 und starten Sie eine reguläre serielle Kommunikation. Oder in diesem Fall nur ATTinys TX an den RX-Pin und die Masse-Pins des Adapters zusammen, da das Projekt, mit dem Sie verknüpfen, nur übertragen wird. Sie würden einfach den max232 in der Schaltung durch den USB-Adapter ersetzen. Alles andere bleibt gleich.
Der max232 wird verwendet, wenn von TTL seriell (0 V Low, +5 V High) zu tatsächlichem RS232 konvertiert wird, wie es ein serieller Computeranschluss verwenden würde (+3 ~ 25 V Low, -3 ~ 25 V High). Da Sie einen USB-zu-Seriell-Adapter mit TTL-Pegeln verwenden, den gleichen wie der ATTiny13, wird der max232 nicht benötigt. Es gibt einige USB-zu-seriell-Adapter, die für die Verwendung mit tatsächlichem RS232-Level-Zeug gedacht sind, daher wäre der max232 oder ein ähnlicher Chip dann nützlich, aber nicht in Ihrem Fall.
Die 5 V vom Microbot-Adapter sind direkt mit dem USB-5-V-Pin verbunden. Dadurch können Sie bis zu 500 mA verwenden.
AVRs haben den Vorteil des LUFA- Software-Stacks. Sie können einen AVR direkt an die USB-D+- und -D-Pins anschließen und erhalten dadurch einen angemessenen Anschein von USB. Es wird die USB-Spezifikation nicht genau erfüllen, aber es ist nah genug für fast alle allgemeinen Anwendungen.
Von dort aus sollte es ziemlich einfach sein, das ADC-Peripheriegerät auf dem ATTiny zu verwenden und LUFA die USB-Seite der Dinge überlassen zu lassen.
Bearbeiten: Eigentlich sieht es so aus, als ob Sie jetzt V-USB wollen . Tut mir leid wegen der Ablenkung. Hier ist ein Beispiel für die Verbindung eines ATTiny45 mit einem LDR, um Ihnen den Einstieg zu erleichtern .
Es gibt hier ein ausgezeichnetes Tutorial , das Ihnen helfen kann.
Es zeigt, wie Sie eine 9-Dollar-USB-zu-USART-Brücke verwenden, oder Sie können einfach Ihre eigene bauen, und die kostenlosen HyperTerminal- oder RealTerm-Terminals, um mit AVRs zu kommunizieren.
EwokNightmares
Roman Susi