16.04.2014 Views

V-USB Firmware driver para AVR. - edUTecNe - Universidad ...

V-USB Firmware driver para AVR. - edUTecNe - Universidad ...

V-USB Firmware driver para AVR. - edUTecNe - Universidad ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

La solución por software tiene una serie de<br />

ventajas únicas que los métodos anteriores no<br />

poseen, así como también una serie de<br />

limitaciones.<br />

Ventajas y desventajas de un <strong>driver</strong> <strong>USB</strong>:<br />

Ventaja: Un <strong>driver</strong> bien programado podrá ser<br />

usado en todas las familias de<br />

microcontroladores de una marca o incluso de<br />

varias marcas. La interfaz con el <strong>driver</strong> (o API)<br />

puede ser constante entre marcas, permitiendo al<br />

programador portar fácilmente su firmware a<br />

otra familia, posiblemente, muy diferente.<br />

Desventaja: No existe actualmente un <strong>driver</strong><br />

multimarca. En cambio los modulos externos<br />

como el FT2232H si puede ser usado en<br />

cualquier familia o marca.<br />

Ventaja: Al no estar conformado por transistores,<br />

un <strong>driver</strong> no ocupa tamaño físico en la<br />

electrónica interna del microcontrolador,<br />

permitiendo que éste posea otros módulos en su<br />

lugar.<br />

Desventaja: En cambio, un <strong>driver</strong> ocupa tiempo<br />

de procesamiento. Aunque mientras no hay<br />

transferencias, el tiempo es un 5% o menos, y<br />

mientras hay transferencias puede ser mucho<br />

mayor, pero el <strong>driver</strong> no detiene el firmware.<br />

Ventaja: Los pines utilizados no están fijos y<br />

pueden ser cambiados por software a<br />

conveniencia, por lo que usar comunicación<br />

<strong>USB</strong> no te quitará ese valioso pin de ADC o<br />

PWM que te serviría de mucho usar.<br />

Desventaja: Una interrupción de alta prioridad<br />

debe ser usada.<br />

Ventaja: Un <strong>driver</strong> puede no implementar<br />

completamente el protocolo haciendo uso<br />

solamente de lo que necesita, puede incluso<br />

violar algunas de las especificaciones, como por<br />

ejemplo realizar una transmisión en masa en un<br />

dispositivo de baja velocidad.<br />

Desventaja: Violar especificaciones cuando se<br />

implementa <strong>USB</strong> por software en dispositivos de<br />

muy baja velocidad es casi forzado <strong>para</strong> obtener<br />

el mejor rendimiento, y nunca es buena idea.<br />

Ventaja: Puede ser completamente desconectado<br />

por software, evitando así que consuma energía<br />

cuando no es usado, a diferencia de las demás<br />

soluciones que requieren de una señal de clock<br />

adicional ya sea por cristal externo o por PLL,<br />

hace que el modo idle o de bajo consumo sea<br />

mas difícil de lograr.<br />

Desventaja: Se puede usar solo un conjunto<br />

finito de frecuencias de clock <strong>para</strong> poder<br />

mantener la sincronización, y ésta de vez en<br />

cuando puede que se pierda, pero el <strong>driver</strong> se<br />

encarga de recuperarla.<br />

Ventaja: Un <strong>driver</strong> tiene costo de producción<br />

nulo.<br />

Desventaja: Las licencias y el par VID/PID <strong>para</strong><br />

aplicaciones comerciales no son siempre<br />

gratuitos.<br />

Ventaja: Un <strong>driver</strong> no se puede quemar y no se<br />

suelda.<br />

Ventaja: Puede ser usado en familias con<br />

encapsulado DIP, ideal <strong>para</strong> pruebas en<br />

protoboards.<br />

Ventaja: Puede ser usado junto con otro modulo<br />

interno de <strong>USB</strong> y con otro externo como el<br />

FT2232H pudiendo tener mas de una interfaz<br />

<strong>USB</strong>. Por ejemplo, un modulo interno On-The-<br />

Go <strong>para</strong> comunicar con otro dispositivo como<br />

host y el <strong>driver</strong> como esclavo.<br />

Ventaja: No usa el puerto UART, por lo cual el<br />

mismo puede ser usado con otros propósitos,<br />

como <strong>para</strong> conectar con otro dispositivo, como<br />

interfaz de debugueado mandando caracteres a<br />

una PC, como interfaz de bootloader por puerto<br />

serie, etc.<br />

Ventaja: Puede programarse <strong>para</strong> funcionar<br />

como bootloader por <strong>USB</strong>. Esto presenta una<br />

ventaja adicional. Se puede programar <strong>para</strong><br />

simular ser un grabador ISP por <strong>USB</strong> como el<br />

<strong>USB</strong>asp y usar el mismo software de grabación.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!