Forum: PC-Programmierung AppNote AVR911


von Daniel B. (khani)


Lesenswert?

Hallo Leute,

vielleicht hat sich jemand schon mal mit der AppNote 911 von Atmel
(Stichwort "AVROSP") beschäftigt.
Also ich habe am Wochenende genau das getan. Nach einem ersten Test,
musste ich mir erst mal Bloodshed runterladen (was ja eher noch ein
Vorteil ist). Dann konnte ich meinen Bootloader im ATmega32 (nach
AppNote 109) ansprechen. Er wird als Bootloader erkannt und man kann
zum Beispiel die Fuses lesen, die Signatur ermitteln und so weiter.

Jetzt kommt das Problem : Versucht man das Flash zu lesen, liest er ein
zwei Seiten und bleibt dann hängen, bis der Timeout erreicht ist und
bricht dann ab (also AVROSP beendet mit Fehlermedlung).

Ich habe mal folgendes untersucht :
 - Verbindungseinstellungen von COM2 (verwendet) stimmen
(Geschwindigkeit, Parity und der ganze Kram)
 - der Bootloader kann das Flash korrekt lesen, wenn ich eine einfache
Testroutine mit MATLAB bastle und damit lese (ist eben
schnarchelangsam, weil Programmierung in Matlab eine Skriptsprache
ist)
 - implementiere ich die Testroutine in C++ mit dem SerialPort-Objekt
aus der AppNote, dann kann ich wieder die ganzen einfach-Funktionen
ausführen, nur beim Lesen des Flash/EEPROM der gehabte Fehler

Meine Vermutungen : In AVROSP wird die serielle SChnittstelle als
Datei-Stream geöffnet. Dabei werden logischerweise
Betriebssystemfunktionen verwendet. Wenn man jetzt den Befehl zum Lesen
des Speichers anschaut, dann stellt man fest, dass der aus 4 Byte
besteht. Ich vermute, dass das Schreiben auf das Betriebssystem-Objekt
Datei aus irgendeinem Grund einen Teil der gesendeten Information
verhackstückelt. Einen Fehler im Bootloader würde ich als
unwahrscheinlich einstufen, da es ja schließlich mit Matlab
funktioniert.

Meine Fragen :
 - kennt jemand ein Tool, mit dem man die gesendete Information auf dem
seriellen Port einfach mitschneiden kann (freeware, bzw. open-source) ?
 - hat jemand Erfahrung mit der AppNote AVR911 und kann mir zum Problem
etwas berichten ?
 - Hat jemand Erfahrung mit der in der AppNote verwendeten
Programmierung der seriellen SChnittstelle und kann mir dazu Hinweise
geben, wie man da die Klippen umschifft ?

Was ich nicht will :
 - einen anderen Programmer benutzen (habe ich schon ;-) )
 - Hinweise a la RTFM - ich habe genügend Ms zu Hause

Vielen Dank für Eure sachdienlichen Hinweise, Daniel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sollte das von Dir nicht namentlich genannte OS zufälligerweise Windows
sein, kannst Du als Mithörer an der seriellen Schnittstelle dies hier
verwenden: http://www.sysinternals.com/Utilities/Portmon.html

von Daniel B. (khani)


Lesenswert?

Hallo Leute,

bitte entschuldigt, dass ich vergessen habe, mein System zu nennen:

OS: Windows 2000
CPU: Athlon irgendwas mit viel schnell
Dev-IDEs : Bloodshed DEV-Cpp (Windows), WinAVR mit pn2 (AVR)

MfG, Daniel.

von mthomas (Gast)


Lesenswert?

> Hat jemand Erfahrung mit der in der AppNote verwendeten
> Programmierung der seriellen SChnittstelle und kann mir dazu
Hinweise
> geben, wie man da die Klippen umschifft ?

Sieht auf den ersten Blick wie ein "normales" non-overlapped
Interface aus. Evtl. kann man etwas mit den Timeouts herumspielen
(laenger machen).

von Daniel B. (khani)


Lesenswert?

Hallo,

erst mal Danke an Rufus - ich werde das heute abend oder morgen mal
ausprobieren.

@mthomas - die timeouts sind da schon bei 5s - das ist schon viel zu
viel. So lange braucht mein Bootloader garnicht, bis er die Daten
gefunden und abgschickt hat. Trotzdem danke für den Hinweis.

MfG, Daniel

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.