Forum: Mikrocontroller und Digitale Elektronik ADS1115 auslesen Assembler


von Bernhard S. (bernhard)


Lesenswert?

Geschätztes Forum,

ein DS1115 (16bit ADC) möchte ich auslesen.

Komme mit dem Datenblatt nicht klar.

1. TRANSMITTER_START          (TWI Adesse 0x48)
2. senden 0b00000000          (Conversion register)

3. RECEIVER_START              (TWI Adesse 0x48)
4. MASTER_RECEIVER_BYTE
5. Byte0 auslesen und anzeigen (Anzeige 0x7F)

6. MASTER_RECEIVER_BYTE
7. Byte1 auslesen und anzeigen (Anzeige 0xFF)

8. MASTER_RECEIVER_BYTE
9. Byte2 auslesen und anzeigen (Anzeige 0xFF)

4. MASTER_RECEIVER__LAST_BYTE
5. Byte3 auslesen und anzeigen (Anzeige 0xFF)

Der TWI-BUS scheint felerfrei zu funktionieren,
doch es kommen keine ADC-Daten, was mache ich falsch ?

Danke

Bernhard

von Sebastian R. (sebastian_r569)


Lesenswert?

Wie immer: Es ist ein Fehler in Zeile 42!

Hast du den Mux konfiguriert?
Hast du die PGA-Stufe konfiguriert?
Hast Single Shot oder Continous Mode ausgewählt?
Kriegst du ein ACK auf dem Bus?
Klappt das Auslesen der Status-Register?
Hast du mit einem Oszilloskop auf den Bus geschaut oder vermutest du 
nur?

von Harald K. (kirnbichler)


Lesenswert?

Bernhard S. schrieb:
> Der TWI-BUS scheint felerfrei zu funktionieren,

Scheint. Kannst Du mit irgendwelchen anderen I2C-Bausteinen 
kommunizieren? Oder hast Du Dir das ganze mit einem Oszilloskop 
angesehen?

Ist Deine Hardware korrekt aufgebaut? (I2C braucht Pullups an beiden 
Leitungen, manch einer vergisst die).


Und was hat das mit Assembler zu tun?

von Bernhard S. (bernhard)


Lesenswert?

Harald K. schrieb:
> Ist Deine Hardware korrekt aufgebaut? (I2C braucht Pullups an beiden
> Leitungen, manch einer vergisst die).

Der Slaves wird korrekt erkannt und antwortet auch, hab die internen 
Pullups verwendet, bei einer niedrigen Taktrate).

Scheint kein Harwarefehler zu sein........

von Sebastian R. (sebastian_r569)


Lesenswert?

Bernhard S. schrieb:
> Scheint kein Harwarefehler zu sein........

Was hast du angeschlossen und wie hast du es angeschlossen? Vielleicht 
ist das Ergebnis ja sogar korrekt...

von Paul B. (paule201)


Lesenswert?

Für ca. 10 Euro bekommt man einen Logic Analyzer. Es muss kein Oszi sein 
für den I²C Basis Kram. Tu dir heute schon den Gefallen für morgen und 
bestell einen. Unendlich nützlich auch für SPI, CAN, OneWire, 
adressierbare LED, UART etc.

Dann SIEHST du was passiert und musst es nicht mehr erahnen. Fällt unter 
Werkzeug. Einen Nagel schlägst du ja auch nicht mit der Hand ein.

https://www.amazon.de/Heevhas-Analyzer-Device-Mini-USB-Kabel-Testhaken/dp/B0D8Q886W9

von Falk B. (falk)


Lesenswert?

Bernhard S. schrieb:
>> Ist Deine Hardware korrekt aufgebaut? (I2C braucht Pullups an beiden
>> Leitungen, manch einer vergisst die).
>
> Der Slaves wird korrekt erkannt und antwortet auch, hab die internen
> Pullups verwendet, bei einer niedrigen Taktrate).

Falsch! Die internen Pull Ups liegen meist im ZWEISTELLIGEN kOhm 
Bereich! Mach da 2x 4k7 dran und teste nochmal!

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Bernhard S. schrieb:
> hab die internen Pullups verwendet,

