Ist es möglich, AVR-Mikrocontroller mit einem USB-UART-Konverter anstelle von USBasp zu programmieren?

Ist es möglich, einen AVR-Mikrocontroller (z. B. Atmega328P) mit einem USB-UART-Konverter wie diesem zu programmieren:

USB-UART-Konverter

Anstelle eines gewöhnlichen USBasp-ISP-Programmierers:

USBasp ISP-Programmierer

?

Wenn ja, ist das Verfahren das gleiche wie beim USBasp-Programmierer oder sind zusätzliche Schritte erforderlich?

Ja , aber es ist sehr langsam.

Antworten (1)

AVR-Mikrocontroller werden entweder über die ISP-Schnittstelle (In-System Programming) oder JTAG (Joint Test Action Group, das ist ein IEEE-Standard für die In-System-Programmierung und das Debugging von Mikrocontrollern, FPGAs usw.) programmiert. AVR ISP verwendet ein dreiadriges SPI (Serial Peripheral Interface), um mit dem Mikrocontroller zu kommunizieren, und muss außerdem in der Lage sein, den Reset-Pin anzusteuern. SPI und UART sind sehr unterschiedlich (SPI ist synchron, während UART asynchron ist), sodass Sie keinen einfachen USB-zu-UART-Konverter verwenden können, um Ihren Mikrocontroller zu programmieren

Eine Alternative dazu ist die Verwendung eines Bootloaders. Der Bootloader ist ein Teil der Software auf Ihrem Mikrocontroller, der die Programmierung über zB USB oder UART ermöglicht. Das Problem ist, dass Sie den Bootloader mit ISP oder JTAG programmieren müssen, bevor Sie ihn verwenden können. Viele Evaluierungsboards werden mit vorinstallierten Bootloadern geliefert, um die Programmierung über USB zu ermöglichen.

Wenn Sie jemanden mit einem ISP-Programmierer finden, könnte er einen Bootloader programmieren und Sie können dann den USB-zu-Seriell-Konverter verwenden. Andernfalls müssen Sie einen ISP-Programmierer kaufen/bauen oder auf einen Controller oder ein Evaluierungsboard mit vorinstalliertem Bootloader umsteigen.

Aber wird ISP nicht mit einer einfachen seriellen Kommunikation durchgeführt? Grundsätzlich gibt es 3 Linien: MISO, MOSI und SCLK. Kann es nicht von TX & RX-Leitungen von UART emuliert werden? Ich sehe jetzt jedoch, dass noch eine Taktleitung erforderlich ist, die in UART fehlt ...
Da UART asynchron und ISP (unter Verwendung des SPI-Protokolls) synchron ist, ist dies nicht möglich. Außerdem muss der Programmierer in der Lage sein, den Reset-Pin anzusteuern. Ich habe dies auch zu meiner Antwort hinzugefügt.