Buenos dias, una consulta: como lo hacen para usar comunicacion usb con microcontroladores que no tengan USB nativo? y esto sin usar drivers ni nada parecido, solo plug and play. He visto esto con un ATMEGA 16-16AU y que yo sepa y segun lo que vi en los datasheets, este MCU no tiene usb nativo.
Para esto necesitas un conversor externo USB -UART, por ejemplo ch340 i drivers. Sin drivers no lo hacen.
Si, eso lo se, mi consulta es cuando no llevan ningun conversor USB-UART
creo que lo no es possible sin USB nativo i no usan ningun externo conversor
Si no tiene USB nativo no veo cómo podrían hacer para no usar un conversor y que además el conversor no necesite de algún driver.
Sé más específico, adjunta el ejemplo que has visto con el 16-16U, así lo vemos (y aprendemos).
Si, es posible acceder a USB directamente desde pines de E/S digitales, como TX y RX y también con los pines de E/S digtal estándar podrían usarse para ese propósito. Pero necesitas un código de gestor de arranque dedicado para hacer esto y tiene un rendimiento inferior a si usas un convertidor usb a serie . El ADAFruit Arduino Trinket, por ejemplo, utiliza este sistema.
La placa que he visto es una board usb para gamepads, y aunque no le tome foto por la parte posterior si la vi, y no tiene ningun conversor dedicado, mi duda va mas por las velocidades del USB, si el chip trabaja a 12Mhz me imagino que la comunicacion maxima a establecer podria ser USB1.0 que es a 1.5Mbps, existe alguna libreria para simular un puerto USB donde la velocidad no sea una limitante?
@gonpezzi El Thinket M0 tiene USB nativo, el original (Attiny85) no tiene USB nativo.
De la página de Adafruit sobre las características del Thinket M0
Native USB supported by every OS
can be used in Arduino or CircuitPython as
USB serial console, Keyboard/Mouse HID, even
a little disk drive for storing Python scripts.
(ATtiny85 does not have native USB)
Suponiendo que que el Thinket M0 use la misma técnica usada en la Pi Pico (ambos tienen núcleos M0+ así que es muy probable), generan un puerto virtual USB CDC que trabaja a 48 MHz, eso es gracias a las características de los GPIOS y al microkernel.
La pi pico tiene USB nativo con su MCU RP2040 sobre USB CDC, no se a que te refieres al limitar solo a eso, ya que en la foto que puse es un USB HID, se entiende que al emular ya el puerto USB se podria usar cualquier clase, eso ya es protocolo; mis dudas van mas por el lado electronico, en como emula una señal diferencial solo con pines digitales y la velocidad de trabajo de un puerto USB
La señal diferencial es simple, cuando un pin se pone a 1 el otro (el "complementario") se pone a 0 y viceversa, y ya tienes una señal desfasada 180°.
El tema velocidad, generalmente con un PLL interno del propio micro (como el caso de la Pico).
Dar mayores datos creo que excede a la mayoría de los que andamos por acá (o al menos a mi me excede), aunque no dudo que información al respecto debe abundar en la red como para profundizar en el tema.
Saludos
Existe una libreria software para dar soporte USB a los microcontroladores AVR de Atmel, que no tienen usb nativo. Esta se llama V-USB. La libreria está bajo licencia GNU y en su página web indican como ha de ser el hardware y los pines para su conexión:
Puede que alguno le resulte familiar ya que es la libreria que usa el programador USBasp.
Aunque la verdad no he conseguido hacerla funcionar...
Excelente aporte, si te fijas en el pcb que puse mas arriba, las resistencias de 68Ω y la de 1.5kΩ coiciden con el esquematico que has puesto, por lo que creo que lo que indicas es el camino correcto.
Posiblemente tu placa esté basada en V-USB. Uno de los proyectos que hay en su página web es un Circuit for USB game controller with 12 inputs (8 buttons + 4 directions).
De hecho dicho proyecto esta basado igualmente en un AtMega16U.
Recien me di cuenta que es un atmega8 con apellido 16U
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.