Forum: Mikrocontroller und Digitale Elektronik SPI Schnittstelle an dsPIC30F5011


von Florian Koch (Gast)


Lesenswert?

Hallo

Ich versuche seit 2 Wochen verzweifelt einen MCP4822 DA Wandler von 
Microchip
zum wandeln zu bekommen. Also ich hab einen DSPIC30F5011 und möchte über 
die SPI Schnittstelle einen MCP4822 ansteuern aber ich bekomme es nicht 
hin. Der Wandler hat zusätlich zu den standart SPI eingängen noch einen 
LDAC und Chipselect Eingang. Aus dem Datenblatt für den MCP4822 habe ich 
entnommen, dass um ein Datenwort zu übernhemen der Chipselelect nach dem 
16 Takt auf high gesetzt werden muss und der LDAC auf Low. Aus Dem 
datenblatt für den dsPIC habe ich,dass wenn der dsPIC die 16 bit 
gesendet hat er im IFS0 Register das SPI1IF Bit setzt. Hab dann in C ne 
Zeile geschrieben alla
if(IFS0bits.SPI1IF==1)
{
setze Cipselect Port auf 1;
setze LDAC Port auf 0;
setze SPI1IF auf 0;
}
vorher habe ich natürlich den Chipselect und den LDAC genau invert 
initialsiert.
OK mit dem Oszi mess ich auch den Takt das Datenwort und nach dem 16 
Takt wird der Chipselect kurz auf 1 und der LDAC kurz auf 0 gesetzt. 
Aber am Analogausgang mess ich nix.
Wäre echt super wenn man mir hier weiterhelfen könnte
MFG
Florian Koch

von Franko P. (sgssn)


Lesenswert?

Hallo

beim Durchlesen des Datenblattes finde ich folgende "Fehlerursachen"
Pin 6, Shutdown
Write Command Register Bit 12 "Shut down"

Wenn du mit dem Oszi siehst, dass die Signale kommen, kanns also nur 
sowas sein.
Ansonsten kann man ja im dsPOIC auch einiges einstellen, was SPI 
anbelangt: Takt, Ruhezustand des Taktes, Verzögerung...


Gerhard

von Franko P. (sgssn)


Lesenswert?

Was mir an dem Post bei www.fernando-heitor.de noch aufgefallen ist: Es 
ist unlogisch, zuerst die SPI-Daten-Übertragung zu starten und danach 
den CS zu aktivieren. Es ist auf jedn fall wichtig, zuerst den CS zu 
aktivieren und danach das Daten-Zeichen ins SPI-Register zu schreiben.

gerhard

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.