schlecht. Nimm 2,2k Ohm

von Bernhard S. (bernhard)


Lesenswert?

Nun sind 1k Widerstände an SCL und SDA,

das Anzeigeergebnis blieb vorerst gleich,

konnte aber mit einer wesentlich höheren Taktrate arbeiten

und plötzlich änderten sich die ausgelesenen Bytes.

Kann es sein, das mit einer relatv hohen Taktrate gearbeitet werde muss 
?

Eine zu niedrige Taktrate ---> Fehler ???

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bernhard S. schrieb:
> Kann es sein, das mit einer relatv hohen Taktrate gearbeitet werde muss
> ?

Was hast DU bezüglich dieses Themas im Original-Datenblatt des 
Bausteins gelesen? Ich habe übrigens erst vor wenigen Tagen diesen 
Baustein verwendet und habe selbstverständlich auch das Datenblatt 
gelesen. Somit könnte ich diese Frage auch unmittelbar beantworten, 
aber damit würde ich ja nur belohnen, dass Leute wie Du zu faul sind, 
mal die Primärliteratur zu Rate zu ziehen.

Welche Kommandos hast Du ganz konkret für die Initialisierung des 
ADS1115 geschickt? Und woher hast Du diese konkreten Informationen?

von Bernhard S. (bernhard)


Lesenswert?

> Was hast DU bezüglich dieses Themas im Original-Datenblatt des
> Bausteins gelesen?

lt. Datenblatt
      SCL 0,01...3,4 MHz


> Welche Kommandos hast Du ganz konkret für die Initialisierung des
> ADS1115 geschickt?

Ich sende keinerlei Initialisierung, vielleicht ist das der Fehler ?

von Wastl (hartundweichware)


Lesenswert?

Bernhard S. schrieb:
> Ich sende keinerlei Initialisierung, vielleicht ist das der Fehler ?

Nö, Initialisieren ist nur unnützes Zeugs für Warmduscher.

von Sebastian R. (sebastian_r569)


Lesenswert?

Bernhard S. schrieb:
> Ich sende keinerlei Initialisierung, vielleicht ist das der Fehler ?

Wie gesagt:

Sebastian R. schrieb:
> Hast du den Mux konfiguriert?
> Hast du die PGA-Stufe konfiguriert?
> Hast Single Shot oder Continous Mode ausgewählt?

Der ADC macht von allein einfach so keine Messungen, du musst vorher 
einiges einstellen. Was hat dich zur Annahme verleitet, eine 
Initialisierung sei nicht notwendig?!

: Bearbeitet durch User
von Bernhard S. (bernhard)


Lesenswert?

Sebastian R. schrieb:
> Der ADC macht von allein einfach so keine Messungen, du musst vorher
> einiges einstellen

Danke Sebastian für die Tipps, werde eine Initialisierung vornehmen.

Die Config Register kann ich erfolgreich lesen und schreiben :-)

von Harald K. (kirnbichler)


Lesenswert?

Paul B. schrieb:
> Es muss kein Oszi sein
> für den I²C Basis Kram.

Naja, um zu sehen, wie die Signalflanken aussehen, ist ein Oszilloskop 
schon ganz gut - und das ist ein Thema, wenn die Pullups nicht passen.

Ein LA kann so etwas nicht anzeigen (jedenfalls nicht ein Simpel-LA wie 
die Nachbauten der ersten Saleae-Geräte). Und ein LA hat recht sicher 
andere Schaltschwellen, ab der er Signale definiert als Low oder High 
erkennt als die I2C-Eingangsstufe des ungenannten µC des Threadstarters.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Paul B. schrieb:
> Für ca. 10 Euro bekommt man einen Logic Analyzer. Es muss kein Oszi sein
> für den I²C Basis Kram.

Ganz im Gegenteil kann man sich heutzutage eher den LA sparen als ein 
Oszilloskop, denn ein einfacher LA lässt kaum Rückschlüsse auf die 
Signalintegrität (Flankensteilheit, saubere Signalpegel) zu. 
Insbesondere sieht man auch nicht, wann ein Bus freigegeben wird und 
ggf. der Signalpegel wegdriftet bzw. einen nichtbinären Ruhepegel 
einnimmt (z.B. EIA-485).

