Keine Antwort vom AVR-Mikroprozessor während der Programmierung

Ich habe versucht, ein paar verschiedene Mikrocontroller mit nichts anderem als einem FTDI 5V TTL-Kabel und selbst geschriebener Software zu programmieren, um die benötigten Pins auf den Chips zu bitbangen. Bisher hatte ich nur mit meinen AT89S52-Chips Erfolg, aber mit den anderen habe ich ein ähnliches Problem. Der Rest ist ein ATmega8, ATtiny13 und sogar ein PIC16F84A.

Keiner dieser Chips scheint während der Programmierung auf die entsprechenden Pins (MISO, SDO usw.) zu reagieren. Diese Pins scheinen sich immer in einem hochohmigen Zustand zu befinden und werden weder auf HIGH noch auf LOW gezogen.

Ich habe dies mit einer einfachen LED-"Logiksonde" überprüft, meinem Arduino als Logikanalysator, Oszilloskop. Es gibt einfach keine Antwort von diesen Chips. Ich habe sogar versucht, vom Arduino mit einfachen Skizzen (SPI oder Bitbang) mit genau dem gleichen Effekt zu programmieren.

Gibt es etwas, das ich übersehe oder offensichtlich falsch mache? Bei allen Mikrocontrollern habe ich die Pins direkt mit den Drähten des FTDI-Kabels (oder den Pins von Arduino) verbunden, und falls eine HV-Programmierung erforderlich ist, habe ich die folgende Schaltung verwendet (die anscheinend gut funktioniert, wenn ich mit meinem Multimeter messe) :

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Antworten (2)

Eine Möglichkeit ist, dass die Chips, die Sie programmieren möchten, einen externen Oszillator erwarten, anstatt ihre internen RC-Oszillatoren zu verwenden. Ich weiß, als ich zum ersten Mal einen AVR programmierte, hatte ich die Sicherungen falsch eingestellt, also musste ich einen externen Oszillator hinzufügen, um ihn erneut programmieren zu können.

Erfolg nur mit meinen AT89S52 Chips [...]

Dieser alte Chip hat Reset aktiv hoch, was ansonsten ungewöhnlich ist.

ATmega8, ATtiny13 und sogar ein PIC16F84A

Diese haben Reset active low und benötigen wahrscheinlich eine andere Reset-Schaltung.

Ich habe verschiedene Programme für jeden Chip, sodass der Reset-Level für die Art des Chips geeignet ist. Der Reset-Pin wird nach unten gezogen, wo es durch den entsprechenden Draht am FTDI-Kabel oder Arduino-Pin erforderlich ist