Hallo, ich habe ein Problem mit der Datenübertragung per RS232. Ich verwende als Spannungsversorgung einen LM2575 um einen möglichst großen Eingangsspannungsbereicht zu haben. Mein ATMega8515 läuft mit 8MHz die vom internen RC-Oszillator erzeugt werden. Manchmal treten bei der seriellen Datenübertragung Fehler auf. Wenn ich statt des internen Oszillators einen externen Quarz für den Takt verwende, oder statt des LM2575 einen 7805, dann treten die Fehler nicht auf. Da ich aber schon einige Platinen geätzt habe, möchte ich die Änderung auf ext. Quarz nicht machen, da ich sonst neue Platinen machen müsste. Auch möchte ich nicht auf den 7805 ausweichen, weil ich sonst ebenfalls neu Platinen fertigen müsste und den großen Eingangsspannungsbereich nicht mehr hätte. Zusätzliche Kondensatoren an der 5V-Versorgung des MC haben keine Besserung gebracht. Hat jemand eine Idee wie man das (einfach) lösen kann?
Wenn Deine Taktfrequenz aus den vor Dir genannten Gründen nicht stabil genug ist und Du daran nichts ändern kannst, würde ich an Deiner Stelle probieren: 1. Geh mit der Baud-Rate so wo weit runter wie möglich, 2. Übertrage immer nur möglichst kleine Datenpakete auf einmal und mach dazwischen Pausen. Gruß, Michael
Datenblatt: "If the internal RC is used at other frequencies, the calibration values must be loaded manually..."
OK, den Teil im Datenblatt habe ich gefunden. Aber ich verstehe das nicht so ganz. Da steht: This can be done by first reading the signature row by a programmer, and then store the calibration values in the... Was ist die signature row und wie kann man die auslesen..????
Welchen Programmer verwendest du? Mit dem STK500/AVR-Studio kannst im Programmiertool unter "Advanced" die cal.bytes für die verschiedenen Frequenzen auslesen und im "normalen" Flash oder EEProm speichern. Dort kann sie dann im Programm lesen und in das OSCAL-Register schreiben. Ich persönlich nehme lieber einen SMD-Resonator, wenn es in der Anwendung auf halbwegs genaues Timing ankommt (RS232 gehört für mich dazu). Neben der sowieso schon vorhandenen Ungenauigkeit kommt noch Drift durch Temperatur und Spannung, und nach Murphy gleicht sich da nicht etwa was aus, sondern summiert sich prinzipiell in Richtung des grösstmöglichen Fehlers.
Ich verwende zum Programmieren einen selbstgebauten Adapter mit einem 74LS245 und PonyProg als Software. Geht das damit auch irgendwie?
da kann ich dir nicht weiterhelfen, damit kenne ich mich überhaupt nicht aus. Kann sein, kann nicht sein, ist ne Frage der Software, ob die das unterstützt.
Ich habe auch schon meine negativ Erfahrungen mit dem intern RC Osz. gemacht. Er ist sehr Temp. abhängig.
wer sucht der findet. unter ponyprog commands steht ganz unten read osc. calibration byte. das hört sich doch ganz gut an..
OK, habe inzwischen ein SDK500 aufgetrieben und das ganze funktioniert. Danke für die Hilfe...
Irgendwo steht auch, daß der RC nicht stabil genug für RS-232 ist. Entweder Du baust eine Baudratenerkennung ein oder nimmst einen Quarz. Ansonsten ist es nur Glückssache, daß es klappt. Für reine Hobbyprojekte kann man es ja machen, aber die paar Cent für nen Quarz zu sparen macht einfach keinen Sinn. Ich würds jedenfalls nicht riskieren, daß die Schaltung bei kalten Wintern oder heißen Sommern aussteigt. Peter
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.