Hallo zusammen. Ich habe vor, ein Programm in VB zu schreiben, das mir sowohl das Programmieren als auch das Auslesen des Flash-Speichers und des EEPROMs über die ISP-Schnittstelle ermöglicht. Die ausgelesenen Daten sollen ausgewertet werden. Zunächst soll das Programmieren auf einen AVR-Type begrenzt werden. Ich weiss, dass es bei Atmel AVR Studio gibt, aber das löst mein Problem nicht. Ich brauche ein Programm, das in der Lage ist, die HEX-Datei für den Flash-Speicher zu ändern, an den zu programmierenden uC zu übertragen, das EEPROM auszulesen und einige Speicherzellen davon auszuwerten. Das Programm soll auf die Application Note AVR910 basieren. Hat schon mal jemand von Euch was ähnliches gemacht? Für jeden Vorschlag bin ich sehr dankbar.
Hallo... Ich habs in QBASIC gemacht (QB 4.5), weil ich mit Pony nix gebacken gekriegt habe... Dabei habe ich mich strikt an die Datenblätter der AVRs gehalten. Mein ISP-Adapter ist auch etwas unüblich, er bekommt extern 5V und versorgt die Zielschaltung mit. Da das Programm noch lange nicht alle AVR-Typen unterstützt und ich keine Lust darauf habe, andauernd Anfragen nach dem Motto "warum geht das mit dem Typ xyz nicht?!" beantworten zu müssen, möchte ich Programm & ISP-Adapter nicht für die Öffentlichkeit frei geben. Ziel war nicht, ein (möglichst perfektes) ISP-Programm zu schreiben, sondern mit den vorhandenen Mitteln möglichst schnell und preiswert AVRs zu programmieren. Und da das "Vorhandene" bei mir nicht funktionierte, musste QB dran glauben, das hat schon so manche Probleme beseitigt bzw. gelöst... Ich habe auch nicht die Absicht, alle Typen zu implementieren, mir reicht es, wenn das Programm die Typen brennt, die ich selbst verwende. Sollte ich mit einem neuen Typ beginnen, dann wird dieser Typ eben implementiert (laut Datenblatt). Bisher werden folgende Typen unterstützt: AT90S 1200, 2313, 4433, 8515, 8535 AT-Tiny 12, 15 AT-Mega 8, 32 (beide noch nicht getestet!) Auf Brennen von Lock-Bits wurde verzichtet. Das Lesen / Brennen von Fuse-Bits ist bisher auch noch nicht implementiert. Beim Tiny12 und 15 wird automatisch der interne RC-Oszillator kalibriert, indem beim Löschen das Kalibrationsbyte in die letzte Zelle des Flash kopiert wird (wie es der Hersteller macht), solange das Programm die letzte Zelle nicht belegt. Bei den Megas wird das zwar auch gemacht, ist aber noch nicht getestet. Weiterhin ist ein Löschzähler vorhanden, der anzeigt, wie oft ein Chip gelöscht wurde. Bei kalibrierbaren Typen werden dabei die Chips anhand des Kalibrationsbytes unterschieden (ich hatte noch keine zwei gleiche...). Die Oberfläche ist Rollbalken-orientiert, auf Mausunterstützung wurde bewusst verzichtet. Die Dateiroutinen setzen voraus, dass die Daten (HEX, EEP) im selben Ordner liegen wie das Programm, auf Ordnerwechsel wurde bewusst verzichtet. Ich kopiere das Programm eben in jedes neu begonnene Projekt. Da das Programm als selbstständig laufende EXE nur 73KB groß ist, kann ich damit leben... Ich arbeite unter WIN98SE, mit NT-basierenden OS wird das Programm wohl nicht funktionieren... Warum willst du das in VB machen? Wie willst du unter VB die LPT ansprechen? VB ist mir nicht ganz fremd, habe damit einige Programme, u.a. im Foto- und Sound-Bereich erstellt (Fotoarchivierung/Verwaltung, HTML-Fotoalbum-Generator, Soundbearbeitung/Schnitt für Modellbau...). Ich habe aber bisher noch keinen Weg gefunden (aber dank QB auch noch nicht intensiv gesucht), Direktzugriff auf den I/O-Bereich zu programmieren. Mit GFA-BASIC soll das gut gehen, damit habe ich aber noch nix gemacht... Bit- & Bytebruch... - ...HanneS...
Hallo! Ich kann dir zwar beim Problem des Brennens selber keine Tipps geben, kann dir aber sagen, dass der Zugriff auf Parallelschnittstelle überhaupt kein Problem darstellt. Ich hbe eine Schrittmotorsteuerung in VB programmiert und habs bei mir mit Win95/Win98SE getestet, keine Ahnung obs auch mit NT funktioniert, könnte sein, kann dirs aber nicht garantieren. Falls du Tipps brauchst hierzu, dann melde dich, aber es gibt APIs dazu, die so odr so gut dokumentiert sind. Grüsse
Hi Pfi... Stimmt, inzwischen habe ich auch davon gehört. Aber als ich das brauchte, hatte ich noch keinen Internet-Zugang, die Freunde, die Zugang hatten, hatten keine Ahnung... Da war es einfacher, sich auf IN und OUT des QB zu besinnen und das damit zu realisieren. Inzwischen bin ich auf dem Punkt, dass ich VB den Rücken kehren möchte, komme aber schlecht davon weg. M$ versteht es, einem den Weggang schwer zu machen. GFA wäre die interessante Alternative, aber ich finde einfach nicht die Zeit (oder ist es die Lust?) für den Einstieg... Auch Purebasic steht als Alternative zu VB zur Debatte, ich habe aber noch nicht recherchiert, ob es dafür eine API für I/O-Direktzugriff gibt. Trotzdem danke für den Hinweis... Kannst ja mal einen Link hier posten, wo es die API und eine (möglichst deutsche) Doku dazu gibt... Bit- & Bytebruch... - ...HanneS...
@Hannes Lux >Warum willst du das in VB machen? >Wie willst du unter VB die LPT ansprechen? Die Programmierung soll über die serielle Schnittstelle stattfinden und auf die AN910 basieren. Ich habe es oben erwähnt. Ich habe mich für RS232 und VB entschieden, weil ich mir ein Programmiergerät gebaut habe, das auf AN910 basiert. Es versorgt die Zielschaltung mit 5V und die FW wurde für die Unterstützung anderer Typen erweitert. Ich habe auch nicht die Absicht, alle Typen zu implementieren. Das Programm soll einen bestimmten Typ programmieren, auslesen, EEPROM auslesen und auswerten können. Auf Brennen von Lock-Bits, Lesen bzw. Brennen von Fuse-Bits werde ich verzichten. da, wie Pfi gesagt hat, der Zugriff auf Parallelschnittstelle überhaupt kein Problem darstellt, überlege ich schon, ob ich ein Programmiergerät für die LPT bau und (laut Datenblätter) ein Programm in VB schreibe. Unter WIN95/98 würde es ohne Probleme funzen. Unter WinXP habe ich es bis jetzt noch nicht probiert, ob der Zugriff auf die LPT Probleme bereitet. Ich glaube von Burkhard Kainka gibt es eine API für die LPT. @Pfi >Falls du Tipps brauchst hierzu, dann melde dich. Ich komme gern drauf zurück, wenn ich so weit bin. Ich will es aber erstmal über die RS232 mit dem vorhandenen Programmiergerät und der FW AN910 probieren, weiss aber nicht, wo ich anfangen soll. Mir fehlt das Protokoll der AN910. Ich danke euch für die raschen Antworten.
Hallo zusammen, ich habe das gleiche Problem wie der Themenstarter. Die RS-232 über VB anzusprechen ist relativ einfach, ich weiß aber nicht wie ich damit den AVR zum Ein-und Auslesen von z.b. Flash und EEProm bringen kann (Bootloader?). Über die LPT könnte ich den serielle Programmiermodus(MISO,MOSI,SCK) vom AVR bedienen. Dazu gibt`s im Netz diverse API`s für VB. Die Befehle und das Timing der seriellen Programmierung vom AVR sind in den AVR-Datenblättern gut beschrieben. Hab allerdings lange nicht`s in VB programmiert und sollte mich daher mal intensiv um die LPT-Ansteuerung kümmern. Gruß Robert
Hi Hannes! Vergiß GFA, PureBasic ist besser, ich steige gerade um. Vor allem gibt es Unmengen Beispielprogramme, auch für RS232 und LPT. RS232 habe ich gestern implementiert, gibt es auch verschiedene Varianten mit DLL (PORT.DLL und InpOut32.DLL) und Libs (MVCOM muß ich mal noch ausprobieren). Habe PureBasic hier im Forum gefunden, dass hätte mir vor einem halben Jahr über den Weg laufen müssen. ;-) Sven
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.