Forum: Mikrocontroller und Digitale Elektronik SPI BUS programmieren ( PIC - Controller )


von Patrick (Gast)


Lesenswert?

Hallo Community,

Folgendes Problem tut sich mir momentan auf:

Ich soll eine SPI-Bus Übertragung zwischen einem DA-Wandler und einem 
Microkontroller herstellen bzw. programmieren.

Mein Microkontroller ist ein PIC24HJ128. Der DA-Wandler ist ein Chip mit 
allen notwendigen Anschlüssen.

Auf vielen Seiten wird der SPI-BUS als einfach programmierbar 
dargestellt (Kann gut sein... bin jedoch Anfänger ;) ).


Jetzt die Frage: Wie gehe ich am besten vor bei der SPI - BUS 
Programmierung ?

Könnt ihr mir bestimmte Internetseiten empfehlen?

Gruß Patrick

von Jonas W. (dawuehr)


Lesenswert?

Nimm ATMEL Atmega her.

von Chris B. (dekatz)


Lesenswert?

Hier gibt's was speziell für PIC24 und SPI:
http://www.engscope.com/pic24-tutorial/12-1-spi-basics/

: Bearbeitet durch User
von Chris B. (dekatz)


Lesenswert?

Jonas Wühr schrieb:
> Nimm ATMEL Atmega her.

Er verwendet einen PIC24HJ128!
Soll das hier wieder ein ATMEL vs. Rest-der-Welt B.....it werden???

von WehOhWeh (Gast)


Lesenswert?

Im Handbuch steht wie das mit der Hardware-SPI gegt:
http://ww1.microchip.com/downloads/en/DeviceDoc/39699b.pdf

Ein Codebeispiel findest du hier (SPI und PIC24F auswählen):
http://www.microchip.com/CodeExamplesByFunc.aspx

oder eine Software-SPI nehmen. Google dürfte funktionsfähige Exemplare 
ausspucken.

von Olaf (Gast)


Lesenswert?

> Jetzt die Frage: Wie gehe ich am besten vor bei der SPI - BUS
> Programmierung ?

Sei ein Mann und lies das Datenblatt des Micrcontroller. Eventuell hat 
der Hersteller auch noch eine Applikation genau zu deinem Problem 
geschrieben. Die liesst du dann auch.

Schreib nicht bei anderen Leute ab, das haelt dich nur bloed.

Eventuell kann es sein das du noch irgendwo eine Grundlagenseite über 
SPI lesen solltest welche dir Mode0 bis 3 mal erklaert.

Danach programmierst du SPI einmal ein Software. Und auch das schreibst 
du bei niemand anderem ab weil du nur so verstehst was du da machst. Und 
dann implementierst du es mit der Hardware im Controller.

Olaf

von Patrick (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die vielen Antworten :)

ein paar Fragen habe ich auch noch :P


1) Bei meinem DA - Wandler ( MCP4822 ) gibt es eine LDAC-Leitung. Ich 
bin mir nicht sicher was diese macht, bzw. ob ich diese beachten muss 
beim programmieren.

2) SPI Mode 0,0 -1,1 gibt an welchen CKE bzw CPK Wert man benutzen will.

http://www.engscope.com/wp-content/uploads/2010/07/SPI_pic24_conf.png

Die üblichen SPI-Modes sind 0,0 und 1,1. Ich frage mich allerdings was 
dies heißt, ich fand heraus dass es etwas damit zu tun hat ob das erste 
Bit dann übertragen wird wenn CS eine Fallende Flanke hat und die 
folgenden Bits auf eine fallende Flanke von SCK reagieren.

Stimmt das so oder bin ich da, naja auf dem "Holzweg"?


Gruß Patrick

von Pandur S. (jetztnicht)


Lesenswert?

Da gibt es nur eins. Das original Datenblatt von hinten bis vorne. Jedes 
Wort lesen. Und ja. Vom Controller und vom DAC.

von Chris B. (dekatz)


Lesenswert?

Patrick schrieb:
> 1) Bei meinem DA - Wandler ( MCP4822 ) gibt es eine LDAC-Leitung. Ich
> bin mir nicht sicher was diese macht, bzw. ob ich diese beachten muss
> beim programmieren.
>

Ja musst du.
Erst nach einer High-Low Flanke an LDAC werden die Daten vom 
Eingangsregister in den DAC übernommen. Dadurch ändert sich die 
Ausgangsspannung beider DAC synchron.

von X4U (Gast)


Lesenswert?

Patrick schrieb:
> Jetzt die Frage: Wie gehe ich am besten vor bei der SPI - BUS
> Programmierung ?

Welchen Compiler benutzt du?

Jonas Wühr schrieb:
> Nimm ATMEL Atmega her.

Mit diesen Markenfetischisten aka Fanboyz musst du hier leider rechnen.

Wenn du englisch kannst bist du mit PIC in anderen Foren (z.B. bei 
Microchip) besser aufgehoben.


Jetzt Nicht schrieb:
> Da gibt es nur eins. Das original Datenblatt von hinten bis vorne. Jedes
> Wort lesen. Und ja. Vom Controller und vom DAC.

Lass dich nicht kirre machen, ein Datenblatt ist kein Tutorial. 
Ausführlich sind die Chips bei Microchip in den "Family Reference 
Manuals" beschrieben.

Für die SPI Kommunikation reicht es das Kapitel im Datenblatt zu 
studieren. Wenn du den Inhalt nicht verstehst fehlen Grundlagen.

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.