Hallo, beim SAM4E8C können mittels Peripheral Signal Multiplexing verschiedene Funktionen pro Pin ausgewählt werden. Also z.B. bei der I/O Line PA gibt es Peripheral A, Peripheral B, Peripheral C, Extra Function, System Function. So jetzt habe ich beim belegen der Pins nicht aufgepasst von welcher Peripherial die Funktion zur Verfügung gestellt wird. Ich war/bin der Meinung, dass ich für jeden PIN entscheiden kann welche Peripherie dieser benützt. Nur bin ich mir jetzt nicht mehr sicher und das würde meinen ganzen Plan über den Haufen schmeißen. :( Kann ich für jeden Pin entscheiden welche Peripherie verwendet wird? Z.B Pin PA0 verwendet Peripheral A und Pin PA1 verwendet Extra Function. Ist dies Möglich? Oder sind diese irgendwie in Blöcke zusammengefasst? godi
Man kann für jeden Pin getrennt angeben, ob dieser von Peripherie A, B, C oder extra Funktion angesteuert wird. Natürlich immer nur die Peripherieinheiten, die beim jeweiligen Gehäuse auch auf diesen Pin geschaltet sind, also z.B. beim QFP100 PA1 PWMH! oder TIOB0 oder A18 oder WKUP1 Die Auswahl erfolgt in den Registern PIO_ABCSR1 und PIO_ABCSR2 Die Sonderfunktionen z.B. A/D-Wandler werden automatisch an den entsprechenden Pin geschaltet, wenn die Funktion aktiviert wird, also z.B. A/D-Wandler Kanal enable. Gruß Joachim
Danke für deine Antwort, diese beruhigt mich wieder. :) Die Pinbelegung habe ich kontrolliert, also da sollte alles passen.
Die Mimik, die das entscheidet, ist bloß ein wenig ungewöhnlich über PIO_ABCDSR1 und PIO_ABCDSR2 verteilt. Wenn du also jetzt beispielsweise PA0 auf Peripheral A setzen willst, dann musst du Bit 0 sowohl in PIOA->PIO_ABCDSR1 als auch PIOA->PIO_ABCDSR2 löschen und das Bit in PIOA->PIO_PDR setzen, damit statt der PIO-Funktion die entsprechende Peripheriefunktion benutzt wird. Willst du Peripheral C benutzen, musst du das Bit in PIOA->PIO_ABCDSR1 löschen, aber in PIOA->PIO_ABCDSR2 setzen. Gewissermaßen bilden die beiden Register ABCDSR1 und ABCDSR2 „vertikal“ ein 2-Bit-Wort, welches Funktion A … D auswählt, während „horizontal“ die Bitnummer entscheidet, welcher Pio-Pin davon betroffen ist.
Danke für eure Antworten, auf eure Informationen werde ich dann zurückgreifen wenn es ums Programmieren geht. :)
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.