Hallo zusammen,
Phasen und Frequenz korrekte Pulsweitenmodulation.
Was ist mit Phasenkorrekt gemeint ?
Was wäre denn Phasenunkorrekt ? :-)
Welche Phase überhaupt ?
========================================================================
===
Was ist mit Frequenzkorrekt gemeint ?
Welche Frequenz ist überhaupt gemeint ?
Oder ist damit eher Systemtaktsynchron gemeint ?
Bernd_Stein
Bernd Stein schrieb:> Hallo zusammen,
Hallo alleine...
>> Phasen und Frequenz korrekte Pulsweitenmodulation.>> Was ist mit Phasenkorrekt gemeint ?
Dass die Mitte des Impulses immer dieselbe Stelle der Zeitachse trifft.
der Impuls wird also vorn und hinten verändert. Siehe grafische
Darstellung im Datenblatt.
>> Was wäre denn Phasenunkorrekt ? :-)
Wenn man nur das Ende des Impulses moduliert. Also Highspeed-PWM.
>> Welche Phase überhaupt ?
Die Phase der erzeugten Frequenz.
>> ======================================================================== ===>> Was ist mit Frequenzkorrekt gemeint ?
Dass sich die Frequenz beim Verändern des Tastgrades nicht verändert.
>> Welche Frequenz ist überhaupt gemeint ?
Die Frequenz der erzeugten PWM.
>> Oder ist damit eher Systemtaktsynchron gemeint ?
Eher nicht.
>>> Bernd_Stein
Sieh den Unterschied erstmal so:
High-Speed-PWM:
Timer zählt hoch, PWM-Pin wird bei erreichen des Compare-Wertes
ausgeschaltet und beim Timerüberlauf eingeschaltet (kann man auch
umkehren). Es wird also das Impulsende moduliert.
Phase-correct-PWM:
Timer zählt hoch und wieder runter, ist der Zählerstand unter dem
Compare-Wert, dann ist der PWM-Pin ein. Ist er drüber, dann ist er aus.
Ein/Aus kann man natürlich auch umkehren. Es wird also Impulsanfang und
Impulsende moduliert.
...
Hannes Lux schrieb:
...
>> Sieh den Unterschied erstmal so:>> High-Speed-PWM:> Timer zählt hoch, PWM-Pin wird bei erreichen des Compare-Wertes> ausgeschaltet und beim Timerüberlauf eingeschaltet (kann man auch> umkehren). Es wird also das Impulsende moduliert.>> Phase-correct-PWM:> Timer zählt hoch und wieder runter, ist der Zählerstand unter dem> Compare-Wert, dann ist der PWM-Pin ein. Ist er drüber, dann ist er aus.> Ein/Aus kann man natürlich auch umkehren. Es wird also Impulsanfang und> Impulsende moduliert.>
Danke für die komplette Beantwortung aller meiner Fragen,
das alles muß ich erstmal verdauen.
Bernd_Stein
Hi
>das alles muß ich erstmal verdauen.
In den Datenblätter findest du für jeden Timer einen Punkt 'Modes of
Operation'. Da gibt es Beschreibungen und Diagramme zu den PWM-Modes.
MfG Spess
So einfach wie Hannes es erklaert hat steht es aber nicht im Datenblatt.
Ich erinnere mich noch daran wie lange ich das Datenblatt hoch und
runtergescrollt habe bis ich das kapiert hatte was Hannes kurz und
buendig erklaert hat.
Wenn man lange genug und tief genug mit PWM vertraut ist, liest sich das
Datenblatt einfach. Aber wenn man gerade damit auf Tuchfuehlung gehen
will sieht das schon alles sehr verwirrend aus.
Da hilft es viel Leute wie Hannes zu haben der es in ein paar Worten in
der Muttersprache daherbringt.
Ju
Juergen G. schrieb:> So einfach wie Hannes es erklaert hat steht es aber nicht im Datenblatt.>> Ich erinnere mich noch daran wie lange ich das Datenblatt hoch und> runtergescrollt habe bis ich das kapiert hatte was Hannes kurz und> buendig erklaert hat.>> Wenn man lange genug und tief genug mit PWM vertraut ist, liest sich das> Datenblatt einfach. Aber wenn man gerade damit auf Tuchfuehlung gehen> will sieht das schon alles sehr verwirrend aus.> Da hilft es viel Leute wie Hannes zu haben der es in ein paar Worten in> der Muttersprache daherbringt.>> Ju>
em kann ich nur voll und ganz zustimmen.
Bernd_Stein
Moin,
mein erstes PWM-Register das ich gesehen habe stammt von einem
TMS320F28335.
Das hat wirklich ein paar Tage gedauert bis ich da durchgestiegen bin.
Bis heute habe ich keine Ahnung wozu das Trip-Zone Register dient. :)
Viel Spaß beim durcharbeiten der Doku!
Viele Grüße
Maik
Hi
Die Erklärung von Hannes ist aber nur die halbe Miete. Du hattest nach
dem Unterschied zwischen 'Phase Correct' und 'Phase & Frequency correct'
gefragt.
'Phase correct' bedeutet, das die Umschaltzeitpunkte (H-L/L-H) im
gleichen Abstand vor und hinter 0 bzw. Top des Timers liegen. Beide Modi
unterscheiden sich in dem Zeitpunkt, in dem der OC-Wert und der Top-Wert
vom Timer übernommen werden. Bei 'Phase correct' ist das beim erreichen
des Top-Wertes. Da der Timer nach erreichen des Topwertes abwärts zählt,
schaltet das PWM-Signal bei erreichen des OC-Wertes ein. Der Timer zählt
dann bis Null und ab dann wieder aufwärts. Wenn der OC-Wert erreicht
ist, geht das PWM-Signal wieder auf L.
Bei 'Phase and Frequency correct' erfolgt die Übernahme von OC- und
Top-Wert wenn der Zähler Null erreicht. Der Timer schaltet, aufwärts
zählend, bei erreichen des OC-Wertes den Ausgang au L, zählt weiter bis
zum Top-Wert und setzt, abwärts zählend, beim OC-Wert den Ausgang auf H.
Da die L-Phase des PWM-Signals symmetrisch um den Top-Wert, der die
PWM-Frequenz bestimmt, liegt kommt hier noch 'frequency correct' dazu.
MfG Spess
spess53 schrieb:> Hi>> Die Erklärung von Hannes ist aber nur die halbe Miete. Du hattest nach> dem Unterschied zwischen 'Phase Correct' und 'Phase & Frequency correct'> gefragt.>
...
Finde ich nicht, er hat schon beides beantwortet.
>> Bei 'Phase and Frequency correct' erfolgt die Übernahme von OC- und> Top-Wert wenn der Zähler Null erreicht. Der Timer schaltet, aufwärts> zählend, bei erreichen des OC-Wertes den Ausgang au L, zählt weiter bis> zum Top-Wert und setzt, abwärts zählend, beim OC-Wert den Ausgang auf H.> Da die L-Phase des PWM-Signals symmetrisch um den Top-Wert, der die> PWM-Frequenz bestimmt, liegt kommt hier noch 'frequency correct' dazu.>
Irgendwie seid ihr beide da unterschiedlicher Meinung.
>> Was ist mit Frequenzkorrekt gemeint ?Hannes Lux schrieb:
Dass sich die Frequenz beim Verändern des Tastgrades nicht verändert.
Bernd_Stein
Bernd Stein schrieb:> spess53 schrieb:>> Hi>>>> Die Erklärung von Hannes ist aber nur die halbe Miete. Du hattest nach>> dem Unterschied zwischen 'Phase Correct' und 'Phase & Frequency correct'>> gefragt.>>> ...> Finde ich nicht, er hat schon beides beantwortet.
Neenee, da hat Spess schon recht.
>>>> Bei 'Phase and Frequency correct' erfolgt die Übernahme von OC- und>> Top-Wert wenn der Zähler Null erreicht. Der Timer schaltet, aufwärts>> zählend, bei erreichen des OC-Wertes den Ausgang au L, zählt weiter bis>> zum Top-Wert und setzt, abwärts zählend, beim OC-Wert den Ausgang auf H.>> Da die L-Phase des PWM-Signals symmetrisch um den Top-Wert, der die>> PWM-Frequenz bestimmt, liegt kommt hier noch 'frequency correct' dazu.>>> Irgendwie seid ihr beide da unterschiedlicher Meinung.
Eigentlich nicht, denn soooo intensiv habe ich mich mit den
verschiedenen PWM-Modi des 16-Bit-Timers nicht auseinandergesetzt, denn
ich habe sie noch nicht gebraucht.
Vom 16-Bit-Timer brauche ich bisher meist nur die beiden
Compare-Einheiten (zum Generieren von Interrupts), und auch mal die
ICP-Einheit zum Messen von Impulsbreiten, Impulsabständen oder
Frequenzen. Zur Erzeugung von Hardware-PWM hat mir bisher immer ein
8-Bit-Timer gereicht, so konnte ich den 16-Bit-Timer für Interrupts
nutzen.
>>>> Was ist mit Frequenzkorrekt gemeint ?> Hannes Lux schrieb:> Dass sich die Frequenz beim Verändern des Tastgrades nicht verändert.
Das war eine sehr grobe Feststellung, die von Spess präzisiert wurde.
Ich gab Dir immer ganz bewusst Tipps, die Dich auf die Grundfunktionen
lenken sollten. Die "Erbsenzählerei" (Erkundung der Zusatz-Features)
fällt dann leichter, wenn man die Grundfunktionen verstanden hat.
>> Bernd_SteinMaik K. schrieb:> mein erstes PWM-Register das ich gesehen habe stammt von einem> TMS320F28335.> Das hat wirklich ein paar Tage gedauert bis ich da durchgestiegen bin.
Meine erste (Mikrocontroller-) PWM war auf dem Tiny12 in Software und
alles Andere als befriedigend:
http://www.hanneslux.de/avr/mobau/fr_t12/Fahrst3.html
Hat aber etwas beim Verstehen der PWM-Einheiten der AVRs (andere
Controller nutze ich nicht) geholfen.
...
Hi
>Hier ist dies mal gut erklärt :>Youtube-Video "0x16 Timer - Fast und Phase-Correct PWM - Erzeugung, >Parameter,
Unterschiede"
Und wo ist da der Unterschied zwischen Phase-Correct PWM und
Phase&Freuency-Correct PWM .
Mal ehrlich. In >7 Jahren hättest du dir das bischen Englisch, das zum
Verständnis der AVR-Datenblätter notwendig ist, problemlos selbst
aneignen können. Was hast du eigntlich in dieser Zeit gemacht? Immer
noch veraltete 'Lehrbücher' aus den 90ern durch gearbeitet?
MfG Spess
spess53 schrieb:> Hi>>>Was will mir die gekennzeichnete Verbindung mitteilen ?>> Das ist das Signal für die PWM-Modes die OCR0A für den Top-Wert> benutzen.>> MfG Spess>
Und wo liegt nun genau der Unterschied zu diesem Pfad ?
Bernd_Stein
Hi
>Und wo liegt nun genau der Unterschied zu diesem Pfad ?
Ich muss mich korrigieren: Der Pfad im ersten Bild dürfte dürfte nur bei
CTC zum Einsatz kommen. Allerdings kann man ohne Kenntnis der genauen
Signale für die Umschalter nur vermuten.
Wozu willst du das eigentlich wissen?
MfG Spess
spess53 schrieb:> Ich muss mich korrigieren: Der Pfad im ersten Bild dürfte dürfte nur bei> CTC zum Einsatz kommen.>...> Wozu willst du das eigentlich wissen?>
Nun ja, man arbeitet sich in etwas ein, sieht ein Blockschaltplan und
versucht diesen zu verstehen. Habe da nämlich immer noch ein Problem mit
dem TC0 Fast PWM Mode 7. Dies mal jedoch mit dem ATmega88PA. Werde dies
jedoch erst schildern, wenn ich mehr Zeit dazu habe und Interesse
besteht.
Bernd_Stein
Hallo zusammen,
es ist zwar der Phase Correct PWM-Mode - aber ist ja ähnlich.
Wer kann hier schreiben, warum das PWM-Signal diese Aussetzer hat?
Ich find den Fehler einfach nicht. Man muss schon auf mindestens 2ms bei
der Sec/DIV Einstellung am Oszilloskop gehen, um den Fehler zu
entdecken.
Im Anhang ist ein ATMEL STUDIO 7 Assemblerprojekt.
Bernd_Stein
Sieht softwareseitig okay aus, und ja, läuft folglich bei mir ohne
Aussetzer. Bleibt also nur, die Hardware zu kontrollieren.
Und übrigens steht da doch in ROT: "für neue Fragen einen neuen Beitrag
erstellen".
S. Landolt schrieb:> Sieht softwareseitig okay aus, und ja, läuft folglich bei mir ohne> Aussetzer. Bleibt also nur, die Hardware zu kontrollieren.>
Danke. Damit hast du mir sehr weiter geholfen. Hab gerade nur den
Ausgang über einen Pull-Down von 15k dran, sieht aber bei mir immer noch
so aus.
Da muss wohl der µC defekt sein. Wie schaffe das nur immer?
Poste die Tage mal ein Foto vom Aufbau.
Bernd_Stein
> Da muss wohl der µC defekt sein.
Also der Controller selbst käme bei mir ganz weit hinten in der Reihe
der Verdächtigen. Und es ließe sich ja sofort durch einen fabrikneuen
abklären.
S. Landolt schrieb:> PS & nur am Rande:>> Dieses null sieht zwar hübsch aus, hat aber mitnichten diesen Wert.>
Ja stimmt, wird allerdings sofort überschrieben. Die Formatierung ist
hier nicht ganz so wie ich es wollte, dann würde es besser ins Auge
fallen.
Bei mir ist nach 80 Zeichen schluss.
Das Programm ist auf das wensentliche reduziert, um den Fehler finden zu
können, da schleichen sich halt Sachen ein, die ich übersehen habe
heraus
zu nehmen.
S. Landolt schrieb:> Also der Controller selbst käme bei mir ganz weit hinten in der Reihe> der Verdächtigen. Und es ließe sich ja sofort durch einen fabrikneuen> abklären.>
Bei mir auch, mein µC Verschleiss ist zur Zeit wirklich ein Problem.
Beitrag "ATmega16 irgendwie über JTAG abgeschossen"
Bernd_Stein
Wieder mal unglaublich. Habe immer noch den Fehler mit einem nagelneuen
µC.
Wo der Widerstand ist und die rote Klemme, da messe ich den OC2B mit
meinem DSO. Die Lila Verbindung ( EN ) zur anderen Schaltung ( L298N )
ist extra abgezogen.
Hast du die Time-Base am Oszi richtig eingestellt?
Vielleicht ist es bei dir ja erst bei 4ms, 8ms oder noch höher sichtbar.
Hast du den gleichen µC ( ...88PA )?
Werde den Aufbau so ändern das alles unnötige wegkommt.
Am besten den µC in andere Löcher stecken, dann hab ich zwei Fliegen mit
einer Klappe erschlagen.
Ohne Erfolg :-(
Bernd_Stein
Ich habe nur einen ATmega88; irgendwo noch einen ATmega48PA, den müsste
ich aber erst suchen. Und kann mir beim besten Willen nicht vorstellen,
dass das ein Fehler der PA-Version sein soll, da hätten sich sicher
schon andere gemeldet.
> Werde den Aufbau so ändern das alles unnötige wegkommt.
Das ist sinnvoll. Anschließend bei der Messung mit dem Oszilloskop auch
noch die Betriebsspannung direkt am uC anschauen.
S. Landolt schrieb:> Das ist sinnvoll. Anschließend bei der Messung mit dem Oszilloskop auch> noch die Betriebsspannung direkt am uC anschauen.>
Das Letzte was ich jetzt noch machen werde, aber für nicht
Erfolgsversprechend halte ist, den µC gesockelt auf eine
Lochstreifenrasterplatine zu löten. Also die Schaltung im Bild mit dem
"alten" µC.
Ich hatte damals die Breadboards verflucht, da ich damit stundenlang
Fehler gesucht hatte, die auf mangelde Kontaktierung beruhten. Und dies
ist so ein billig China Board.
Für kleiner Schaltungen nehme ich BPS BB400 Boards
( BusBoardPrototypeSystems ), die allerdings auch in China fertigen
lassen.
Bernd_Stein
Bernd S. schrieb:> Also die Schaltung im Bild mit dem> "alten" µC.
Was soll die Zenerdiode in der Versorgungsleitung?
Da schlägt der BOR zu, würd ich mal raten. Auf welchen Level haste den
den gestellt?
Mal ein ganz blöde Frage. Ist die Abtastrate deines Oszis groß genug.
Die sollte mindestens so groß sein, dass auch die schmalsten Pulse
mindestens zweimal abgetastet werden. Es zählt nicht die maximale
Abtastrate sondern die für den gewählten Zeitbereich der Anzeige.
Mindestpulsbreite?
Abtastrate des Oszilloskops in der gewählten Einstellung der Zeitbasis?
S. Landolt schrieb:> Ich dachte, das sei eine normale Schottky-Diode -
Schottky oder nicht, was macht die da?
> und BOD ist doch gar> nicht eingeschaltet?
Na dann.....?
S. Landolt schrieb:> PS:> GND auf Pin 20 anschließen wäre auch nicht schlecht.>
Hast du das auch gemacht?
Werde dann mal AVCC auch auf GND setzen.
Interessant, das die Spannung dadurch herunter geht ( Siehe Screen Shot
).
Die Frequenzangabe könnte wegen des falsch bzw. vorher eingestellten
Triggerpegel falsch dargestellt sein. Warum bei der Spannungsversorgung
( Gelb ) eine Frequenz gemessen wird, kann ich nicht sagen.
Danach habe ich AVCC & Aref jeweils über einen 100nF gegen GND
geschaltet, aber das brachte auch nichts. Ist Reichelt-Ware, weiß jetzt
nicht ob ich dort wieder bestellen soll?
Die gesockelte und gelötete Variante bringt auch nichts, ( siehe Screen
Shot )
@Helmut S.
Das vermute ich langsam auch, weiß aber nicht wie ich so etwas
einstellen soll. Habe das VOLTCRAFT DSO-1062D in der 200Mhz Variante
;-).
Ach, hoffe mal die lss-Datei hoch geladen zu haben.
Wie ich sehe, funktioniete das schon ohne die Datei zu zippen.
Bernd_Stein
Bernd S. schrieb:> Ach, hoffe mal die lss-Datei hoch geladen zu haben.
Hast du.
Und damit ist erstmal klar, was passiert. Es fehlt eine Endlosschleife
nach der Initialisierung.
Wenn das ein frischer AVR ist, wird das unweigerlich dazu führen, dass
in regelmäßigen Abständen die Initialisierung erneut erfolgen wird. Wenn
schon irgendwelcher alter Kram hinter dem Nutzcode im Flash steht, kann
alles mögliche passieren.
Übrigens: der Erwartungswert für das Programm wäre, dass überhaupt nix
auf dem Oszi zu sehen ist. Im Gegensatz zu fast PWM gibt es bei
phase-correct PWM nämlich keine Nadelimpulse bei einem der beiden
Extremwerte, sondern stabil Low oder High, je nach gewählter Polarität
der Ausgabe.
Siehst du also nach Hinzufügen der Endlosschleife immer noch irgendwas,
wäre die nächste Frage: hast du den Pin belastet? An einem unbelasteten
Pin wirst du immer Spikes mit der Taktfrequenz sehen. Die könnte dein
viel zu langsames Oszi dank der Alias-Effekte zu beliebigen hübschen
Mustern aufbereiten.
c-hater schrieb:> Es fehlt eine Endlosschleife> nach der Initialisierung.>
Freue mich von dir mal wieder ein konstruktives Posting zu erhalten.
Die lss-Datei ist sehr aufschlussreich, nur verstehe ich nicht warum sie
den letzten Befehl nicht anzeigt?
Siehe hier am Ende :
Beitrag "ATmega88PA: Phase Correct PWM"
Werde jetzt mal die .EXIT Direktive hinzufügen.
Habe ich gerade getan. Die lss-Datei ist nun vollständig, aber dass DSO
zeigt immer noch diesen Mist an.
Ist das alles seltsam, habe die Direktive per Semikolon wieder
rausgenommen, aber die lss-Datei ist immer noch OK.
So, jetzt würde ich gerne die Firmware aus dem µC holen und
disamblieren,
um zu sehen was da wirklich heruntergeladen wurde.
Das AS7 dissambliert nur Dateien, deren Quellcode auch im Projekt ist,
deshalb wäre ein Tipp für ein unabhängigen Disassembler für Win10 Pro
gut.
Bernd_Stein
c-hater schrieb:> ReAVR funktioniert auch unter Windows10.>
Meinst du dies :
https://www.johannes-bauer.com/mcus/avrdisas/
Bei mir blitz nur kurz ein Fenster auf. Ich habe zudem Win10 64-Pro
Das hatte schon mal mit einem Disassemblerprogramm, war evtl. sogar das
gleiche.
Bernd_Stein
Bernd S. schrieb:> Meinst du dies :>> https://www.johannes-bauer.com/mcus/avrdisas/
Nein.
Lustigerweise heisst auch der Verfasser von ReAVR Johannes. Allerdings
mit Nachnamen "Assenbaum". Keine Ahnung, ob hier hier irgendwelche
Namensverwirrung betrieben wurde oder nur Google diese betreibt.
Ich hänge mal einen Screenshot des "About"-Fensters des Tools an, was
ich hier habe.
c-hater schrieb:> Ich hänge mal einen Screenshot des "About"-Fensters des Tools an, was> ich hier habe.>
Danke.
Ich habe jetzt die 3.5.0 Version und es wurde wirklich die
Endlosschleife mittels rjmp PC herunter geladen. Was ein Scheiss.
S. Landolt schrieb:>> Es fehlt eine Endlosschleife>> Wo, zum Teufel, ist im .lss-File die Zeile rjmp PC ;Endlosschleife ( PC> = Program Counter )> geblieben?>
Wir sind schon etwas weiter ;-)
Nee ist echt verhext bei mir hab noch einen ATmega168PA gefunden und was
soll ich schreiben ...
Weiß echt nicht mehr weiter und weil es bei dir klappt muss ja etwas mit
meinem DSO nicht stimmen .., aber halt da war doch vor kurzem das hier
und da sieht man das selbe Verhalten, aber ein wirkliches sinken der
Kondensatorspannung, also muss dass DSO funktionieren.
Versuche nachher mal ein paar ATmega88PA über iBäh zu beziehen.
Beitrag "AVR8ASM-Projekte : PID-Reglung"
Bernd_Stein
Ich bin der Meinung, dass es mit diesem fehlenden 'rjmp pc'
zusammenhängt, denn das Fehlerbild passt perfekt, wie c-hater ja bereits
erklärt hat. Weitere Controller einsetzen oder am Oszilloskop
herumdrehen wird nicht helfen.
Bernd S. schrieb:> Weiß echt nicht mehr weiter und weil es bei dir klappt muss ja etwas mit> meinem DSO nicht stimmen
Nein, mit dem DSO ist alles in Ordnung. Dir fehlt nur die Kompetenz, es
sinnvoll zu benutzen bzw. dessen Ergebnisse sinnvoll zu interpretieren.
So hast du z.B. auf folgende Frage nicht geantwortet:
> Siehst du also nach Hinzufügen der Endlosschleife immer noch irgendwas,> wäre die nächste Frage: hast du den Pin belastet?
Also bei mir läuft es auch.
Der Aufbau sollte identisch sein, bis auf die Bat, wobei ich das auch
versucht hatte und keine Änderung brachte. Fuses sind identisch, die
Versorgung warscheinlich auch, 3.3V ?!
In der Zip ist der Debugordner nicht das es an irgend welchen Compiler
Einstellungen liegt. Kannst die Hex ja mal ausprobieren.
c-hater schrieb:> Nein, mit dem DSO ist alles in Ordnung. Dir fehlt nur die Kompetenz, es> sinnvoll zu benutzen bzw. dessen Ergebnisse sinnvoll zu interpretieren.>> So hast du z.B. auf folgende Frage nicht geantwortet:>>> Siehst du also nach Hinzufügen der Endlosschleife immer noch irgendwas,>> wäre die nächste Frage: hast du den Pin belastet?>>
Geht das mit dir schon wieder los?
Naja, vielleicht haben wir uns beim Schreiben ja überlappt
Siehe und lese aufmerksam :
Beitrag "Re: Was soll das bedeuten Phase and Frequency correct PWM"
@S.Landolt:
Bei mir sieht das Programm am DSO so aus ( siehe Screen Shot ).
Musste SEC/DIV allerdings auf 4ms stellen um die unregelmäßigen
Aussetzer
besser erkennen zu können.
Gelb -> Pin3 ( PD1 )
Cyan -> Pin5 ( PD3 ) mit 15k gegen GND
@Holger L.:
Kannst du deine Timebase nicht auf 2ms stellen?
Kann mit Win10 Pro dieses ZIP-Format nicht entpacken und werde mir auch
kein weiteres Programm hierzu downloaden.
Holger L. schrieb:> Kannst die Hex ja mal ausprobieren.>
Lade doch einfach diese HEX-Datei hoch, dann kann ich sie ja durch den
ReAVR disamblieren lassen und der OUTPUT müsste ja so aussehen wie in
meinem vorherigen Posting. Bei Unstimmigkeiten müsste ich mich aber erst
mit diesem Programm auseinandersetzen, damit es wenigstens einigermaßen
Vernüftiges anzeigt, wenn dies überhaupt möglich ist.
Bernd_Stein
Es ist einfach nur zum kotzen.
Wollte das Ganze dann einfach mal für den Timer0 machen, da passiert
seltsamerweise am Pin11 ( PD5 bzw. OC0B ) nichts. Wollte nun mit dem
Simulator gucken was da wie passiert.
Der Scheiß AS7 Simulator macht alles beim Timer2 und beim Timer0 streikt
er.
Bernd_Stein
Bernd S. schrieb:> Der Scheiß AS7 Simulator macht alles beim Timer2 und beim Timer0 streikt> er.>
Man muss ihn nur mit OUT anstatt STS füttern, dann geht auch alles.
Trotzdem auch beim Timer0 hab ich das Problem :
Gelb -> OC0B ( Pin11/PD5 )
Cyan -> OC2B ( Pin5 /PD3 ) mit 15k Pulldown
Der eine µC der noch nicht mit DebugWire gelaufen ist stammt aus TAIWAN
und kommt aus 1620, was wohl bedeutet 16te Woche und Jahr 2000.
Hab gerade noch mal beim Landolt nachgeschaut :
Wohl eher 2016 & 20igste Woche
>>Und wie sieht die Port-Freigabe genau aus? Der Kommentar ist ja falsch.>
Stimmt Kommentar ist Falsch. Kommt halt von COPY/PASTE und schusselig
sein.
Bernd_Stein
Habe ich das jetzt richtig verstanden - es ist nur dieser eine
ATmega88PA betroffen, auf dem ATmega168PA ist alles in Ordnung?
"1620" heißt übrigens Kalenderwoche 20 von 2016.
S. Landolt schrieb:> Habe ich das jetzt richtig verstanden - es ist nur dieser eine> ATmega88PA betroffen, auf dem ATmega168PA ist alles in Ordnung?>> "1620" heißt übrigens Kalenderwoche 20 von 2016.>
N E I N.
Alle drei machen den Mist ( 2x Mega88 ).
Der 168 stammt ebenfalls aus TAIWAN aus 1726.
Weil Reichelt mir den Gefallen nicht tut, warte ich auf Rückmeldung von
ELPRO.org und werde ggf. dort meine µC her beziehen.
Beitrag "Reichelt Wishlist im µC.net">>Sehen Sie, und genau deshalb hatte ich Ihnen das macro put angeboten.>
Ich hab gar nicht gerafft was da bezüglich des MACROS passiert und dann
einfach das Programm assembliert und den µC geflashed. Werde mich mal
bei Gelegenheit und Lust mit MACROS befassen.
Bernd_Stein
Hallo Bernd.
Stell doch mal dein Oszilloskop auf Spitzenerfassung.
Handbuch
https://produktinfo.conrad.com/datenblaetter/100000-124999/122485-an-01-de-VOLTCRAFT_DSO_1062D_DIGITAL_OSZILLOSKOP.pdf
Datenerfassung
Wenn Sie ein Analogsignal erfassen, dann wandelt das Oszilloskop dieses
in ein Digitalsignal um.Es gibt zwei Erfassungsarten: Echtzeiterfassung
und Äquivalentzeiterfassung. Es gibt drei Arten der Echtzeiterfassung:
Normal, Spitzenwert erfassen und Mittelwert. Die Erfassungsrate
hängt von der Einstellung der Zeitbasis ab.
Normal, Spitzenwert erfassen und Mittelwert.
Die Erfassungsrate hängt von der Einstellung der Zeitbasis ab.
Normal: Bei dieser Erfassungsart tastet das Oszilloskop das Signal in
gleichmäßigen Abständen ab, um die Signalform zu erstellen. Bei dieser
Methode werden die Signale meistens sehr präzise dargestellt. Jedoch
kann man bei dieser Methode keine schnellen Schwankungen im Analogsignal
erfassen, die eventuell zwischen zwei Abtastungen auftreten
können, welches zu einem Aliasingfehler und zum Auslassen
schmaler Impulse führen kann. In diesen Fällen sollten Sie den
Spitzenerfassungsmodus zur Datenerfassung wählen.
Spitzenerfassung: Bei dieser Erfassungsart erhält das Oszilloskop die
maximalen und minimalen Werte des Eingangssignals jedes Abtastinvervalls
und verwendet diese Werte, um die Signalform anzuzeigen. Auf diese Weise
kann das Oszilloskop die schmalen Impulse erfassen und anzeigen, die
ansonsten im Normalmodus verloren gegangen wären. Allerdings kann
es bei dieser Methode zu stärkerem Rauschen kommen.
Also ich habe jetzt extra einen ATmega168PA (Taiwan, 1703) aus einem
Datenschreiber ausgebaut und mit Ihrem Programm getestet: auf meinem
alten HM604-Analogoszilloskop sehe ich keine Aussetzer.
S. Landolt schrieb:> Also im Augenblick bin ich ratlos, tut mir leid.>
Ohne eure Anmerkungen und Bemühungen hätte ich den Fehler wohl nie
gefunden.
@Helmut S.
Ja, DSO hatte ich dann auch im Verdacht, nachdem es ja bei Landolt
funktionierte und die µC aus verschiedenen Jahren kamen.
Es hat mit der eingestellten Speichertiefe zu tun die man unter ACQUIRE
einstellen kann. Es war auf die kleinste eingestellt ( 4k ) je höher der
Wert desto träger reagiert dass DSO auf die Bediendrehknöpfe, deshalb
ist es wohl Werksseitig so eingestellt gewesen.
Mit 40k ist bei 2ms bis 8ms alles OK, allerdings dann bei der nächsten
möglichen Einstellung ab Sec/DIV 20ms kommt es wieder zum Fehlverhalten
des DSO, sowie dies ebenfalls ab einer Einstellung von 400ms auch bei
512k passiert, wo die Bedienung schon sehr, sehr träge reagiert.
Danke nochmals an Alle, die hier mitgewirkt haben und dies ausnahmslos
konstruktiv.
Bernd_Stein
Helmut S. schrieb:> Stell halt bei 20ms auf mindestens 120k Speichertiefe. Dann wird es> wieder richtig dargestellt.>
Hab ja nur das zur Verfügung was unter Aquire bereitgestellt wird.
Übrigens geht es auch mit 4k wenn Aquire -> Peak, wie du geschrieben
hast eingestellt wird ( siehe Screen Shot ).
Und nun ist Schluss für mich mit diesem Kapitel ;-)
Bernd_Stein
-Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
2
-Four 16-bit Timer/Counters with Separate Prescaler, Compare- and Capture Mode
3
– Real Time Counter with Separate Oscillator
4
– Four 8-bit PWM Channels
5
– Six/Twelve PWM Channels with Programmable Resolution from 2 to 16 Bits
6
(ATmega1281/2561, ATmega640/1280/2560)
Die beiden 8-Bit Zeitgeber / Zähler sind T/C 0 & T/C 2.
Die vier 16-Bit Zeitgeber / Zähler sind T/C 1, 3, 4 und 5.
Der Real Time Counter ist nicht extra, sondern nutzt dann den T/C 2.
Vier 8-Bit PWM-Kanäle ergeben sich aus jeweils 2 für jeden 8-Bit T/C.
Sechs bzw. zwölf PWM-Kanäle mit Auflösungen von 2 bis 16 Bit.
Da muss ich etwas überlegen. OC0A teilt sich mit OC1C den PORT B7.
OC0 = 2 PWM-Kanäle, wenn OC1C nicht genutzt wird ( T/C0 ).
OC1 = 3 PWM-Kanäle, wenn OC0A nicht genutzt wird ( T/C1 ).
OC2 = 2 PWM-Kanäle ( T/C2 ).
OC3 = 3 PWM-Kanäle
OC4 = 3 PWM-Kanäle
OC5 = 3 PWM-Kanäle
Also stehen einem maximal zwölf 16-Bit PWM-Kanäle und drei 8-Bit PWM
Kanäle, oder elf 16-Bit PWM-Kanäle und vier 8-Bit PWM-Kanäle zur
Verfügung. Ok, das war jetzt erst einmal ein grober Überblick.
Ich brauch 5 Rechtecksignale mit in etwa gleichen An,- und Auszeiten, wo
die Frequenz möglichst einen weiten Bereich abdeckt.
Fragen dazu folgen noch. Klar ist erstmal, dass nur die 16-Bit
PWM-Kanäle dafür in Frage kommen.
Bernd_Stein
Wenn ich alles richtig verstanden habe, habe ich vier Möglichkeiten ein
symetrisches Rechtecksignal zu erzeugen.
1
1. Normal Mode 0
2
Hier muss man einen Timer Overflow Interrupt benutzten.
3
In der zugehörigen ISR ist immer wieder der Wert im Timer Count Register
4
( TCNTx ) neu zu schreiben, sowie der Portpin zu toggeln.
5
6
2. CTC-Mode 4 "1" Clear Timer on Compare Match.
7
Hierbei wird dass Output Compare Register A ( OCRxA ) _einmalig_
8
mit einem Wert geladen.
9
Außerdem muss man den Timer x Compare Interrupt A ( TIMERx COMPA )
10
benutzen.
11
In der zugehörigen ISR ist noch der Portpin zu toggeln.
12
13
3. CTC-Mode 12 "2" Clear Timer on Compare Match.
14
Hierbei wird dass Input Capture Register ( ICRx ) _einmalig_
15
mit einem Wert geladen.
16
Außerdem muss man den Timer x Capture Event ( TIMERx CAPT )
17
Interrupt benutzen.
18
In der zugehörigen ISR ist noch der Portpin zu toggeln.
19
20
4. CTC-Mode 4 "3" Clear Timer on Compare Match.
21
Hierbei wird dass Output Compare Register A ( OCRxA ) _einmalig_
22
mit einem Wert geladen.
23
Jetzt wird jedoch im Timer/Couter Control Register A ( TCCRxA ) dass
24
Bitpärchen COMxA1 & COMxA0 auf Toggeln gestellt.
25
Hinzu ist unbedingt der OCxA-Pin auf Ausgang zu konfigurieren.
Die Variante 4, halte ich für die beste, da weder ein Interrupt benötigt
wird noch ein Portpin getoggelt werden muss. Nachteilig ist unter
Umständen, wenn der entprechende OCxA-Pin nicht zur Verfügung steht.
Wie seht ihr das ?
Bernd_Stein