Ansatz für ISP-Programmer

Gast #210606
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
Gast #210608
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
Gast #210609
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.
Gast #210610
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.
Gast #210611
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.
Gast #210612
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
Gast #210613
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.