Halbwegs aktuellen Oszilloskope können zudem auch einfache Protokolle 
wie z.B. I2C, SPI, usw. (auch) auf den Analogkanälen dekodieren.

von Rainer W. (rawi)


Lesenswert?

Andreas S. schrieb:
> Ganz im Gegenteil kann man sich heutzutage eher den LA sparen als ein
> Oszilloskop

Besser ein LA für 10€ auf dem Tisch, als ein Oszi im Online Shop.

von Paul B. (paule201)


Lesenswert?

Harald K. schrieb:
> Naja, um zu sehen, wie die Signalflanken aussehen, ist ein Oszilloskop
> schon ganz gut - und das ist ein Thema, wenn die Pullups nicht passen.

Ja, wenn man die Signalqualität untersuchen will braucht man das Oszi. 
Der TE schrieb ja das er Antworten bekommt, daher sah ich das Problem 
eher in der Software und dabei hilft der LA (oder auch ein Oszi mit 
Decoder) ungemein. Aber das Oszi bestellt sich eben nicht ganz so leicht 
wie ein 10€ LA ;).

Andreas S. schrieb:
> Ganz im Gegenteil kann man sich heutzutage eher den LA sparen als ein
> Oszilloskop

Wenn du mal größere Datenströme verarbeitest ist das am Oszi einfach nur 
nervig. Wir haben auf Arbeit ein 20K€ R&S, ein super Gerät, aber 
dekorieren von Bussystemen erfolgt bei uns ausschließlich über PC + LA. 
Keiner hat Bock 100 Umdrehungen am Encoder Rad zu drehen oder sich mit 
dem Touchscreen und den Zoomtasten bis zu der interessanten Stelle zu 
quälen.

Es hat beides seine Berechtigung für den jeweilgen Zweck. Ich hab auch 
jahrelang per Oszi decodiert, würde ich heute nicht mehr machen und ich 
ärgere mich die 10€ nicht schon vor 5 Jahren investiert zu haben. Ich 
war bis dahin auch von der technischen Überlegenheit des Oszis überzeugt 
und hab den billigen LA "belächelt". Heute kommt das Oszi fast nur noch 
zum Einsatz wenn das Signal völlig unbekannt ist oder eben wie hier die 
Signalqualität ermittelt/geprüft werden muss.

Aber es ist ja zum Glück jeden frei in der Wahl seiner Arbeitsmittel ;).

von Ralf X. (ralf0815)


Lesenswert?

Paul B. schrieb:
> Es hat beides seine Berechtigung für den jeweilgen Zweck. Ich hab auch
> jahrelang per Oszi decodiert, würde ich heute nicht mehr machen und ich
> ärgere mich die 10€ nicht schon vor 5 Jahren investiert zu haben. Ich
> war bis dahin auch von der technischen Überlegenheit des Oszis überzeugt
> und hab den billigen LA "belächelt". Heute kommt das Oszi fast nur noch
> zum Einsatz wenn das Signal völlig unbekannt ist oder eben wie hier die
> Signalqualität ermittelt/geprüft werden muss.

Mir geht es ähnlich, aber quasi von Amazon dazu "gezwungen". :-)
Vor einigen Jahren gab es hier einige Diskussionen zu den pico USB Oszis 
und immer wieder auch das Hantek 6022be als Alternative.
Da habe ich mehrfach die Angebote/Daten bei Amazon nachgesehen und 
plötzlich wurde mir ein 6022bl (also mit 16-Kanal LA) für lächerliche 
33,-€ offeriert.
Direkt nach meinem Kauf schnellte der Preis auf 93,-€ hoch und ich nahm 
an, dass man sich auf Irrtum berufen würde.
Aber nix da, 3 Tage später kam das Paket.

In der SW kann ich jederzeit zwischen LA- und Oszibetrieb umschalten und 
alle Teile passen mit in die Laptoptasche.
Wenn die 20 Mhz und relativ primitive SW reichen, ein liebenswerter 
Begleiter.

von Bernhard S. (bernhard)


Lesenswert?

Problem:

