CLK, SCK, SCL alles die Gleichen?

Hallo,

ich habe vor die Tage ein Projekt mit SD-Karte, Luftdrucksensor und RTC aufzubauen.

An der RTC habe ich einen CLK Pin.
Am SD-Modul habe ich einen SCK Pin.
Und am Drucksensor ist ein SCL Pin.

Sind diese alle für das Clocksignal und können parallel an einen Pin?
Ist das 13 beim UNO?
Muss der Drucksensor (BPM180) unbedingt an A5 (Clock)?

Danke für die Hilfe :slight_smile:

Nein! Das sind zwar alles Clock Signale. Aber die RTC läuft über I2C und das SD-Modul über SPI. Der Drucksensor ist wahrscheinlich auch I2C.

Schau beim SD-Modul auch nach ob das mit 5V läuft. Da gibt es nämlich welche die nur mit 3,3V laufen und dann erst mal einen Pegelwandler brauchen. Wobei da Spannungsteiler oft ausreichen.

Was hast du denn da für eine RTC, die an SPI läuft? Ich kenne zwar einige, bzw hab auch einige DS3234 usw., aber das sind hier eher die Exoten. Hab die als Sample bekommen, sind scheinbar auch einiges teurer als die I2C Variante.

Besorg dir am besten eine DS3231. Die kannst du mit I2C ebenfalls ansteuern. Vorteil bei I2C (A4/A5) ist, dass weniger Pins gebraucht werden. Alle Geräte können an einem Bus betrieben werden. Eventuell an PullUp Widerstände denken, falls die Module ohne kommen. Des weiteren beachten, was Serenfly geschrieben hat. Die DS3231 arbeitet sowohl mit 5V als auch 3V3. Jedoch kann ich das gerade nicht über den Drucksensor sagen.

SPI kann deutlich schneller sein als I2C. I2C ist meist bei 400kHz Schluss, SPI geht locker bis 10MHz. Jedoch müssen der MCU als auch die externen ICs das abkönnen. Bei SPI ist aber das Problem, das jedes Gerät seinen eigenen ChipSelect braucht. (frei wählbarer Pin)

Stimmt. Es ist schon eher üblich, dass die Platinen auch mit "SCL" beschriftet sind. Hier sollte man mal auf den Chip schauen was da drauf ist.

Wobei wenn es SPI wäre, hat man auch mehr als einen Datenpin (MOSI + MISO, wobei es auch da andere Namen gibt, z.B. DIN/DOUT, SDI/SDO). Außerdem noch einen Slave Select/Chip Select Pin. Bei I2C gibt es nur Clock und einen Datenpin. Daran sollte man es auch erkennen.

Zu den Modulen:
Das SD Modul kann sowohl mit 3,3 als auch mit 5V betrieben werden und ist wie folgt angschlossen:
GND - GND
MISO - 12
SCK - 13
MOSI - 11
CS - 4
+5 - 5V
Funktionierte so auch gut am UNO, allerdings nicht an einem Pro Mini Clone.

Der Drucksensor läuft nur auf 3,3V und funktioniert gut, wenn ich ihn so anschließe:
VIN - 3,3V
GND - GND
SCL - A5
SDA - A4

Der Luftfeuchtigkeitssensor ist ein DHT11 mit GND, OUT und VDD Pin.

Die RTC ist eine DS1302 mit VCC, GND, CLK, DAT und RST Pin.

RTC und Luftfeuchtigkeitssensor sind allerdings noch nicht da...

Nein! Das sind zwar alles Clock Signale. Aber die RTC läuft über I2C und das SD-Modul über SPI. Der Drucksensor ist wahrscheinlich auch I2C.

Heißt das ich kann die RTC und den Drucksensor beide an A5 anschließen?

Gebe bitte Links zu deinen Modulen. SD Kartenmodul sollte klar sein. Vermutlich eine Spannungsteiler für 5V Kompatibilität.

Wenn der Drucksensor ohne Zusatzschaltung angeschlossen wird, geht der hops! Die SDA/SCL Pegel dürfen 3V6 nicht überschreiten.

RTC und Drucksensor können beide an A4/A5. Aber Pegel beachten. Am besten direkt einen bidirektionalen Pegelwandler an A4/A5 anschließen, da beide I2C Geräte mit 3V3 klar kommen.

Deine RTC geht aber nur am SPI Bus, nicht A4/A5. Wie bereits beschrieben, hole dir besser direkt die ds3231 und nicht ds1307/05

Heißt das ich kann die RTC und den Drucksensor beide an A5 anschließen?

