mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anschliessen eines Höhensensors an uC


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mir folgenden Höhensensor(Barometer) gekauft:
http://www.intersema.ch/site/technical/files/ms5534b.pdf

Nur leider ist mir jetzt etwas beim Anschliessen dieses Sensors an 
meinen ATmega8 nicht ganz klar. Auf Seite 15 des datasheets ist es 
eigentlich gut beschrieben wie man das macht. Was ich da aber nicht ganz 
verstehe ist wie ich dieses Modul über meinen uC takten soll. Es heisst 
ja man braucht einen 32.786kHz Quarz, nur ich verwende aber für meinen 
uC einen 4Mhz Quarz, der andere wäre doch ein bisschen zu langsam. Meine 
frage ist nun ob es eventuell eine Möglichkeit gibt meine 4Mhz auf 
32.786 zu prescalen und dann auf den Sensor geben kann? Oder was ist 
eigentlich ein Takt vom Signal her betrachtet, sind das immer Pulse 
zwischen 0 und 5 Volt. Wenn das so wäre könnte ich da eventuell auch ein 
PWM Ausgang verwenden? Oder soll ich einfach einen zweiten Quarz mit 
32.786kHz noch auf meine Schaltung basteln?
Andere Vorschläge oder Lösungen? Besten Dank.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven wrote:
> verstehe ist wie ich dieses Modul über meinen uC takten soll. Es heisst
> ja man braucht einen 32.786kHz Quarz,

*) Von einem Quarz ist im Zusammenhang mit dem Sensor überhaupt
   nicht die Rede. Der SOnsor möchte einen Masterclock
*) Laut Tabelle auf Seite 3, kann sich dieser Masterclock im
   Bereich von 30 bis 35 kHz bewegen.

Ich würde ganz einfach mit einem Timer vom µC einen Takt in dieser
Größenordnung an einem Pin erzeugen und mit diesem Takt den
Sensor versorgen.

> nur ich verwende aber für meinen
> uC einen 4Mhz Quarz, der andere wäre doch ein bisschen zu langsam. Meine
> frage ist nun ob es eventuell eine Möglichkeit gibt meine 4Mhz auf
> 32.786 zu prescalen und dann auf den Sensor geben kann?

Sicher kann man das.

> Oder was ist
> eigentlich ein Takt vom Signal her betrachtet, sind das immer Pulse
> zwischen 0 und 5 Volt.

Ganz genau.

> Wenn das so wäre könnte ich da eventuell auch ein
> PWM Ausgang verwenden?

PWM ist overkill. Du willst doch nicht das Puls Pause Verhältnis
regeln. Alels was du brauchst ist eine Sequenz 0-1-0-1-0 die
ca 32Khz hat.

> Oder soll ich einfach einen zweiten Quarz mit
> 32.786kHz noch auf meine Schaltung basteln?

Wenn du Pins am Prozessor frei hast und das ganze in einen Timer
unterbringst, gibt es keinen Grund dazu.

Autor: Stephan Plaschke (steph0815)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seh ich genauso wie Karl Heinz. Es gibt wirklich keinen Grund für PWM. 
Für den Sensor brauchst du den 16bit Timer in 2 compare modes.
Den einen Timercompare brauchst du für den Masterclock. Dafür stellst du 
den Vorteiler für den Timer auf 1, compare auf 61 und toggelst dann den 
Pin. Somit erhälst du einen Masterclock der genau im gewünschten Bereich 
liegt.
Das gleich machst du dann noch mal mit einen anderen Timer Compare 
Register um die den SCLK bereitzustellen. Da musst nur schauen wie du 
die Registerwerte anpasst. Maximal hast du da ja 500kHz welches du aber 
mit 4Mhz nicht erreichen wirst.

Viel Erfolg
Stephan

@edit
Der Sensor ist echt interessant. Wo hast du den her und was kostet das 
gute Stück?? Würd mich auch dafür begeistern können.

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke vielmal für die Antworten! werde es dann mal gleich so versuchen.
den sensor habe ich von intersema.ch .wirklich toll das ding und vor 
allem ist alles super dokumentiert!!! der sensor kostet ungefähr 20Euro 
aber am besten schaust du gleich bei intersema.ch selber vorbei.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Sclk gehört zum SPI interface und wird NICHT über einen Timer per 
Hand generiert, es sei denn es verwendet jemand eine Software SPI.

Oder hat der ATmega kein SPI ??

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> PWM ist overkill. Du willst doch nicht das Puls Pause Verhältnis
> regeln. Alels was du brauchst ist eine Sequenz 0-1-0-1-0 die
> ca 32Khz hat.

wie lange muss (darf) denn die 1 anliegen, damit die 1 als Impuls 
erkannt wird und somit ein Takt erzeugt wird?

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.