Die beiden Config Register kann ich auslesen.

Nach dem Einschalten werden die korrekten Default-Werte des

Config Registers 8583h angezeigt.

Anschließend setze ich das MODE-Bit auf 1,

lese das Conversion Register (2Bytes) aus,

erhalte aber nur als Egebnis 0000h,

als würde der ADC nicht arbeiten.

Was mache ich falsch ?

von Helmut -. (dc3yc)


Lesenswert?

Wenn du das nicht aus dem Datenblatt auf die Reihe bekommst, dann schaue 
dir doch mal den Treiber mit Beispielen von Adafruit für Arduino an. Ist 
zwar in Englisch und in C, aber das wirst schon noch nach Assembler und 
Deutsch übersetzen können.
https://github.com/adafruit/Adafruit_ADS1X15

von Christoph db1uq K. (christoph_kessler)


Lesenswert?


von Bernhard S. (bernhard)


Lesenswert?

ADS1115 initialisieren :
TWI-Transmitter-Start  (Adresse 0x48)
write 01h              (Config Register)
Mode-Bit =1            (Bit setzen, alle anderen Bits wie Default)
Config Register write  (MSB)
Config Register write  (LSB)

ADS115 ADC auslesen :
TWI-Transmitter-Start  (Adresse 0x48)
write 00h              (Conversion Register)

TWI-Reciver-Start      (Adresse 0x48)
Read Byte0             (ADC-Ergebnis)
Read Byte1             (ADC-Ergebnis)

Ergebnis: 0000h

Mit diesem Verfahren versuche ich die ADC-Werte auszulesen,
erfolglos ,
was mache ich falsch ?

: Bearbeitet durch User
von Paul B. (paule201)


Lesenswert?

Bernhard S. schrieb:
> was mache ich falsch ?

Du startest die Wandlung nicht. Starte die Wandlung, dann lies zurück.

von Bernhard S. (bernhard)


Lesenswert?

Paul B. schrieb:
> Du startest die Wandlung nicht. Starte die Wandlung, dann lies zurück.

Wie starte ich die Wandlung ?

von Paul B. (paule201)


Lesenswert?

Bernhard S. schrieb:
> Paul B. schrieb:
>> Du startest die Wandlung nicht. Starte die Wandlung, dann lies zurück.
>
> Wie starte ich die Wandlung ?

In dem du das Mode Bit auf 1 setzt.

Sollte das, wie in deinem Fall, nicht klappen, dann nimmt man sich den 
oben erwähnten 10€ LA und schaut nach was man wirklich sendet statt ohne 
den Quellcode zu zeigen zu fragen was man falsch macht...

Deine Hardware scheint zu stehen, lad den Quellcode hoch und hoffe das 
es hier noch paar Assembler Freaks gibt oder frag ChatGPT was mit deinem 
Quellcode nicht stimmt. Woher sollen wir denn wissen was du sendest, 
wenn du uns nur sagst was du denkst was du sendest und es nicht zeigst?

von Andrea B. (stromteam)


Lesenswert?

Was soll der ADS1115 machen, welcher Kanal, welche Auflösung? Das muss 
ihm mitgeteilt werden.
siehe
https://cicciocb.com/annexhelp/V1.423/
unter ADS1115

Die von Christoph vorgeschlagene sehr gute Anleitung
https://wolles-elektronikkiste.de/ads1115
ist ja scheinbar nichts für dich

Der ADS1115 ist auch in der Forumsbibliothek nicht unbekannt

: Bearbeitet durch User
von Achim H. (pluto25)


Lesenswert?

Bernhard S. schrieb:
> Wie starte ich die Wandlung ?

Durch ansprechen.
In der einfachsten Form
start
send $9e  (Schreibadresse)
start
send $9f  (Leseadresse)
read byte (evt zweites lesen, falls benötigt)
stop
Damit arbeitet er mit den Default Werten. Nun wird die Konversationszeit 
nicht gewartet so das er den letzten Wert ausgibt. Heißt das erste byte 
(Word) ist ungültig, da er beim ersten Ansprechen erst beginnt zu 
konvertieren.
Wird ein einzelner Wert benötigt muss vor dem zweiten Start die 
Konversationszeit (37?ms) gewartet werden.

