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
Hier gibt's was speziell für PIC24 und SPI: http://www.engscope.com/pic24-tutorial/12-1-spi-basics/
:
Bearbeitet durch User
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???
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.
> 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
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
Da gibt es nur eins. Das original Datenblatt von hinten bis vorne. Jedes Wort lesen. Und ja. Vom Controller und vom DAC.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.