Seguí esta guía para crear un dispositivo bidireccional (depuración) de un cable para un Digispark (Attiny85):
enlace (consulte la sección Depuración en serie bidireccional con una sola E / S) o vea el esquema en el código fuente abajo:
/*
https://digistump.com/wiki/digispark/tutorials/debugging
SERIAL SINGLE I/O
DEBUGGING CABLE
___________________/\__________________
/ \
____
.--------. | \
| GND |--------------------------------+---o5 \
| | 47K | | 9o |
| | .--###--' | o4 |
| DEBUG | 4.7K | | 8o |
| TX_RX |-------------------###--+--|<|------o3 | ---> To regular RS232 SubD 9 pins Male of PC
| PIN | ^ | 1N4148 | 7o | or to RS232/USB adapter
| | | '-----------o2 | Connector PIN 2: RX (receive)
'--------' | | 6o | Connector PIN 3: TX (transmit)
ATtiny85 Single | o1 /
(Digispark) I/O |____/
SubD 9 pins
Female
Note:
Trick to be less intrusive: use a �high� data rate (38400 is fine)
-> less time wasted in ISR and for transmitting each character.
You can still upload your sketch modifications through the USB interface
whilst the additionnal serial port is selected as Serial port in the IDE.
*/
#include <TinyPinChange.h>
#include "SoftSerial.h"
#define DEBUG_TX_RX_PIN 3 //Adjust here your Tx/Rx debug pin
SoftSerial MyDbgSerial(DEBUG_TX_RX_PIN, DEBUG_TX_RX_PIN, true); //true allows to connect to a regular RS232 without RS232 line driver
void setup()
{
MyDbgSerial.begin(9600); //After MyDbgSerial.begin(), the serial port is in rxMode by default
MyDbgSerial.txMode(); //Before sending a message, switch to txMode
MyDbgSerial.println(F("\nDebug enabled"));
MyDbgSerial.rxMode(); //switch to rxMode to be ready to receive some commands
}
void loop()
{
if(MyDbgSerial.available())
{
MyDbgSerial.txMode();
MyDbgSerial.print(F("\nReceived: "));MyDbgSerial.write(MyDbgSerial.read());MyDbgSerial.print(F("\n"));
MyDbgSerial.rxMode();
}
}
El 'dispositivo' que creé se parece a esto:
Hagadobleclicenestepinoutparaasegurarse(hembra->masculino):
El'dispositivo'funcionaperosecontesta,hayalgomal(¿esquema?).Porejemplo:cuandoingresas"hola" en el monitor serie, responde directamente con el mismo "hola" también sin un Digispark conectado / conectado. Cuando Digispark está conectado / conectado, el Digispark parece no recibir nada.
Entonces, ¿qué podría estar mal, es correcto el esquema?