PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drucksensor --> SPI --> RN-Mega128Funk



ReiniXXL
21.12.2007, 17:07
Hallo,

wie kann ich am einfachsten folgenden Drucksensor (mit schon integriertem AD-Wandler) an ein RN-Mega128Funk anschließen?
Leider kenn ich mich mit SPI überhaupt nicht aus.
Welche Ports muss ich da am µC verwenden?
Hab bisher nur I2C und rs232 verwendet.

Infos zum Drucksensor:
http://www.amsys.info/sheets/amsys.en.ms5534a(e).pdf

(ELV Bestellnummer: 68-308-67)

Grüßle
Dani

H.A.R.R.Y.
22.12.2007, 15:54
Hi,

welchen Controller möchtest Du denn nehmen?
AVR, PIC, ...?

Die Datenübertragung ist im Sensordatenblatt schön mit allen Infos beschrieben. Dazu die passenden Software-Routinen zu schreiben, sollte machbar sein. Die von vielen µCs angebotene SPI-Hardware mußt Du nicht zwingend nehmen, es langt irgendwelche Portbits unter SW-Kontrolle zu toggeln und abzufragen. Natürlich muß vorher die Richtung (in/out) richtig eingestellt werden.

An DIN schiebst Du dem Sensor die Daten ein (MOSI oder SIMO vom µC) und an DOUT gibt der Sensor seine Werte zurück (MISO oder SOMI vom µC). Das Tempo wird vom SCLK bestimmt - achte auf die markierten Flanken in den Impulsdiagrammen - und ist nicht zeitkritisch, darf aber 500kHz (1µs '1' und dann 1µs '0') nicht überschreiten. Der µC arbeitet als SPI-Master und viele µCs nehmen ein Byte als Grundeinheit für einen SPI-Zugriff. Die Transfers laufen dann häppchenweise mit Vielfachen von 8bit. Wenn Du Dich für eine reine SW-Lösung entscheidest, hast Du volle Freiheit bezüglich der Wortbreiten und kannst auch "krumme" Bitzahlen realisieren.

Da ich den RN-Mega128Funk nicht kenne, kann ich Dir da keine Tips geben.

Möglicherweise baust Du erstmal nur den Teil mit µC und Drucksensor auf und kommunizierst per RS232 direkt mit Hyperterminal oder so. Dann kannst Du die Sensorschnittstelle debuggen und Dich anschließend dem Teil mit dem Funkmodem widmen.

Gruß H.A.R.R.Y.

ReiniXXL
23.12.2007, 07:47
Im RN-Mega128Funk ist ein AVR ATMEGA128 verbaut.

http://avrhelp.mcselec.com/config_spi.htm?zoom_highlightsub=spi :-k
Kann ich also jeden unbelegten Port per Software zu...
MOSI --> DIN |Sensor
MISO --> DOUT |Sensor
SCLK --> SCLK |Sensor
... machen?

Ist Soft- oder Hardware SPI zu empfehlen?

Weiter muss ich da von den Spannungen an den Datenleitungen nichts beachten?

Grüßle Dani

Hubert.G
23.12.2007, 10:28
Ich würde schon HW-SPI verwenden, allerdings brauchst du auch noch einen Master-Clock mit 32768Hz. Im Datenblatt nachlesen.
Im Mega128 ist SPI auf PortB.
Der Sensor läuft mit 3V und ich habe nichts von 5V-Tolerant gelesen, also auf die Pegel achten.

H.A.R.R.Y.
23.12.2007, 14:23
Hallo,

BASCOM ist mir unbekannt, aber so wie ich die Doku verstehe hast Du zwei Möglichkeiten:
a) hardware SPI mit festgelegten Pins und byteweisem Transfer
b) software SPI mit völlig freier Pin-Auswahl und bitweisem Transfer (weil Du alles selber machen mußt)

Welche Variante Du nehmen möchtest hängt davon ab, ob Du die SPI-hardware nehmen möchtest. Solltest Du die für was anderes brauchen dann bleibt nur die Softwarelösung übrig.

Bei den großen mega-AVRs können die USARTs als SPI-Master arbeiten. Das gibt zusätzliche SPI-Ports. Ich weiß nicht, ob BASCOM das unterstützt. Eventuell ist C oder Assembler notwendig.

Gruß H.A.R.R.Y.

ReiniXXL
28.12.2007, 13:47
Der Sensor läuft mit 3V und ich habe nichts von 5V-Tolerant gelesen, also auf die Pegel achten.
Nach Datenblatt ist der maximale HIGH Pegel die maximale Versorgungsspannung = 3,6 Volt
Benötige ich dann einen Pegelwandler wie z.b. den Philipps AN97055 oder ist das mit Kanonen auf Spatzen geschossen? O:)
http://www.standardics.nxp.com/support/documents/i2c/pdf/an97055.pdf
Gruß Dani
P.S.: Den Sensor halte ich übrigens inzwischen in Händen ;)

Hubert.G
28.12.2007, 14:33
Den Mega128 betreibst du mit 5V oder auch nur mit max. 3,6V. Du musst halt achten das keine 5V an den Drucksensor kommen.