Hallo!
Ich war sehr unsicher, was die Wahl des Brettees betrifft; Alternativvorschläge sind daher willkommen.
Ausgangslage: Eine kleine Schaltung mit einem dsPIC33FJ12GP201. Der Controller hat nur 28 Pins und verwendet das wohl recht neue Mapping mit „Peripheral Pin Select“. Ich möchte mit dem Gerät per SPI kommunizieren und betreibe es als Slave. Natürlich möchte ich das integrierte SPI-Modul verwenden. Programmiert wird mit MPLAB unter C.
Was funktioniert: Ich habe die entsprechenden Pins zugeordnet und kann auch Daten an den Master übertragen.
Das Problem: Wenn ich Daten vom Master übertragen will, wird zwar das Flag SPIRBF gesetzt, der Wert in SPI1BUF ist jedoch stets 0, egal, was ich sende. Die Signale sehen am Oszilloskop richtig aus.
Meine Überlegungen: Mir scheint es, dass die Signale zwar am Pin richtig ankommen, von dort aber nicht an das SPI-Modul weitergegeben werden. Da ich den Pin (Ich habe zwischenzeitlich auch einen anderen Pin versucht) richtig gemappt ist, kann eigentlich nur eine andere Funktion mit höherer Priorität auf dem Pin aktiviert sein. Laut Datenblatt kommt dafür nur ein Analog-Eingang in Frage. Ich benutze aber nur einen Analog-Eingang, der natürlich auf einem anderen Pin liegt und nur dessen Bit in AD1PCFGL gesetzt. Außerdem habe ich den ADC zunächst gar nicht eingeschaltet. Folgende Funktionen sind für den Pin 15 angegeben: RP14, AN7, CN12, RB14.
Habt Ihr noch eine Idee, wo es hängen könnte??
Vielen Dank schonmal!
Gruß,
Arndt