Hallo Forum, Ich hab folgendes Problem: Ich hab ein Prototyp gebaut der funktioniert. Danach hab ich ein Layout erstellt und es ätzen lassen. Hier habe ich ein Fehler begangen Pin30 und Pin31 am Atmega8L sind genau falschrum belegt (habe ich händisch geändert). Die Schaltung ist eine erweiterung des LED-Flitzers. Es wird per USB ein Schriftzug eingespielt welches dann per LEDs ausgegeben wird. Leider funktioniert meine geätzte Schaltung nicht richtig.Wenn ich die Schaltung per USB anschließe und einen Schriftzug drauf spielen möchte passiert folgendes: 1. USB wird erkannt. 2. Schriftzug wird aufgespielt 3. Der Schriftzug besteht danach nur aus wirren Zeichen die nichts mit der ursprünglichen Eingabe zutun haben. Ich habe den ganzen Tag überprüft und glaube daran das es wirklich nur ein "kleinerer" Fehler sein kann... Software technisch erfolgt das aufspielen des Schriftzuges folgend (auszug) serialPort1.Close(); serialPort1.PortName = comboBox1.SelectedItem.ToString(); serialPort1.BaudRate = 4800; serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Handshake = Handshake.None; // Set the read/write timeouts // serialPort1.ReadTimeout = 500; // serialPort1.WriteTimeout = 500; try { serialPort1.Open(); errorProvider1.SetError(comboBox1, ""); } catch (Exception) { errorProvider1.SetError(comboBox1, "besetzt"); } mit der gleichen Firmware, Software und Schaltung funktioniert der Prototyp einwandfrei... ich bin total ratlos und würde mich über Hilfe freuen Gruß Theo
atmega richtig gefused? - klingt ein bisschen wie ein timingproblem beim rs232..
RS232 ohne Quarz kann Probleme geben, besonders bei großen Temperaturschwankungen. Und heute war es recht warm. AVR-Tutorial: UART: UART konfigurieren
Hallo, danke für die Antworten. Ich habe Fuses und LockBits verglichen und beide sind gleich. Falls ich da was ändern müsste wüsste ich gar nicht was ich ändern müsste. Bei dem Prototyp benutz ich eine A-Buchse und bei der Platine eine B. Ich habe jetzt öfters nachgeschaut eigentlich dürfte das ja keine änderung bewirken oder?
An ein Problem auf USB glaube ich nicht. Dann würdest du nicht per USB mit dem Gerät kommunizieren können. Die Daten auf dem USB Bus haben Checksummen, so dass hier sichergestellt ist, dass alles richtig ankommt. Die Art deines Layouts erinnert mich eher an eine Elektro-Hausinstallation als an ein Mikrokontroller Design. Es fehlen entsprechende Blockingkondensatoren an den ICs (siehe jeweilige Datenblätter), diese müssen auch nahe den VCC Pins positioniert werden. Momentan hast du die recht wild über das Board verteilt. "T1" würde ich auch noch 1uF am Eingang gönnen. 1uF an Pin 20 und 100nF an Pin 4 von IC1 Bei allen Digitalschaltungen essentiell ist die GND Führung. Es geht nicht darum, dass der Strom über irgend eine GND Leitung irgendwie wieder zur Batterie zurückkommt, sondern dass an allen ICs ein zuverlässiges GND Potential zur Verfügung steht, und um Abstrahlungen und SIgnalstörungen zu minimieren muss der GND Pfad nahe der entsprechenden Signalleitung liegen. Ich empfehle dir, alle Signal-Leitungen auf der unteren Seite so kurz wie möglich zu machen, und die komplette Unterseite als (möglichst wenig eingeschnittene) GND-Plane zu nutzen.
Hallo, da der AVR mit internem RC-Oszillator läuft und dessen Abweichung ohne Kalibrierung durchaus 10% sein kann -> falsche Baudrate des UART -> Zeichensalat. Zum Layout wurde schon genug geschrieben. Gruß aus Berlin Michael
Hallo, @Michael das ist ein gutes Stichwort, den Prototyp konnte ich mit AVR per ISP ganz normal ohne große konfiguration bespielen. Bei der Platine gab er mir ein Fehler aus und ich musste die ISP Frequenz manuel auf 28,8 stellen. Könnte es daran liegen?
Warum schreibst du nicht ein einfaches Nullmodem Programm und lädst es in den AVR ? Dann siehst du sofort ob das, was über die USB Leitung geht, auch ankommt. Und wenn nicht, kannst du aus dem was du zurück bekommst oder auch nicht bekommst schliessen ob ein Timing- oder ein anderes Problem vorliegt. MfG SH
Theodor schrieb: > 1. USB wird erkannt. > 2. Schriftzug wird aufgespielt > 3. Der Schriftzug besteht danach nur aus wirren Zeichen die nichts mit > der ursprünglichen Eingabe zutun haben. Nebenbei mal den Strom messen falls Zeichen richtig erkannt wurden. USB http://de.wikipedia.org/wiki/Universal_Serial_Bus#.C3.9Cberblick
Na ja, es wird ja gerne immer wieder übersehen, aber die Kondensatoren haben auf dieser Platine in dem Frequenzbereich der für das Stützen der Versorgungsspannung notwendig ist elektrisch nichts mit den Chips zu tun. Die 100nF in den Versorgungsspannungen gehören so direkt wie nur möglich an die Versorgungsspannungspins der Chips und in den Strompfad. C8 zum Beispiel könnte auch im Nachbarzimmer auf dem Tisch liegen, da hat er den gleichen Effekt.
Noch eine Kleinigkeit, die erstmal nichts zur Sache tut: Die Kurzschlussbrücke AREF -> VCC bei der nächsten Platinenversion weglassen. Die hat man vor vielen, vielen Jahren, bei den ersten AVRs mit ADC mal gebraucht. Inzwischen sinnfrei und fehlerträchtig, aber leider scheinbar nicht auszurotten.
JEDER AVR hat ne ANDERE RC-Oszillator Frequenz.Diese verändert sich auch noch mit der Temperatur und Betriebsspannung. Ohne Kalibrierung geht da gar nichts (NaJa mit Glück vieleicht). Oder benutzt du den selben (also nimmst den AVR von der einen Leiterkarte runter und steckst ihn auf die andere mit genau der selben Spannung und Temperatur?)
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.