An den Osc-Pin ist ein 10 MHz Oszillator angeschlossen. Die 10 MHz werden durch 2 geteilt werden und dann den Clockeingängen zugeführt. Das Teilen durch 2 funktioniert - die Clockeingänge reagieren aber nicht auf die durch 2 geteilte Frequenz. Delay1A sollte das Signal von Tx1 übernehmen. Wo liegt mein Fehler? Im Anhang ist das Simulationsergebnis und hier kommt das 'Programm': Device F1502plcc44; PIN 13 = Tx1 ; NODE Delay1A ; NODE Delay1B ; NODE Clock ; PIN 9 = Osc ; Clock.CK = Osc ; Clock.D = !Clock ; Delay1A.CK = Clock ; Delay1B.CK = Clock ; Delay1A.D = Tx1 ; Delay1B.D = Delay1A ; end ;
Bin zwar kein Experte aber... Ich glaub viele haben einfach das Problem: - Sie kenne den Chip nicht (F1502 hab ich noch nie was von gehört) - Entwicklungsumgebung (WinCULP? Die meisten nutzen wohl ISE/Modelsim oder Altera equivalent) - Verwendete Beschreibungssprache (Was ist das? Vieleicht ein paar Komentare im Quellcode)
Hier die Kommentare: Programmierumgebung ist WinCupl von Atmel. Die Sprache nennt sich Cupl. Das D-FF Clock soll die 10 MHz durch 2 teilen. Die D-FFs Delay1A bzw. Delay1B sollen dann mit den 5 MHz betrieben werden und das Signal Tx1 verzögern (Simulation siehe ersten Beitrag). Device F1502plcc44; /* ATF1502AS von ATMEL */ PIN 13 = Tx1 ; NODE Delay1A ; /* D-Flip Flop 1. Delay */ NODE Delay1B ; /* D-Flip Flop 2. Delay */ NODE Clock ; /* D-Flip Flop als Teiler */ PIN 9 = Osc ; /* Eingang 10 MHz */ Clock.CK = Osc ; /* 10 MHz vom Pin 9 */ Clock.D = !Clock ; /* */ Delay1A.CK = Clock ; /* 5 MHz vom D-FF Clock */ Delay1B.CK = Clock ; /* dito */ Delay1A.D = Tx1 ; /* Tx1 1. Delay */ Delay1B.D = Delay1A ; /* Tx1 2. Delay */ end ;
Einen Workaround habe ich immerhin gefunden: Wenn ich das durch 2 geteilte Signal erst auf einen Pin ausgeben und dann wieder auf die .CK Eingänge gebe - funktioniert es.
Na das ist ja keine Lösung... Können die Atmel Tools eine Art Schaltplan/RTL View generieren? Vieleicht sieht man da was drauf.
Nein leider nicht. WinCupl besteht aus dem Compiler und dem Simulator. Das war es. RTL = Right To Leave?
RTL = Register Transfer Level :) Gehts den auch auf der Harware nicht? Vieleicht spinnt nur der Simulator in diesem Punkt.
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.