Impulsbreite des WR-Signals beim ATmega162

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 04 11 2024  23:01:49      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Impulsbreite des WR-Signals beim ATmega162

    







BID = 691599

Pipimaxi

Gelegenheitsposter



Beiträge: 82
Wohnort: Mörlenbach
ICQ Status  
 

  


Hallo liebe Forengemeinde,
letzt haben wir im Labor mit dem ATmega162 und seiner External Memory (no Wait-states) experimentiert und sollte hier in einem Dauerloop etwas auf eine externe Adresse schreiben.
Der Programmcode hierfür ist auch recht simpel, die Cycle Clocks pro Schleifendurchlauf deckten sich auch mit den Anzahl der Clocks aus dem Datenblatt (S. 307) bei den Befehlen, die mir der Disassembler ausspuckte, überein.Soweit sogut
Nun sollten wir mit einem DSO das WR-Signal messen. Hierzu haben wir erstmal das Datenblatt zur Hand genommen, Seite 270, Tabelle 114, Zeile 16,Breite des WR-Signals, bei einem internen Taktgenerator (1 MHz) sind wir auf ein theoretisches Ergebnis von 990ns gekommen.
Das DSO sagt aber leider etwas ganz anderes. Hier erhielten wir eine Pulsbreite von gut 1,9µs.
Der Bericht verlangt leider eine Erklärung für diese Tatsache, mich würde es ehrlich gesagt auch interessieren. Kann mir da jemand auf die Sprünge helfen? Ein einfaches "tja, das sind die Unterschiede zwischen Theorie und Realität" würde da selbst mir nicht genügen

Vielen Dank im Vorraus

BID = 691606

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

 

  

Nach Tabelle 118 kommen aber knapp 2µs dabei raus. Wenn schon die Periodendauer des Systemtakts 1µs beträgt...

So genau ist der interne Oszillator übrigens nicht, das gehört dann in die Fehlerrechnung

_________________

BID = 691607

Pipimaxi

Gelegenheitsposter



Beiträge: 82
Wohnort: Mörlenbach
ICQ Status  

Erstmal Danke für deine rasche Antwort.
OK, das mit der ungenauen Genauigkeit des internen Oszillators kann ich noch gut nachvollziehen, ist notiert
Aber warum denn nun Tabelle 118? Der einzige Unterschied, den ich feststelle, ist das Tabelle 114 von 4,5-5,5V und Tabelle 118 von 2,7-5,5V misst.
Aber selbst wenn: Bei Tabelle 118 Zeile 16 steht doch auch in der Berechnung:
\fed\mixont_WLWH = 1.0*t_CLCL-15ns
Und bei 1MHz bzw. 1µs wären das doch 985ns ?


BID = 691633

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Hier erhielten wir eine Pulsbreite von gut 1,9µs.
Falls 1MHz stimmt (mit Softwareschleife kontrolliert?) wären das zwei Clocks.
Dann habt ihr wohl doch einen Wait programmiert. Siehe Fig.14, S.29 des DB.
Darüberhinaus kann man zwei unterschiedliche Timings für den externen Adressraum gleichzeitig verwenden: S.28, "Timing".
Schau dir halt nochmal die entsprechende Initialisierung an.


BID = 691648

Pipimaxi

Gelegenheitsposter



Beiträge: 82
Wohnort: Mörlenbach
ICQ Status  

Die 1 MHz waren schon richtig, das wurde kontrolliert ja
Dass wir vielleicht unbeabsichtigt ein Waitstate mit rein programmiert haben, hab ich mir auch schon überlegt, aber laut Vorbereitung und Programmcode haben wir nur folgende Register beschrieben:
MCUCR |= (1<<SRE);
SFIOR |= (1<<XMM2); //wegen dem JTAG-Interface

Mehr wurde nicht gemacht.
Komischerweise sind alle anderen Zeiten mit dem Faktor 2 versehen, die wir messen sollten (t_AVLL (Zeile 2) und t_LLAX_ST (Zeile 3a))
Das ganze gibt uns irgendwie richtige Rätsel auf ^^

BID = 691743

Pipimaxi

Gelegenheitsposter



Beiträge: 82
Wohnort: Mörlenbach
ICQ Status  

Hallo nochmal,
könnte die doppelte Pulsbreite auch daher kommen, dass ein IntegerWert auf das extmem geschrieben wurde? Nach Disassembler sind es ja dann dort 2 store-befehle, vll bleibt deswegen das WR-Signal demzufolge doppelt so lang auf low?!

BID = 691814

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Moin,

Integer heißt nur Ganzzahl, über die Wortbreite sagt das noch nichts aus; ich denke aber, du meinst einen 16-Bit-Integer.

Wenn ja, dann erfolgen zwei normale 8-Bit-Zugriffe aufeinander und das WR-Signal wird zwischendurch nicht geändert.
Problem gelöst .


(Allerdings wussten wir das natürlich nicht... Also am besten gleich den Programmcode mitliefern, damit man sich ein umfassendes Bild machen kann. Mein erster Beitrag zum Thema wurde übrigens im Stadium geistiger Umnachtung verfasst. Sprich: falsche Tabelle )

_________________

BID = 692047

Pipimaxi

Gelegenheitsposter



Beiträge: 82
Wohnort: Mörlenbach
ICQ Status  

Na dann mal recht herzlichen Dank DonComi.
Ja, ich meinte eine 16Bit Variable.
Nun gut, dann hätten wir das ja geklärt

kann geclosed werden.


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 19 Beiträge verfasst
© x sparkkelsputz        Besucher : 182284342   Heute : 4716    Gestern : 5145    Online : 589        4.11.2024    23:01
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0286138057709