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
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
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.
> 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).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.