¿Qué microcontrolador se puede conectar directamente a un puerto USB?

9

Esencialmente, solo necesito enviar algunos datos al microcontrolador a través de USB, luego el microprocesador decodifica los datos y controla una tira de luz LED, que funciona a 5V. Estoy teniendo problemas para encontrar el microcontrolador adecuado para el trabajo.

El microcontrolador solo necesita tener 2 puertos de entrada serie para la comunicación USB, dos puertos de salida serie para la comunicación con la tira de LED y poder operar a 5V. Parece innecesario tener un IC dedicado para la comunicación USB cuando todo lo que necesito es un puerto serie COM configurado.

Por ejemplo, aquí está el fragmento de código de Arduino que escribe un byte en la tira LPD8806:

void write8(uint8_t d) {
  for (uint8_t i=0; i<8; i++) {
    if (d & _BV(7-i))
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);
   digitalWrite(clockPin, HIGH);
   digitalWrite(clockPin, LOW); 
  }
}

Para bloquear los datos, envíe ceros a la tira.

    
pregunta Steve Barna

4 respuestas

7

Supongo que por "dos puertos de salida en serie" te refieres a un UART (ya que también describes USB como 2 puertos). Rocketmagmet indica que muchas / la mayoría de las cadenas de LED usan SPI, pero que necesitarán al menos 3 cables. ¿Puedes especificar qué protocolo necesitas?

En general, Microchip tiene los microcontroladores de menor costo, también esta vez. Y Microchip también tiene muchos microcontroladores en el paquete DIL, mientras que muchos otros lo han abandonado. Puede ser importante para el bricolaje. El PIC18F13K50

  • existe en ambos paquetes, DIL-20 y SMT
  • funciona a 5 V (para interactuar con la tira de LED)
  • es de bajo costo a $ 2.5 (OK, eso es relativo, pero los controladores compatibles con USB son un poco más caros que los tipos más básicos)
  • tiene una interfaz mejorada de USART para UART
  • tiene una interfaz SPI en caso de que quisieras decir que
  • tiene 25 mA de fuente y E / S de sumidero, por lo que puede conducir directamente un par de indicadores LED si es necesario

Lecturas adicionales
Función genérica USB en un dispositivo integrado , Microchip Application Note AN1166

    
respondido por el stevenvh
4

Su tira de LED tiene una interfaz serial simple. Si solo está intentando controlarlo con una computadora, puede usar un chip FTDI para mover los pines: enlace

Entonces, la complejidad está del lado de la PC utilizando libftdi o D2XX de las bibliotecas. Pero no es tan malo, una complejidad similar a tu ejemplo de Arduino.

Si no tiene ganas de hacer hardware, puede comprar cables prefabricados con el chip FTDI de distribuidores FTDI como Mouser o Sparkfun, etc. Los cables están disponibles en diferentes configuraciones de voltaje, así que haga su pedido con cuidado.

Por supuesto, si desea que el proyecto sea independiente o autónomo de alguna manera, querrá una solución completa de microcontroladores.

    
respondido por el markrages
3

Considere utilizar el PSoC3 .

EstándisponiblesconUSBycasitodoslosperiféricosquedesee.(Estánconfiguradosenelsoftware)Ciertamente,podrátenerdospuertosserieparalastirasdeLED.Probablementepodrástener20siquieres.

Elentornodedesarrollotambiénesunplacerdeusar.

    
respondido por el Rocketmagnet
0

No puede ser más simple que esto: ATmega8U2 .

Para colmo, incluso puedes usar eso con el cargador de arranque Arduino ...

Hoja de datos: enlace

(perdón por ser un poco conciso, estoy escribiendo desde el teléfono)

    
respondido por el ppeterka

Lea otras preguntas en las etiquetas