USB OTG es básicamente como un mini-host y puede conectarse a unidades flash, teclados, impresoras, concentradores, básicamente lo que quieras. Las diferencias clave entre un host USB OTG y un host USB regular (como su PC) son:
- Un producto USB OTG también puede actuar como un dispositivo USB normal. Hay un conector especial (Micro / Mini A-B) que admite tipos de enchufes A y B e incluye un pin de identificación que le indica a su producto si debe actuar como host o dispositivo (según el tipo de extremo del enchufe conectado). Tenga en cuenta que la nueva especificación USB 3.1 y el conector tipo C funcionan de manera un poco diferente, pero el concepto es el mismo.
- No se requiere un host USB OTG para admitir todos los tipos de dispositivos USB. Suministra una lista de dispositivos que su host OTG admite con su producto. Por ejemplo, puede enumerar una marca particular de unidad flash y, si hay algo más conectado, su producto solo puede mostrar un mensaje indicando que no es compatible. Los hosts USB normales deben admitir la gama completa de tipos de productos para que sean 'compatibles con USB' (en realidad es un poco más complejo que esto, pero esa es la idea general).
- La especificación OTG proporciona un protocolo especial para permitir que dos dispositivos OTG conectados entre sí inviertan roles. Esto podría ser útil si, por ejemplo, su producto está conectado a un teléfono móvil (otro dispositivo OTG) pero con el cable al revés. El Protocolo de negociación de host (HNP) permite que los dispositivos cambien las funciones sin que el usuario tenga que cambiar físicamente el cable (tenga en cuenta que todo esto se modifica con el nuevo conector de tipo C).
Entonces, sí, puede utilizar la funcionalidad OTG para almacenar datos en una unidad flash, y este es un uso bastante común. Sin embargo, tendrá que escribir una gran cantidad de software para lograr esta funcionalidad. Los recursos limitados en el PIC32 también pueden impedirle admitir demasiados dispositivos al mismo tiempo o ejecutar periféricos más complejos.
Además, si su producto no necesita actuar como un dispositivo, no es un producto OTG sino simplemente un host integrado. En ese caso, no debe preocuparse por los elementos 1 y 3 que he enumerado anteriormente.