Próbuję przesyłać dane z ATtiny85 na komputer PC za pomocą kodu Arduino za pomocą konwertera USB-Serial, nie rozumiejąc niczego. Byłem zszokowany i przerażony, że to nie zadziałało.
Potwierdziłem, że maleńki miga napięcie na jednym ze swoich pinów, ale kiedy podłączam ten pin, aby nadawać lub odbierać za pomocą kabla szeregowego USB i próbować słuchać za pomocą programu terminala, nic nie dostaję.
Nie jestem pewien, jak powiedzieć, która część jest zepsuta.
Czy potrzebuję więcej niż VCC, GND i TXD do transmisji szeregowej?
Detale:
Kod malucha jest zapisany w środowisku Arduino i podobny kod z powodzeniem miga na wszystkich 4 pinach „PORTB”, przynajmniej zgodnie z diodami LED. Używam kodu z HLT i Saporetti, aby pozwolić mi używać dialektu Arduino w C ++ do programowania. Program nadal wchodzi w kategorii 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
W grę wchodzi wiele tłumaczeń, ale kod jest dość prosty. Kod, który ustawia prędkość transmisji, wydaje się przyjmować 1 MHz, ale na szczęście moje attiny ma fabryczne domyślne bezpieczniki i działa z częstotliwością 1 MHz. W każdym razie pin 6 miga swoim napięciem zgodnie z diodą LED.
Używam więc małych przewodów, aby podłączyć końcówkę „ftdi” konwertera szeregowego USB FTDI do malutkiego: czarnego na GND, czerwonego na VCC, pomarańczowego na 6. Otwieram program „minicom” na komputerze, ustawiam bod oceń do 4800 i poczekaj na nic. Rozmawiając z moim Boarduino , nie ma problemu.
Kabel konwertera FTDI ma następujące wyprowadzenie: czarny to GND, brązowy to „CTS”, czerwony to VCC (+ 4,98 V), pomarańczowy to „TXD”, żółty to „RXD”, zielony to „RTS”.
Jeśli chcę transmitować z maleńkiego na PC, czy powinienem migać napięcie na „TXD” lub „RXD”? Innymi słowy, czy przewód transmisyjny ma transmitować z urządzenia podrzędnego do hosta, czy host do urządzenia podrzędnego?
Właściwie to wypróbowałem oba, żadne nie działało. Do tej pory smażyłem sprzęt o wartości mniejszej niż dolar i robię się zarozumiały, więc po prostu podłączam przewody do kabla. Może nie powinienem ignorować przewodów „CTS” i „RTS”?
Czy muszę używać innych przewodów? Czy RTS i CTS coś robią?
Sprzęt to ATTiny85-PU (pakiet DIP-8, działający z częstotliwością 1 MHz, o znamionowej częstotliwości do 20 MHz) zasilany przez USB o częstotliwości 4,98 V. Komputer hosta to MacBook, który z powodzeniem wykonuje wszystkie czynności arduino, w tym ArduinoISP do programowania ATtiny w taki sposób, aby mrugał okiem.