Sto cercando di trasmettere da un ATtiny85 a un PC usando il codice Arduino-esque su un convertitore USB-seriale senza capire molto di niente. Ero scioccato e sconvolto dal fatto che non funzionasse.
Ho confermato che il piccolo sta tremolando la tensione su uno dei suoi pin, ma quando collego quel pin per trasmettere o ricevere sul cavo seriale USB e provo ad ascoltare usando un programma terminale, non ottengo nulla.
Non sono sicuro di come dire quale parte è rotta.
Ho bisogno di più di VCC, GND e TXD per trasmettere seriale?
Dettagli:
Il codice per il piccolo è scritto nell'ambiente Arduino e un codice simile fa lampeggiare con successo tutti e 4 i pin "PORTB", almeno secondo i LED. Uso il codice di HLT e Saporetti per farmi usare il dialetto Arduino di C ++ per programmarlo. Il programma arriva ancora sotto un K.
#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
Sono coinvolte molte traduzioni, ma il codice è piuttosto semplice. Il codice che imposta la velocità di trasmissione sembra assumere 1MHz, ma per fortuna il mio attiny ha micce di default di fabbrica e funziona a 1MHz. In ogni caso, il pin 6 sta tremolando la sua tensione in base al LED.
Quindi uso i fili piccoli per collegare l'estremità "ftdi" del convertitore seriale USB FTDI al minuscolo: nero a GND, rosso a VCC, arancio a 6. Apro il programma "minicom" sul PC, imposto il baud tasso a 4800 e attendere, per niente. Quando parlo con il mio Boarduino , non ha problemi.
Il cavo del convertitore FTDI ha il seguente pinout: il nero è GND, il marrone è "CTS", il rosso è VCC (+ 4.98V), l'arancione è "TXD", il giallo è "RXD", il verde è "RTS".
Se voglio trasmettere dal piccolo al PC, dovrei sfarfallare la tensione su "TXD" o "RXD"? In altre parole, il filo di trasmissione deve essere trasmesso dallo slave all'host o dall'host allo slave?
In realtà ho provato entrambi, né ha funzionato. Finora ho frugato meno di un dollaro di attrezzatura e sto diventando arrogante, quindi ho appena collegato i fili al cavo. Forse non dovrei ignorare i fili "CTS" e "RTS"?
Devo usare altri fili? RTS e CTS fanno qualcosa?
L'hardware è un ATTiny85-PU (pacchetto DIP-8, funzionante a 1MHz, valutato a 20MHz) alimentato da USB a 4.98V. Il PC host è un MacBook e fa con successo tutte le cose Arduino, incluso l'uso di ArduinoISP per programmare l'ATtiny in modo da battere le palpebre.