Quiero hacer mi propio modular Dispositivo USB con un ATtiny45 que simplemente envía los datos al PC por USB. No estoy leyendo datos, por lo que una conexión de una sola vía ( ATtiny -> PC ) estaría completamente bien.
Estoy utilizando un Arduino Uno como ISP con el sketch estándar de ArduinoISP cargado desde el software de Arduino. Estoy pensando en usar AVRDUDE para programar el ATtiny45 con el Arduino como ISP porque quiero poder usar código C compilado a HEX ya que es más avanzado que el Arduino Programming Langue.
Mis pensamientos básicos del circuito:
Como puedes ver, quiero una conexión USB "directa". Hasta ahora sé que tengo que utilizar una solución basada en software para esto.
-
He conseguido SoftwareSerial para trabajar con mi ATtiny45. Para ello he utilizado el software Arduino para programar el ATtiny45 con el siguiente código:
#include <SoftwareSerial.h> #define rxPin 3 #define txPin 4 SoftwareSerial serial(rxPin, txPin); void setup() { pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(led, OUTPUT); serial.begin(4800); } void loop() { serial.println("1"); delay(1000); }
Por favor, ten en cuenta que no uso el Pin 3 ( todavía ) pero necesito definirlo para el SoftwareSerial.
De esta manera, utilizando el SoftwareSerial, he podido enviar los datos del ATtiny directamente al pin TX de mi Arduino UNO que tenía cargado un sketch en blanco para esta prueba. He utilizado el Serial Monitor del Software Arduino para leer los datos en el COM4 ( en mi caso ) porque mi PC no reconocía ningún dispositivo ( puerto COM ) ya que he intentado enganchar el ATtiny programado directamente a un cable USB.
Desgraciadamente, en el Serial Monitor sólo he obtenido extraños caracteres unicode. Creo que es porque los datos están en formato hexadecimal o así. Así que me he dado cuenta de que tengo que conectar un Convertidor USB/Serial entre el USB y el ATtiny45... He buscado este tipo de convertidores, pero no quiero usar ninguna placa prefabricada, ya que quiero todos mis componentes en una sola placa. Creo que un chip FTDI sería demasiado para mi proyecto, ¿no? ( Tiene pines demasiado pequeños para soldar... )
-
V-USB fue entonces mi segunda aproximación, ya que no necesita un convertidor USB/Serial ( que yo sepa ). Así que para usar V-USB necesitaría usar AVRDUDE como mencioné antes.
He encontrado este bonito ejemplo V-USB EasyLogger . Contiene un diseño de circuito y un firmware de ejemplo. ( C / C++ / HEX )
Lo único que quiero saber es ¿Realmente necesito hacer mi circuito como se muestra en el ejemplo? ->
¿Qué más necesito saber sobre este tipo de conexión USB? ( ¿Por qué necesito un convertidor USB / Serie? ¿Puedo simplemente conectar el +5 y VCC? ¿Qué componentes necesito? ¿Qué tipo de señal necesito enviar a través de TX? )
Gracias por todas sus respuestas.
ACTUALIZACIÓN
Aquí hay algunos enlaces adicionales que realmente me ayudaron en algunos puntos. Pero todavía no lo he entendido del todo...
el primero -> http://www.ernstc.dk/arduino/tinycom.html
y la segunda -> http://www.re-innovation.co.uk/web12/index.php/en/blog-75/227-attiny-arduino ( desplácese hasta la sección "Salida en serie" )
2 votos
Sí, lo hace, al menos si no quiere violar las especificaciones del límite eléctrico demasiado mal . Tenga en cuenta que su conector "USB" en su diagrama superior está muy mal etiquetado. D+/D- no son líneas de transmisión y recepción distintas, sino un par diferencial bidireccional .
0 votos
Lo siento por mi mal dibujo. En realidad no soy un electricista, sino un programador. El "dibujo" era sólo una visualización de mis pensamientos que tenía en mente mientras planeaba este proyecto.