Nein. Da hatte ich mich geirrt (weil die meisten RTCs I2C sind). Sorry. :frowning:

Es ist nicht I2C. Aber SPI ist es auch nicht (da liegt sschultewolter diesmal falsch) . Sondern ein eigenes 3-Wire Protokoll mit einer gemeinsamen Datenleitung für beide Richtungen (SPI hätte hier zwei Leitungen):
http://www.maximintegrated.com/en/products/digital/real-time-clocks/DS1302.html

Braucht also extra nochmal 3 Pins (die aber beliebig sein können). Wie gesagt, bist du mit einer moderneren I2C RTC besser beraten.

Es gibt aber Arduino Code und Libs dafür:
http://playground.arduino.cc/Main/DS1302

Bei dem Sensor kommt es auf das genaue Modul an! Der Chip an sich macht nur 3,3V, aber es gibt auch Module die einen Spannungswandler und Pegelwandler auf dem Board haben:

Gebe bitte Links zu deinen Modulen. SD Kartenmodul sollte klar sein. Vermutlich eine Spannungsteiler für 5V Kompatibilität.

Druck: http://www.ebay.de/itm/390965174153
Luftfeuchtigkeit: http://www.ebay.de/itm/331372092811
RTC: http://www.ebay.de/itm/181543096126
SD: http://www.ebay.de/itm/390836887302

Wenn der Drucksensor ohne Zusatzschaltung angeschlossen wird, geht der hops! Die SDA/SCL Pegel dürfen 3V6 nicht überschreiten. RTC und Drucksensor können beide an A4/A5. Aber Pegel beachten. Am besten direkt einen bidirektionalen Pegelwandler an A4/A5 anschließen, da beide I2C Geräte mit 3V3 klar kommen.

Also muss ein Pegelwandler zwischen SDA, SCL und A5, A4?
Kann ich auch einen Widerstand zwischen Drucksensor und A5, A4 setzen (mir fehlt es gerade an einem Pegelwandler)?
Beide Module kommen dann noch an 3,3V und GND?

Deine RTC geht aber nur am SPI Bus, nicht A4/A5. Wie bereits beschrieben, hole dir besser direkt die ds3231 und nicht ds1307/05

Okay, also doch nicht A5, A4. Am SPI ist ja schon die SD Karte. Wie mache ich das dann mit der RTC?

Braucht also extra nochmal 3 Pins (die aber beliebig sein können). Wie gesagt, bist du mit einer moderneren I2C RTC besser beraten.

Gut, an Pins magelt es mir (noch) nicht. :smiley:
Kann ich die Pins dann im Sketch einfach beliebig ändern?

Plan, so wie ich es mir bisher dachte im Anahang.

PlanBisher.png

Es steht doch alles dabei, auch wenn es ebay-typisch spärlich ist.

Den Luftdruck Sensor läuft nur mit 3,3V.

Versorgungsspannung: 1.8V~3.6V(VDDA), 1.62V~3.6V(VDDD)

Kann ich auch einen Widerstand zwischen Drucksensor und A5, A4 setzen (mir fehlt es gerade an einem Pegelwandler)?

I2C an 3,3V ist hier erklärt:
http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

Wichtig sind die extra Pullups auf 3,3V. Die sind bei dir schon auf der Platine drauf. Laut dem kann man einen 3,3V Device dann sogar so anschließen, aber es ist sehr grenzwertig was das Erkennen des High Pegels betrifft.

Fertige Pegelwandler auf Transistorbasis gibt es hier:

Ein Pegelwandler hat auch den Vorteil, dass du dann deinen Luftdruck Sensor mit 5V betreiben kannst und beides am gleichen Pegel hängt. Auch wenn 5V und 3,3V Devices an einem Bus laut der Seite auch geradeso geht. Ist generell sauberer.

Bei der RTC hättest du die wie gesagt eine DS3132 nehmen sollen. Wesentlich genauer und ein I2C Interface.

Das SD Modul hat laut Beschreibung 5V tolerante Eingänge. Das ist gut.

Am SPI ist ja schon die SD Karte. Wie mache ich das dann mit der RTC?

SPI ist wie I2C ein Bus. Da kann man auch mehrere Geräte anschließen. Jede dann mit einem eigenen CS/SS Pin.

ABER:
Deine RTC ist nicht SPI. Funktioniert ähnlich, aber kann nicht an den SPI Bus da nur ein einziger bidirektionaler Datenpin da ist (statt zwei getrennte wie bei SPI).