ATmega328p y conexión USB a PC

1

Publiqué la misma pregunta en StackOverflow y fui redirigido aquí.

Para mi proyecto necesito poder programar el eeprom de un Atmega 328p a través de un USB a PC. Intenté incorporar un programador USBasp en mi circuito, pero no tuve éxito. La PC no reconoce al programador, por lo que no puedo instalar los controladores.

Así que mi pregunta es:
¿Alguien sabe cómo puedo actualizar el eeprom Atmega 328p a través de USB. ¿Hay alguna comunicación básica que pueda usar?

Sé que hay cargadores de arranque, pero mis habilidades de programación no son adecuadas para hacer las mías y no puedo encontrar una adecuada.

Mi código para el Atmega 328 está escrito en Atmel studio 6. Gracias por la ayuda.

EDITAR: Ya tengo un programador para el chip de atmel, pero necesito algún tipo de opción de programación directamente en USB. Es por eso que incorporé un USBASP en el diseño de mi placa. Me gustaría poder abrir un programa simple en una PC, configurar algunos parámetros y luego cargarlo en el eeprom de mi 328. Todo eso sin un programador adicional (un dispositivo simple de conectar y usar para cualquier otro usuario).

    
pregunta user3713940

4 respuestas

1

Compré un programador creado por Atmel AVRISP mkII y utilicé Atmel Studio. Debería poder programar todo de los chips de 8 bits de Atmel. No creo que puedas hacer una depuración en tiempo real con él. Pero la programación es muy fácil.

    
respondido por el Nazar
0

Suponiendo que tiene un encabezado ICSP de 6 pines en su tablero para programar el '328p, luego un programador de dispositivo como USBasp, AVRISP mkII de Atmel, AVRtinyISP, etc., junto con el programa de programación AVR' avrdude '(y Tendremos que profundizar en cómo usarlo) obtendrás lo que deseas.

    
respondido por el Techydude
0

Es posible improvisar una aproximación lo suficientemente cerca de una interfaz USB para el ATmega328p usando dos pines GPIO y componentes externos. Sin embargo, "lo suficientemente cerca" no significa necesariamente "en especificaciones" y, por mucho que haya tenido problemas con el USBasp, que es una implementación de la misma idea, es posible que, en casos excepcionales, no pueda hacer que esto funcione con una PC host en particular. . La selección adecuada de los componentes, el cronometraje adecuado, el cableado correcto y geométricamente limpio, etc. son necesarios, aunque este método utiliza la forma más baja de USB, sigue siendo una señalización de alta velocidad que no aprecia la corrupción de la señal.

Y sí, necesitarás software. Es probable que pueda crear esto mediante una combinación de ejemplos de LUFA, ejemplos de cargador de arranque, ejemplos de eeprom, pero espere hacer un trabajo y aprender algunas cosas aquí. No es la función de los sitios de intercambio de pila escribir su firmware por usted o identificar una sitio donde se ha publicado una implementación de lectura para ir.

Probablemente le será más fácil crear un diseño robusto si usa un microcontrolador con una interfaz USB, como el ATMega32u4 ya mencionado.

    
respondido por el Chris Stratton
0

Si está dispuesto a agregar chips a su proyecto, puede agregar algún tipo de chip UART USB, como FT232 de FTDI, PL2303 de Prolific o CH340 de WCH a su diseño. Esto le dará acceso en serie al ATmega328P y su código podrá actualizar sus contenidos EEPROM. O tal vez simplemente refactorice su proyecto en un escudo Arduino y use la plataforma de hardware Arduino probada (y ya que está utilizando Atmel Studio, puede ignorar el IDE de Arduino de manera segura)

O puede usar un AVR habilitado para USB como ATmega32U4 . Sin embargo, esto puede o no requerir que ruedes tus propios controladores.

Hablando de la programación, avrdude puede leer el archivo de salida hexadecimal o bin de Atmel Studio, y le permite usar una amplia gama de programadores, desde AVRISP mkII a Arduino como ISP para golpear los bits usando un Bus Pirate a Linux puro Acceso SPI utilizando spidev. Solo inténtalo.

Hablando de EEPROM, se puede acceder mediante registros especiales en su AVR.

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas