Das PIC24FJ128GA310 Datenblatt besagt doch ganz klar das Man ein Output z.B. SPI (SDO) auch an mehrere Pins Mappen darf. Ich habe zwei Chips (jeder SPI) die ich aufgrund meines Layouts am Liebsten an zwei verschiedenen stellen /Pins an den PIC24 anschliessen möchte. Ist es ok hierfür mit dem Mapping einfach zwei Pins für SDO zu vergeben? http://ww1.microchip.com/downloads/en/DeviceDoc/30009996g.pdf PIC24FJ128GA310 FAMILY DS30009996G-page 176 11.4.3.3 Mapping Limitations The control schema of the Peripheral Pin Select is extremely flexible. Other than systematic blocks that prevent signal contention, caused by two physical pins being configured as the same functional input or two functional outputs configured as the same pin, there are no hardware enforced lock outs. The flexibility extends to the point of allowing a single input to drive multiple peripherals or a single functional output to drive multiple output pins
Hi, Simon schrieb: > Ist es ok hierfür mit dem Mapping einfach zwei Pins für SDO zu > vergeben? Da es vom Datenblatt AUSDRÜCKLICH so als Konfigurationsmöglichkeit hervorgehoben wird und SDO zu den Signalen gehört die per PPS geroutet werden können wüsste ich nichts was dagegen spricht! Zumal es ja keine "irgenwie funktionierende" Option ist die sich jederzeit durch eine Hardwarerevision im Verhalten ändern kann sondern eine explizit beabsichtigte Option wo vom Halbleiterhersteller sogar Schutzmaßnahmen bei konkurierenden Signalpegeln vorgesehen sind. (Falls Input, also hier eh irrelevant) Einzig das Errata Sheet würde ich noch einmal zu rate ziehen, nicht das dort noch eine Einschränkung wegen Hardwarefehler des µC aufgeführt ist. Aus dem Kopf wüsste ich aber in diesem Punkt jetzt von nichts. Gruß Carsten
Ich glaube, "multiple" bezieht sich hier darauf, dass mehrere Pins gewählt werden können. Aber soviel ich weiß immer nur einer zu einer bestimmten Zeit. Es gibt ja auch nur ein Register dem man einen Wert zuordnen kann. Ich sehe keine Möglichkeit zwei Pins zuzuordnen!? z.B.
1 | //SDI1 input mapping to RP8/RB8
|
2 | RPINR20bits.SDI1R = 8; |
3 | //RP7/RB7 to output Function 7 = SDO1
|
4 | RPOR3bits.RP7R = 7; |
5 | //RP6/RB6 to output Function 8 = SCK1OUT
|
6 | RPOR3bits.RP6R = 8; |
In Bezug auf dein Problem - mach doch den zweiten Pin über einen Jumper verfügbar. Gruß
:
Bearbeitet durch User
Also für mich kam es bisher immer so vor: - Man kann pro RPn Pin einen Output eines Moduls wählen -> Man kann RP1 und RP2 den gleichen Output wählen, z.B. SDO - Man kann pro Input eines Moduls einen RPIn Pin wählen -> Man kann für SDI und Komparator-Input den gleichen Pin wählen, z.B. RPI3. Inwiefern das wirklich sinnvoll und erlaubt ist, weiß ich nicht. Aber ansich sollte es gehen, geht ja auch bei Logikgattern, dass ein Ausgang auf mehrere Eingänge gelegt werden darf/kann. Also sollte es gehen, dass du SDO & SCLK auf jeweils 2 verschiedene Pins legen kannst. Bei SDI sehe ich da aber keine Möglichkeit. Die musst du wohl zusammen legen. Was auch ginge, du nimmst für den einen Slave SPI1 und für den anderen SPI2, was aber softwaretechnisch "komplexer" ist. Kannst dir dafür aber auch ggf die CS Leitungen sparen, wenn pro SPI-Modul nur der eine Slave zusehen ist.
Aus der Registerbeschreibung im DS ist doch eindeutig beschrieben, was man zuordnen kann und was nicht. Für jeden entspr. ModulOut und In-Pin gibt es ein Register. (I2C wird meistens nicht gehen, auch Portpins direkt gehen nicht, dafür viele SPIs, UARTs, Timer)
Nein, geht nicht. Entweder der uC hat 2 SPI's oder siehe unten ... Aber man kann beide Chips parallel anschließen und benutzt 2 Select Signale. Der "SPI-Bus" ist so definiert.
jedes modul (SPI, UART, INT...) hat gewisse IOs. nicht jedes dieser IO lässt sich auf jeder RP-Pin mappen. siehe das datenblatt, welche IOs an welchen RPs gehen und welche nicht.
:
Bearbeitet durch User
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.