Ich versuche, mit Arduino-artigem Code über einen USB-Serial-Konverter von einem ATtiny85 auf einen PC zu übertragen, ohne viel von irgendetwas zu verstehen. Ich war schockiert und entsetzt, dass es nicht funktioniert hat.
Ich habe bestätigt, dass der Winzling die Spannung an einem seiner Pins flackert, aber wenn ich diesen Pin zum Senden oder Empfangen über das serielle USB-Kabel verbinde und versuche, mit einem Terminalprogramm zu hören, erhalte ich nichts.
Ich bin nicht sicher, wie ich feststellen soll, welches Teil defekt ist.
Benötige ich mehr als VCC, GND und TXD, um seriell zu senden?
Einzelheiten:
Der Code für den Winzling ist in der Arduino-Umgebung geschrieben und ein ähnlicher Code blinkt erfolgreich alle 4 "PORTB" -Pins, zumindest entsprechend den LEDs. Ich benutze den Code von HLT und Saporetti , um ihn mit dem Arduino-Dialekt von C ++ zu programmieren. Das Programm kommt noch unter einem K rein.
#include <SoftwareSerial.h>
SoftwareSerial s(0,1); //receive on "0", and transmit on "1" aka "PB1" aka pin 6
void setup() { s.begin(4800); } // assuming 1Mhz, 4800 baud
void loop() { s.println(millis()); } // transmit something at every opportunity
Es sind viele Übersetzungen erforderlich, aber der Code ist ziemlich einfach. Der Code, der die Baudrate festlegt, scheint 1MHz anzunehmen, aber zum Glück hat meine Attiny werkseitig voreingestellte Sicherungen und läuft mit 1MHz. In jedem Fall flackert Pin 6 seine Spannung entsprechend der LED.
Also verbinde ich mit den kleinen Kabeln das "ftdi" -Ende des FTDI-USB-Seriell-Wandlers mit dem winzigen: Schwarz zu GND, Rot zu VCC, Orange zu 6. Ich öffne das Programm "minicom" auf dem PC, stelle den Baud ein rate auf 4800 und warte auf nichts. Wenn ich mit meinem Boarduino spreche , hat es keine Probleme.
Das FTDI-Konverterkabel hat die folgende Pinbelegung: Schwarz ist GND, Braun ist "CTS", Rot ist VCC (+4,98 V), Orange ist "TXD", Gelb ist "RXD", Grün ist "RTS".
Wenn ich vom winzigen auf den PC übertragen möchte, sollte ich die Spannung an "TXD" oder "RXD" flackern lassen? Mit anderen Worten, muss die Übertragungsleitung vom Slave zum Host oder vom Host zum Slave übertragen werden?
Ich habe tatsächlich beide ausprobiert und auch nicht gearbeitet. Ich habe bisher Geräte im Wert von weniger als einem Dollar gebraten, und ich werde übermütig, also stecke ich nur Drähte in das Kabel. Vielleicht soll ich die Drähte "CTS" und "RTS" nicht ignorieren?
Muss ich andere Kabel verwenden? Tun RTS und CTS etwas?
Bei der Hardware handelt es sich um ein ATTiny85-PU (DIP-8-Paket mit 1 MHz und 20 MHz), das über USB mit 4,98 V betrieben wird. Der Host-PC ist ein MacBook, und er führt alle Arduino-Aufgaben erfolgreich aus, einschließlich der Verwendung von ArduinoISP, um den ATtiny so zu programmieren, dass sein kleines Herz herausblitzt.