Forum: Mikrocontroller und Digitale Elektronik PCINT und PWM Wechselwirkung ATMega1284P


von Wilhelm M. (wimalopaan)


Lesenswert?

Hallo zusammen,

ich stelle ein sehr merkwürdige Wechselwirkung beim einem ATMega1284P 
fest.

Ich benutze den PCINT16, um ein PPM-Signal auszuwerten. Dazu wird der 
PinChange-Interrupt benutz und die entsprechende Maske in PCMSK2 
gesetzt.
In der ISR wird dann nur geschaut, ob es eine steigende oder fallende 
Flanke ist und dann der Wert des frei laufenden Timers 2 ausgelesen und 
die Differenz zum vorigen Wert bestimmt. Funktioniert problemlos.

Wenn ich nun zusätzlich(!) Timer3 verwende, um ein PWM-Signal an OC3A 
und OC3B auszugeben, funktioniert die PPM-Erkennung sporadisch nicht 
mehr korrekt. Verwende ich nur OC3A oder OC3B scheint es keine Probleme 
zu geben.

Das ganze findet derzeit nur auf einem Breadboard statt, d.h. an den 
PWM-Ausgängen ist noch nichts angeschlossen.

Das ganze ist ohne Probleme reproduzierbar, ich brauche nur das 
OutputCompare zu aktivieren ...

Irgendwelche Hinweise?

VG
 Wilhelm

von Sascha_ (Gast)


Lesenswert?

Da wird sich der PCINT Pin wohl Störstrahlung einfangen. Aufm Breadboard 
nichts ungewöhnliches.

Warum machst du das eigentlich nicht mit dem ICP? Ggf. mit aktiviertem 
Noise Canceler?

von Peter D. (peda)


Lesenswert?

Och nö, schon wieder Prosa statt exaktem Quelltext.

von Wilhelm M. (wimalopaan)


Lesenswert?

Weil ICP1 auf OC2B liegt und ich das später noch brauche und ICP3 liegt 
auf OC3A, wo ja grad die PWM generiert wird.

von Sascha_ (Gast)


Lesenswert?

Gut, dann Schaltung und Quelltext bitte. Und vielleicht ein Foto vom 
Aufbau.

von Wilhelm M. (wimalopaan)


Lesenswert?

Peter D. schrieb:
> Och nö, schon wieder Prosa statt exaktem Quelltext.

Wollte Euch nicht damit "langweilen" ...

Scherz beiseite: ich werde erstmal noch einen anderen elektrischen 
Aufbau machen und dann schauen. Falls das Problem weiter besteht, werde 
ich dann ein minimal-example machen ...

von Wilhelm M. (wimalopaan)


Lesenswert?

... gelöst.

Anscheinend ne HW-Macke: habe den ATMega1284P gegen ein anderes Exemplar 
getauscht -> keine Probleme mehr.

von c-hater (Gast)


Lesenswert?

Wilhelm M. schrieb:

> Weil ICP1 auf OC2B liegt

Das stimmt...

> und ICP3 liegt
> auf OC3A

...das allerdings stimmt nicht. ICP3 liegt auf PB5. Und als einzige 
weitere alternative Funktionen liegen auf diesem Pin PCINT13 und MOSI. 
Keine PWM-Ausgänge...

von Wilhelm M. (wimalopaan)


Lesenswert?

Ok, das ist ja gut! Hatte mich schon gefragt warum das so b... ist.