von Sebastian R. (sebastian_r569)


Lesenswert?

Bernhard S. schrieb:
> was mache ich falsch ?

Wie hast du denn das PGA und den MUX eingestellt?

Achim H. schrieb:
> Wird ein einzelner Wert benötigt muss vor dem zweiten Start die
> Konversationszeit (37?ms) gewartet werden.

Man kann auch das "Wandlung ist fertig"-Statusbit nutzen und nicht 
hoffen, dass 37ms stimmen.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Achim H. schrieb:
> Durch ansprechen.
> In der einfachsten Form
> start
> send $9e  (Schreibadresse)
> start
> send $9f  (Leseadresse)

Der ADS1115 kann lt. Table 7-2. im Datenblatt je nach Beschaltung auf 
einer der I2C Target Adressen 0x48 ... 0x4B liegen.
Dein $9e bzw $9f ist sicher etwas anderes, als die I2C-Adresse. Die 
besitzt lt. I2C-Spezifikation 7 Bit (3.1.10 The target address and R/W 
bit "This address is seven bits long ...").
https://www.nxp.com/docs/en/user-guide/UM10204.pdf

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer W. schrieb:
> Achim H. schrieb:
>> Durch ansprechen.
>> In der einfachsten Form
>> start
>> send $9e  (Schreibadresse)
>> start
>> send $9f  (Leseadresse)
>
> Der ADS1115 kann lt. Table 7-2. im Datenblatt je nach Beschaltung auf
> einer der I2C Target Adressen 0x48 ... 0x4B liegen.

Richtig.

> Dein $9e bzw $9f ist sicher etwas anderes, als die I2C-Adresse.

Auch richtig.

> Die
> besitzt lt. I2C-Spezifikation 7 Bit (3.1.10 The target address and R/W
> bit "This address is seven bits long ...").

Naja, das ist dann reine Prinzipienreiterei. Aus vielen Gründen ist es 
sinnvoll, im Code die eigentliche I2C-Adresse und das R/W-Bit 
zusammenzufassen. Bleibt dann eigentlich nur die Streitfrage, wie man 
diese zusammengefasste Sache nennt. Sie ebenfalls als "I2C-Adresse" 
aufzufassen ist recht üblich, wenn auch im Sinne der Specs formal 
falsch.

Der springende Punkt ist hier aber eigentlich: auch die 
"zusamengefassten I2C-Adressen" 0x9e/0x9f können unmöglich gültige 
I2C-Adressen für einen ADS1115 enthalten. Weil 0x9e/0x9f durch zwei 
einfach mal 0x4f ergibt, was eindeutig außerhalb des für den ADS1115 
möglichen Bereichs von 0x48..0x4b liegt.

von Achim H. (pluto25)


Lesenswert?

Interessant, da frag ich mich was die mir als 'ADS1115' verkauft haben? 
Ein Echter geht nach Datenblatt wirklich nur bis $96/7. Dem sollte auch 
mitgeteilt werden ob er kontinuierlich oder Einzeln misst. Per Default 
ist er auf 'Single-shot' und würde mit meiner Methode wohl nichts (keine 
Messwerte) ausgeben?

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Achim H. schrieb:

> Interessant, da frag ich mich was die mir als 'ADS1115' verkauft haben?

Zeig ein Bild. Hinz wird dir zumindest explizit sagen können, dass es 
ein Fake ist.

Möglicherweise sogar, welcher ADC da zum ADS1115 umgelabelt wurde. Ich 
kann das nicht, jedenfalls nicht ohne aufwendige Recherche. Zumal 
durchaus ein mehrdeutiger Ausgang der Recherche möglich wäre. Trotz der 
bekannten I2C-Adresse des Fakes...

von Rainer W. (rawi)


Lesenswert?

Ob S. schrieb:
> Bleibt dann eigentlich nur die Streitfrage, wie man
> diese zusammengefasste Sache nennt.

