Forum: Mikrocontroller und Digitale Elektronik Ansatz für ISP-Programmer


von Ralf (Gast)


Lesenswert?

Hallo,

ich hab mir hier selbst einen ISP-Programmer für die AT89S-Reihe von
ATMEL gebastelt. Funktioniert auch alles einwandfrei. Ich frage mich
aber, ob mein Ansatz für die Software richtig ist, oder ob es was
besseres gibt.

Ich habe für jeden Typ, den ich programmieren will, eigene Routinen
geschrieben, die entsprechend vom Programmer verwendet werden.

Jetzt stellt sich mir die Frage, ob es nicht sinnvoller wäre, eine Art
Interpreter dafür zu implementieren, und die Anweisungen, wie welcher
Controller zu programmieren ist, im Codespeicher des Programmers zu
hinterlegen. Nach ersten Überlegungen müsste das vom Speicherverbrauch
im Endeffekt kürzer sein, als für jeden Controller einen Satz fast
identischer Routinen zu implementieren. Denn aktuell unterstützt der
Programmer vier Typen, und es ist bereits knapp die Hälfte des
Code-Speichers des Programmers belegt.

Ist der neue Ansatz berechtigt? Und wenn ja, wie könnte ich das
sinnvoll lösen?

Danke

Gruß Ralf

von Freak5 (Gast)


Lesenswert?

Wie sieht dein Programmer denn aus, dass du nicht die Standartsoftware
nutzt?

Benutzt du eine andere Schnitstelle?

von Ralf (Gast)


Lesenswert?

Ist ein kompletter Selbstbau. Hab das Ding zum einen gebaut, um was zu
lernen (Learning-by-doing ist immer noch das beste), zum andern, weil
mein Parallel-Programmer die neuen AT89S nicht kann ;-)

Wird auch ganz normal über RS232 angeschlossen, d.h. ich könnte ihn
theoretisch auf irgendeine PC-Software anpassen.

Gruß Ralf

von Freak5 (Gast)


Lesenswert?

Da habe ich noch eine Frage:
Kann man die Routinen nicht in die PC-Software einfließen lassen? Wenn
du dort objektorientiert arbeitest, dann könntest für jeden Chip eine
Ableitung machen, der ebend nur diese kleinen Änderungen enthält.

Wenn dir dadurch die Software zu groß wird kannst du nocheinmal upx
drüberlaufen lassen :-) So könntest du deine Hardware dümmer lassen,
was die Sache einfacher macht(glaube ich)

Spricht etwas direkt dagegen? So wie ich das verstanden habe schickt
dein Programm immer die gleichen Daten in deinen Programmer und die
Rotinen sitzen dann auf irgendeinem Chip.

Das Problem liegt da ja auch in den Updatemöglichkeiten. Ich wenigstens
arbeite lieber an der PCSofware als an der Software von einem eigentlich
abgeschlossenen Hardwareprojekt.

von marcel (Gast)


Lesenswert?

mach die HW so dumm wie möglich, aber so intelligent wie nötig!

bau einen Programmer mit ein paar festen Routinen, die du dann per
PC-Software (etwas) anpassen kannst. (Flags oder sowas) und dann
speicherst du für jeden Typ, den du unterstützt die Flags und lädst die
vor dem programmieren in den programmer. so kannst du neuere bausteine
unterstützen OHNE das du jedesmal die firmware änderst.

auch solltest du daran denken eine art emulation zu ermöglichen, um
später neue bausteine zu unterstützen, die du nicht über die flags
unterstützen kannst. so kannst du zumindest (auch wenn es dann
erheblich langsamer geht) ganz neue bausteine programmieren.

von marcel (Gast)


Lesenswert?

das ist auch das problem mit dem AVRISP (die serielle version nicht die
stk500) gewesen (die neuen kann man damit nicht programmieren, weil
dort die "device codes" im programmer gespeichert sind und der zu
programmierende baustein über diese codes ausgewählt wird.
wenn nun ein neuer kommt müsste jedesmal man die firmware ändern um ihn
zu unterstützen.

von Ralf (Gast)


Lesenswert?

Ja, ich verstehe, was ihr meint. Die PC-Software ist leichter
anzupassen. Dazu müsste ich aber eine entsprechende
Programmier-Software für den PC haben. Könnt ihr dazu Empfehlungen
machen? Ich dachte an etwas wie Visual Basic oder Visual C/C++. Gibts
da was freies (=kostenloses) oder ziemlich geldbeutelfreundliches?

Gruß Ralf

von Tobias (Gast)


Lesenswert?

was hältst du den von visual c++ Express, ist eine Beta Version welches
das .net framework benutzt kostenlos von MS zu beziehen. Im neuen
Framework 2.0 gibt es auch eine Bibliothek, welche die serielle
Schnittstelle direkt anspricht. Ich benutze die Version für c#, und bin
sehr zufrieden damit, obwohl es nur ein Beta ist. Ansonsten gibt es doch
ein Haufen IDE's für c/c++ wenn man ein bisschen googelt.

Bsp: http://www.bloodshed.net/devcpp.html
sieht sehr vielversprechend aus

G. Tobias

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.