Im Datenblatt taucht die Bezeichnung ICP3 ja gar nicht an einem Pin auf 
:-(

Jetzt weiß ich nicht mehr, welcher obskuren Quelle ich das entnommen 
hatte.

Danke für den Hinweis!

von Thomas E. (thomase)


Lesenswert?

Wilhelm M. schrieb:
> Im Datenblatt taucht die Bezeichnung ICP3 ja gar nicht an einem Pin auf

Doch. Auch seine Datenblätter sollte man ab und zu auf den letzten Stand 
bringen.

von Wilhelm M. (wimalopaan)


Lesenswert?

Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber 
nicht an einem Pin, sondern nur im Text ...

von Thomas E. (thomase)


Lesenswert?

Wilhelm M. schrieb:
> Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber
> nicht an einem Pin, sondern nur im Text ...

Kann ich jetzt nur bestätigen. Diese Version war mir noch nicht bekannt. 
In meiner Version von 01/2015 steht die Bezeichnung am Pin. Kann ja 
keiner ahnen, daß die da irgendwann einen Idioten ransetzten, der das 
wieder wegnimmt. Aber Hauptsache schön bunt.

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

"Ich merkt' es wohl, vor Tische las man's anders."

von c-hater (Gast)


Lesenswert?

Wilhelm M. schrieb:

> Also im Datenblatt Stand 08/2016 finde ich zwar 7x das Wort ICP3, aber
> nicht an einem Pin, sondern nur im Text ...

Wetten, dass du da das DB hast, was die Mega164..1284 beschreibt (und 
vorgibt, auch den 1284P zu beschreiben)?

Nada, das ist das "falsche". Es gibt ein extra dem Mega1284 P 
gewidmetes DB. Das findest du auch auf den Servern von Atmel (mit 
Googles Hilfe), es ist aber offensichtlich bei Atmel selber leider nicht 
verlinkt.

Oder anders ausgedrückt: Atmel hatte mal den Plan, die DBs 
zusammenzuführen, es aber bis heute nicht geschafft, dies fehlerfrei zu 
tun (3 oder 4 Jahre?).

Böderweise wird das alte DB (also das explizit für den 1284P) schon seit 
langem nicht mehr gepflegt, obwohl es viel mehr Wahrheit über diesen µC 
enthält, als das, was lt. Atmel derzeit wirklich zuständig ist...

Tatsächlich ist es also aktuell so, dass man beide DBs lesen und 
gegeneinander abgleichen muss, um zu einer halbwegs korrekten 
Beschreibung des 1284P zu kommen. Das nervt. Aber die Typen von Atmel 
hatten scheinbar kein Geld, um auch nur einen Praktikanten zu bezahlen, 
der die Aufgabe löst. Muss man es halt selber machen...

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

> Wetten, dass du da das DB hast, was die Mega164..1284
> beschreibt (und vorgibt, auch den 1284P zu beschreiben)?
> Nada, das ist das "falsche". Es gibt ein extra dem Mega1284 P
> gewidmetes DB.

Also diesen Einwand, c-hater, verstehe ich nun nicht, hatte ich mir 
jetzt doch extra das neueste von Atmel heruntergeladen.

von Thomas E. (thomase)


Lesenswert?

c-hater schrieb:
> Wetten, dass du da das DB hast, was die Mega164..1284 beschreibt (und
> vorgibt, auch den 1284P zu beschreiben)?

> Es gibt ein extra dem Mega1284 P
> gewidmetes DB.


http://www.atmel.com/Images/Atmel-42719-ATmega1284P_Datasheet.pdf

Das ist das aktuelle DB vom 1284. Das Datenblatt, in dem der Pin in der 
Pin-Out Grafik bezeichnet ist, ist das "Universal"-DB.

von Paul B. (paul_baumann)


Lesenswert?

Das zum Thema: "Schau gefälligst in das Datenblatt!" Die korrekte 
Reaktion könnte demnächst in der Gegenfrage bestehen: "In welches?"
:)
MfG Paul

von c-hater (Gast)


Lesenswert?

S. Landolt schrieb:

> Also diesen Einwand, c-hater, verstehe ich nun nicht, hatte ich mir
> jetzt doch extra das neueste von Atmel heruntergeladen.

Hmm...

Linkadresse? Adresse der Seite, auf der du diesen Link gefunden hast?

Wäre ja schick, wenn Atmel wenigstens dieses Problem nach all den vielen 
Jahren endlich mal gelöst hätte...

von S. Landolt (Gast)


Lesenswert?

> Linkadresse?
Siehe den von Thomas Eckmann angegebenen Link, ganz normal per Google 
mit "ATmega1284P" gefunden, erster Eintrag.
  Übrigens hatte das alte von 2015-01, also das für 164A..1284P, noch 
rund 31 MB, das neue von 2016-08 für den 1284P allein nur knapp 6 MB.

von Wilhelm M. (wimalopaan)


Lesenswert?

In dem Datenblatt von 08/2016 steht explizit 1284P als Type drin.

Und in dem von 01/2015 steht zwar die Bezeichnung ICP3 am Pin, aber 
dafür die alte Bezeichnung ICP und nicht ICP1 am anderen Pin ....

Oh je!

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
Noch kein Account? Hier anmelden.