Forum: Mikrocontroller und Digitale Elektronik Parallel programmieren!


von Sencer Soylu (Gast)


Lesenswert?

Hallo,
ich verstehe jetzt, wie man einen µC Parallel programmieren kann!
habe mir nochmal das Datenblatt von meinem µC angeschautt!
Kann ich den µC Parallel mit den Händen programmieren, also an den µC
Schalter anschließen und in einer bestimmten reihenfolge diese Schalter
auf LOW oder HIGH setzten oder braucht man eine feste frequenz?
Danke.

von Heinz (Gast)


Lesenswert?

Hi Sencer,

also ich traue mir nicht zu, mit Schaltern für die Bits und Clock die
richtigen Befehlssequenzen von Hand an den AVR zu schicken. Ich wette,
dass ich mich da verheddern würde oder dass es Fehler wegen schlechtem
Timing gibt. Vielleicht schaffst du das ja, ich sicher nicht.

Aber du hast mich auf eine Idee gebracht, die ich leider nicht umsetzen
kann, da ich keine "zerschossenen" AVRs liegen habe.

Das wäre ein autonomer Parallelbrenner in einem AVR, der nur alle Fuses
wieder so setzt, dass man wieder seriell programmieren kann. Also für
dich würde sich das lohnen. Wenn du, wie du oben schreibst, das
Parallelprogramming (und den Befehlssatz dazu) verstanden hast, dann
dürfte das Erstellen eines AVR-Programms dafür kein Problem für dich
sein. An einem 8-Bit-Port legst du das Datenbyte, den Rest steuerst du
Bitweise. Brauchst dann noch eine Transistorschaltung zum Schalten der
+12V auf die Reset-Leitung.

Das Teil könntest du dann z.B. "AVR-Retter" nennen. Es kann zwar kein
Programm brennen, aber einen vermurksten AVR wieder gefügig machen.

Schade eigentlich, dass ich keine vermurksten AVRs rumliegen habe.

MfG, Heinz

von Sencer Soylu (Gast)


Lesenswert?

Ja, daran habe ich auch gedacht!
Ich habe mir das so vorgestellt:
eine Platine wo man den nicht seriell programmierbaren µC draufsetzt
und mit einer Taste wieder in den ursprünglichen zustand versetzt. Und
vielleicht noch eine Taste, um den µC zu löschen!
Erst aber versuche ich mal meine alten µC freizuschalten!

von Heinz (Gast)


Lesenswert?

Hi Sencer,

ohne Löschen wird das wohl nicht gehen, denn (wenn ich mich nicht irre)
sind bei einigen AVRs einige Fuses nur bei gelöschten Lock-Bit
erreichbar und diese löscht man wiederum durch Löschen des Chips.

Die korrekte Initialisierung findest du ja im Datenblatt, danach
müsstest du den Löschbefehl senden, die Signature-Bytes einlesen um den
AVR-Typ zu identifizieren, die zum Typ passenden Default-Werte der
Fusebits und Lockbits aus einer Tabelle (im Flash) holen und in den AVR
schreiben. Danach den AVR freigeben (Reset & Strom wech).

Bedienelemente brauchst du außer einem Schalter und einer
"Fertig"-LED eigentlich nicht. Du solltest alle benötigten Signale,
also auch den externen Takt an XTAL1 vom AVR erzeugen. Da du 18 (mit
VCC 19) Leitungen steuern musst, musst du schon mindestens einen DIL-28
(Mega8 oder 4433) einsetzen, damit du genug Portpins hast. Ein DIL-40
geht natürlich auch.

Also jetzt mal Spaß beiseite, das Projekt ist realisierbar und dürfte
für dich eine Herausforderung sein.

Sicher ist es für den Profi Quatsch, der will dann auch gleich parallel
programmieren, aber das ist für dich als Anfänger sicher eine Nummer zu
komplex.

MfG, Heinz

von Sencer Soylu (Gast)


Lesenswert?

Bin eigentlich kein Anfeänger, bin nur mit den Fuse-bits überfordert!
Ich besorg mir einfach einen ATmega5815(40-DIL) und programmiere ihn
so, dass es die Fuse-Bits jedes AVR-µC in den Auslieferungszustand
versetzt. Bei diesem µC(ATmega8515) werde ich lieber die finger von den
Fuse-Bits lassen. der interne 1MHz Oszialltor müsste reichen!
Um Parallel programmieren zu können, muss man am XTAL1-Pin einen Impuls
für mindestens 250ns geben. Bei 1MHz wäre das eine Impulsdauer von
1000ns. Also müsste das gehen.
Konnte leider mit den Händen den µC nicht in den Auslieferungszustand
versetzten!?

