by ag » Thu Aug 07, 2014 8:18 am
Hallo Gerd,
bei eine serielle Schnittstelle müssen die gegenüberstehende Ansprechpartner sich auf eine Übertragungsprotokoll einigen. Deshalb "müssen" die COM Einstellungen mit dem angeschlossenen Gerät übereinstimmen. Aber je nach Betriebsystem, Treiber, Anwendung, Kabel, Gerät, usw., können diese Einstellungsarbeiten automatisch ablaufen. Wenn man eine Anleitung schreibt, die allgemeingültig sein sollte (unabhängig von Betriebsystem usw.) ist es nicht verkehrt, explizite Vorgaben zur COM Einstellungen zu machen. Ich verwende momentan ein Toschiba Laptop mit Win7 64Bit und USB-2 Schnittstelle für meine BASCOM-AVR Verbindung mit dem Arduino. In BASCOM-AVR ist 57600 Baud eingestellt, und wenn ich mit dem USB Kabel ein Arduino anschließe, erscheint im Windows Gerätemanager ein neues USB Serial Port (COM8) mit 19200 Baud eingestellt. Ohne dieses zu ändern, funktioniert trotzdem die Übertragung, sowohl mit BASCOM-AVR als auch mit dem Arduino ISP. Wenn aber Probleme auftreten, solltest man aber doch versuchen die Probleme zu umgehen, indem alle Einstellungen explizit auf einander abgestimmt werden.
Die USB Anschluss vom Arduino wird auf die Platine zu eine serielle Schnittstelle umgesetzt und zu pins TX und RX geführt. Nach meine Erfahrung, bleibt diese Schittstelle durch BASCOM-AVR belegt, damit eine Datenübertragung von Arduino zurück zum BASCOM-AVR interne "Terminal emulator" stattfinden kann. Dieser Schnittstelle spricht du im Programm an mit "Baud = 9600" und "Print ...", und hier muss nach meine Erfahrung die COM Einstellungen im BASCOM-AVR Kommunications Option tatsächlich übereinstimmen mit dem im Programm definierten Baudrate, sonst klappt es mit der Kommunikation nicht. Mit dem Arduino ISP gibt es analog dazu der "Serielle Monitor".
Man kann aber auch im Programm weitere serielle Schnittstellen definieren die per Software auf andere Pins geführt werden (siehe BASCOM-AVR Kommando "OPEN"). Hier gelten die gleiche Regeln wie bei der standard "Hardware" Schnittstelle.
Es ist denkbar, dass die gerade im Arduino befindliche Programm die TX und/oder RX Leitungen belegt, was die Übertragung eines neues Programm via BASCOM-AVR verhindern könnte, obwohl es mit der Arduino ISP klappt. Denn, ich glaube dass der Arduino ISP eine ggf. vorhandene Programm löscht, oder zumindest mit interne Reset deaktiviert, bevor es mit der Upload ein neues Programm beginnt. Beim BASCOM-AVR bin ich mir nicht sicher. Da findet auch eine Reset statt, ober ob alle Register wirklich dadurch freigemacht werden weiß ich nicht. Du könntest versuchen, mit Arduino ISP ein simples Sketch zu Uploaden, die keine serielle Schnittstelle benutzt, und dann mit BASCOM-AVR das gleiche versuchst (Programm ohne serielle Schnittstelle Verwendung). Wenn das Problem dann nur bei ein bestimmtes Programm auftaucht, enthält das Programm vermutlich ein Fehler. Wenn das aber nicht der Fall ist (Problem besteht weiterhin auch mit Programme ohne Verwendung der serielle Schnittstelle), dann würde ich vorschlagen, alle COM Einstellungen explizit im Gerätemanager und im BASCOM-AVR auf eine langsame Baudrate, z.B. 19200, einzustellen. Wenn auch das nichts nutzt, würde ich mal nach Hardware oder Treiber Fehler in Windows Ereignisanzeige zu suchen. Falls das nichts bringt, dann würde ich BASCOM-AVR einfach neu installieren und es danach wieder versuchen.
Viele Grüße,
Ag
Last edited by
ag on Thu Aug 07, 2014 8:34 pm, edited 1 time in total.