Hallo Zusammen,
ich arbeite mit (zum ersten Mal) einem Atmel AT91SAM7x Board in
Verbindung mit einem ADC ADCS7476AIMF.
Jetzt hab ich gewisse Probleme den PIO Controller richtig anzusprechen.
Mein Problem ist, dass ich das System, wie man mit den einzelnen
Funktionen der I/O Ports umgeht etc. nicht verstehe. Gibt es dazu eine
gut verständliche Dokumentation? Ideal wäre natürlich deutsch, aber ich
möchte nicht anmaßend sein ;)
Ich mein aber nicht die 670 Seiten Boardbeschreibung mit den einzelnen
Funktionen, die versteh ich schon. Mein Problem liegt wiegesagt beim
Programmieren
Ich möchte die Pins als Input und Output benutzen.
Kann Man den Clock von irgendeinem Pin schicken?
_Gast_ schrieb:> Mein Problem ist, dass ich das System, wie man mit den einzelnen> Funktionen der I/O Ports umgeht etc.
Man sagt dem PIO-Controller, dass er die jeweiligen Pins der gewünschten
Hardwarekomponente zuordnet. In deinem Fall wird es das SPI-Modul sein.
Das Ganze geht über die Register PIO_ASR / PIO_BSR. Man muss lediglich
schauen, an welchen Pins die entsprechenden SPI-Signale hängen und
welcher Periphial-Block (A/B) dafür verantwortlich ist. Dann kann man
über die entsprechenden PIO_xSR-Register (x=Block; A oder B) der
Peripherie die Kontrolle über die Pins geben.
Gruß Oliver
PS.
Kleine Hilfestellung: schau dir mal PA11..PA14 an.
Danke erst mal für die Antwort aber!
wir haben uns nicht richtig verstanden Oliver.
Dass mein µC ein paar SPI Schnittstellen hat, kann ich noch erkennen.
ich möchte die Pins als Input oder Output definieren, unabhängig von den
schon konfigurierten Schnittstellen. Wenn du mein ADC siehst, kannst du
erkennen, dass er mit einem Takt die einzelnen Bits Schickt. und wenn
ich den normalen Clock benutze, dann kann ich keinen Einfluss auf meinen
Takt. Oder verstehe ich das falsch?
ich möchte irgend ein Pin nehmen und als Clock Ausgang definieren, und
ein Pin für Data und ich brauche noch ein paar Pins für andere
Funktionen z.B. EN_Pin, Adressen_Pin ........
@_Gast_:
wozu machst du einen neuen thread auf und verwendest einen neuen nick?
hier hast du doch schon ähnliche fragen gestellt:
Beitrag "Mac71xx zu at91sam7x256"
wenn du dich tatsächlich ernsthaft mit dem thema befassen möchtest, dann
solltest du dir die div. beispiel-projekte, die atmel zur verfügung
stellt, mal näher ansehen und aus denen lernen wie man auf dioe
peripherie des sam7x zugreist:
http://www.atmel.com/tools/AT91SAMSOFTWAREPACKAGE.aspx
gruss
gerhard
Hi!
Also ich verstehe auch nicht so ganz, was Du erreichen willst. Zum einen
könnte man meinen Du möchtest den ADC via SPI ansteuern und weiss nicht,
wie Du die GPIO Pinne des SAM umschaltest auf die SPI Einheit. Dann
wiederum kommst DU mit was völlig anderem, Du willst den ADC mit GPIO
ansteuern... was absolut sinnfrei ist.
Im Unterton Deiner Antwort könnte man vielleicht heraushören, dass Du
den ADC zu einer genz bestimmten Geschwindigkeit, resp. Samplerate
verführen möchtest... Dafür GPIO zu nehmen dürfte aber in einer
mittleren Kathastrophe enden, denn für das Successive Approximation
Verfahren ist es sinnvoll eine möglichst gleichmäßige Bit-Clock an den
Chip zu liefern. Das per GPIO sicher zu stellen ist ein enormer Aufwand.
Wenn Du dann die Specs weiter liest, wirst Du verstehen, dass der ADC
mit dem Start einer Sample-Sequenz die Werte in die Track & Hold Stufe
lädt und dann eine der Sample-Auflösung entsprechende Anzahl Takte
benötigt.
Es ist also egal, wie schnell die Pulse für die Bits aufeinander folgen,
die Samplerate wird vorgegeben, in dem Du überhaupt eine Sequenz
startetst.
Vereinfacht ausgedrückt:
Wenn Du mit 1kHz Sampeln willst, dann kannst Du den SPI ruhig mit 10MHz
Baudrate einstellen, aber Du startest nur mit 1kHz die SPI Übertragung.
Im Übrigen, wenn Du Wert auf eine möglichst automatische und konstante
Samplerate legst, dann suchst Du mit dem SPI eh am falschen Interface.
Du solltest mal nach dem I2S Interface sehen, dass bei einigen SAM
vorhanden ist. Nur weil da Audio drann steht, muss man es nicht
unbedingt dafür nutzen.
Mfg
Ulrich
Nochmal:
Hier versteht niemand, warum Du nicht einfach 16-Bit SPI verwendest,
obwohl der ADC als auch der SAM7 dieses Protokoll sprechen und absolut
kompatibel zueinander sind.
Es macht keinen Sinn das über GPIO Bitbanging anzugehen, im Gegenteil,
es kann Deine Messergebnisse verschlechtern.
Mfg. Ulrich
Hallo zusammen,
ich möchte die Daten, die ich von einer SPI Schnittstelle bekomme, mit
meinem CAN-Bus rausschicken. Hat jemand da ein bisschen Erfahrung wie
das geht.
Ich möchte die Mail-Boxen Initialisieren aber ich weiß nicht wie das
geht oder viele ich brauche. Hat jemand vielleicht ein C-Code Beispiel
für mich?
Danke im Voraus
kann ich die Daten, die ich mit der SPI Schnittstelle lese direkt mit
der CAN Schnittstelle senden?
Mailbox initialisieren? CAN-Schnittstelle initialisieren?
Danke im Voraus
>kann ich die Daten, die ich mit der SPI Schnittstelle lese direkt mit>der CAN Schnittstelle senden?
ja
>Mailbox initialisieren? CAN-Schnittstelle initialisieren?
siehe examples aus Atmel software package:
http://www.atmel.com/Images/at91sam7xc-ek.zip
mfg
gerhard