von Heinz (Gast)


Lesenswert?

Hi Sencer,

du bist also kein Anfänger. Ich schon, denn zu den Fortgeschrittenen
oder gar Profis zähle ich mich noch lange nicht.

Naja, das mit den Fuse-Bits kann schon etwas verwirren, ich habe daher
in meinem Eigenbau-ISP-Programm etwas mehr Aufwand für die Darstellung
getrieben, lasse mir also die Takteinstellung zusätzlich im Klartext
anzeigen. Daher ist die Gefahr recht gering, dass ich eine falsche
Taktquelle einstelle. Für sämtliche Fusebits und Lockbits lasse ich mir
auch die Defaultwerte (laut Datenblatt) anzeigen, so dass ich im Zweifel
nicht mehr im Datenblatt nachsehen muss. Das ISP-Programm ist allerdings
für DOS programmiert, es läuft unter WIN98SE im Vollbildmodus. Es hat
keine Maus-Klickboxen sondern Rollbalken-Menüs (Pfeiltasten, Enter,
ESC).

Du willst den "AVRretter" also mit Mega8515 machen. Gute Wahl, da
reichen mit Sicherheit die Pins auch für zukünftige Erweiterungen. Die
internen 1MHz gehen auch, solange du keine serielle Verbindung zum PC
brauchst (soll ja NUR ein autonom arbeitender "Löscher / Resetter"
werden und kein Programmer). Ich habe nochmal überlegt, der Zugriff auf
den verbastelten AVR dauert doch nicht lange (weit weniger als eine
Sekunde), da reicht es doch, wenn man einen Taster in die
Stromversorgung schaltet, den man so lange betätigt, bis die
"Fertig"-LED leuchtet oder eine "Busy"-LED verlischt.

Mit Parallel-Programming habe ich mich bisher noch nicht befasst, meine
AVRs konnte ich bisher alle seriell programmieren, Lockbits habe ich
bisher kaum gesetzt, wozu auch, sind doch keine Staatsgeheimnisse drin.
An den Fuses habe ich bisher nicht mehr verändert als unbedingt
erforderlich war, und das ging dank guter Vorbereitung via Datenblatt
bzw. durch die eindeutige Anzeige im ISP-Programm bisher immer gut.

Jedenfalls wünsche ich dir viel Erfolg. Berichte mal, wenn du es fertig
hast. Und mach dir nix draus, wenn ich dich hier und da etwas
"belöffelt" habe, es war alles mit Humor gemeint.

MfG, Heinz

von Sencer Soylu (Gast)


Lesenswert?

Danke.
Wenn es funktioniert, werde ich die Schaltung hier im Forum
veröffentlichen. Somit muss niemand einen µC wegschmeissen oder sonst
was!

von Gunter (Gast)


Lesenswert?


von Sencer Soylu (Gast)


Lesenswert?

Oh man,
sowas giebt es schon!
Na egal, die Schaltung habe ich auch auf der Festplatte. Ich verstand
nicht, wozu es gut war.
Werde eine bessere Schaltung erstellen, damit es jeder versteht mit
beschriftung und so!

von Gunter (Gast)


Lesenswert?

Hi,
>Ich verstand nicht, wozu es gut war.
im Readme steht ein Verweis auf ParProg.pas und da steht drin
wazu das gut ist

Gruß
Gunter

von Tobi (Gast)


Lesenswert?

da hat gunter recht.

allerdings bleibt noch mindestens ein wichtiges feature für dich über:
den uC typ erkennen und dann die passenden(!) einstellungen für lock
und fusebits laden

damit wäre der avr-retter :) dann auch recht universell einsetzbar.
dazu schreibst du dann eine gute doku und layoutest ein fertiges board
mit nullkraft-sockeln für alle unterstützten uC

nur mal so nebenbei: ich hätte interesse an so einer schaltung - geht
schneller als immer das stk500 rauszukramen, vor allem da das nur
absolut besch...eidene sockel hat

von Gunter (Gast)


Lesenswert?

Hi

dann würde ich auch ALLE Signale vom Controller steuern
(zumindest PAGEL habe ich fest auf GND verdarahtet) und
würde darauf achten, daß ich die UART-Pins nicht benutze.
Vielleicht kommt ja doch mal eine Erweiterung mit PC-
Kommunikation.

Gruß
Gunter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.