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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Patrick (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-4 lesenswert
nicht lesenswert
Nimm ATMEL Atmega her.

von Chris B. (dekatz)


Bewertung
1 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.