Im Zweifelsfall ist es das erste übertragene Byte oder das 
Adressierungsbyte. Es ist jedenfalls keine Lösung, einen Begriff, der in 
der I2C-Spezifikation genau festgelegt ist, im gleichen Kontext noch für 
etwas anderes zu verwenden.
Bei dir hast du doch auch nicht zwei verschiedene Hausnummer an der Tür 
stehen, eine fürs Reingehen und eine andere fürs Rausgehen ;-)

von Helmut -. (dc3yc)


Lesenswert?

Rainer W. schrieb:
> Bei dir hast du doch auch nicht zwei verschiedene Hausnummer an der Tür
> stehen, eine fürs Reingehen und eine andere fürs Rausgehen ;-)

Doch, bei mir könnte ich zur Nummer 5 hereingehen und zur Nummer 7 
heraus.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer W. schrieb:

> Im Zweifelsfall ist es das erste übertragene Byte oder das
> Adressierungsbyte.

Aha. "I2C-Adressierungsbyte" ist ja so viel besser als "I2C-Adresse"...

Aber OK. Für Formalismus-Fetischisten ist sowas natürlich überaus 
wichtig, weit wichtiger als die Sache selber. Es sei dir also gegönnt, 
diesen Begriff zu verwenden.

Alle anderen verstehen natürlich, dass eine offensichtlich (schon durch 
den Kontext der Unterscheidung für Lese- und Schreibzugriffe) 
"I2C-Adresse" natürlich in deiner Nomenklatur "I2C-Adressierungsbyte" 
genannt werden will.

von Bernhard S. (bernhard)


Lesenswert?

Es funktioniert !

Wolfgang, Verfasser folgender Internetseite:

https://wolles-elektronikkiste.de/ads1115

gab mir wertvolle Hinweise.

Welcher Fehler lag vor ?

AIN0 und AIN1 muss beschaltet sein,
es wird eine Differenzmessung beider Pins durchgeführt,
ich hatte alle Eingänge AIN0...AIn3 auf eine Potential gelegt,
somit entstand keine Differenz und der ADC meldete 0000h.

Bei Gelegenheit werde ich dieses kleine Projekt für einen ATmega8 und 
Assembler ASM für Euch veröffentlichen.

Danke nochmals ^^

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Bernhard S. schrieb:

> Welcher Fehler lag vor ?
>
> AIN0 und AIN1 muss beschaltet sein,
> es wird eine Differenzmessung beider Pins durchgeführt,

Und das stand nicht im DB des ADS1115? Kaum vorstellbar...

von Sebastian R. (sebastian_r569)


Lesenswert?

Bernhard S. schrieb:
> es wird eine Differenzmessung beider Pins durchgeführt,
> ich hatte alle Eingänge AIN0...AIn3 auf eine Potential gelegt,

Gut, dass wir meine Nachfrage nach drei Tagen dann mal klären konnten...

Sebastian R. schrieb:
> Was hast du angeschlossen und wie hast du es angeschlossen? Vielleicht
> ist das Ergebnis ja sogar korrekt...

von Helmut -. (dc3yc)


Lesenswert?

Bernhard S. schrieb:
> AIN0 und AIN1 muss beschaltet sein,
> es wird eine Differenzmessung beider Pins durchgeführt,
> ich hatte alle Eingänge AIN0...AIn3 auf eine Potential gelegt,
> somit entstand keine Differenz und der ADC meldete 0000h.

Ja und, du hast sie doch beschaltet, indem du sie verbunden hast. Und 
wenn du eine Differenzmessung parametrierst, muss auch die 
Eingangsspannung unterschiedlich sein, wenn du was sehen willst. Das 
gleiche Ergebnis würdest du auch bei einer Singe-Input-Messung bekommen, 
wenn du keine Spannung anlegst.
Und ob wegen sieben Zeilen in C ein Projekt nötig ist, ist auch 
fraglich. Ok, du programmierst ja in Assembler, da sind es ein paar 
Zeilen mehr. Man kann sich seine Lebenszeit auch unnütz verkleinern.

von Bernhard S. (bernhard)


Lesenswert?

Hab das kleine Assembler-Projekt mal veröffentlicht:

Beitrag "ADS1115 Initialisierung ADC auslesen ATmega8 Assembler ASM"

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
Noch kein Account? Hier anmelden.