ADC -> I2C oder SPI?

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben
Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Moin zusammen,

Bezieht jemand von euch seine Hardware (Peripherie) zufällig bei Reichelt und kann mit einen Guten ADC empfehlen, welcher auf mit I2C findet?
Hätte einen Favoriten, jedoch ist der bei Reichelt nicht auf dem Zettel und wenn, dann nur als Entwicklerboard.

oder würdet Ihr ADC eher auf SPI verlagern?

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Kommt drauf an: Wenn schnell, dann SPI. Wenn mehrere und Zeit, dann I2C, weil besser skalierbar.

Gib mal paar mehr Daten: Auflösung Bits, Eingangsbereich, bipolar oder unipolar, wieviele Kanäle, Versorgung 5V oder 3.3V, Samplerate....

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Timm Thaler hat geschrieben:
Fr 25. Dez 2020, 13:54
Kommt drauf an: Wenn schnell, dann SPI. Wenn mehrere und Zeit, dann I2C, weil besser skalierbar.

Gib mal paar mehr Daten: Auflösung Bits, Eingangsbereich, bipolar oder unipolar, wieviele Kanäle, Versorgung 5V oder 3.3V, Samplerate....
Eigentlich wollte ich eine allgemeine Antwort haben, aber da du fragst.

ich würde gerne einen in richtung ADS111x verwenden, da ich da 4 Analoge Signale abgreifen kann.
Hochgerechnet werde ich wohl aber auf ca 4 mal 4 kanäle kommen.

Spannungsmäsig habe ich vor mit 5VDC zu funkieren, und somit kommt nur ein Unibolarer Typ in Frage.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Ok, den ADS111x gibt es zwar wegen Arduino überall als Board zu kaufen, aber kaum als Chip. Ich hab jetzt 5 Stück von TI direkt als Muster bekommen. Aber beschissenes Gehäuse.

Es gibt halt derart viele ADC, da muss man schon etwas Vorauswahl treffen.

MCP3008 - billig und viele Kanäle, aber nur 10bit
MCP3204/08 - besser und preisgünstig
MCP3424 - hätte dann 18bit

Nachteil der billigen sigma-delta-Wandler ist halt, dass sie arschlahm sind. Aber wenn man nur Temperaturwerte messen oder eine Akkuladung überwachen will reicht das.

Optimieren kannst Du noch nach Gehäuse (DIL oder SMD). Die Finger lassen würde ich von Exoten wo man nicht weiß, ob man die in einem halben Jahr noch bekommt.

Bei TME hast Du zumindest schonmal mehr Auswahl und eine bessere Suche: https://www.tme.eu/de/katalog/a-d-wandl ... en_112877/

Hint: SPI läuft bei einigen auch als 3-wire, microwire oder serial Interface.

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Timm Thaler hat geschrieben:
Fr 25. Dez 2020, 19:21
MCP3008 - billig und viele Kanäle, aber nur 10bit
10 Bit reichen auch...
Timm Thaler hat geschrieben:
Fr 25. Dez 2020, 19:21
Nachteil der billigen sigma-delta-Wandler ist halt, dass sie arschlahm sind. Aber wenn man nur Temperaturwerte messen oder eine Akkuladung überwachen will reicht das.
Brauche nur einen Analogen Eingang Pro Kanal.
Bei Sigma-delta müsste noch mich wieder reinlesen und den CHx- wohl auf 0VDC legen.

Gott...
Merkt Mann Mal wieder, wie selten man sich damit beschäftigt, wenn das täglich 🍞 Beruflich in einer anderen Richtung liegt und 10 Jahre seit der Ausbildung Rum sind

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Delta-Sigma - sorry - ist das Wandlerverfahren. Es ist prinzipbedingt halt sehr langsam, aber preisgünstig aufzubauen für hohe Auflösung.

Mit dem MCP3204/08 solltest Du nicht allzu falsch liegen. Denk dran, dass Du für 4x4 Wandler an SPI auch 4 CS Pins brauchst oder einen Multiplexer. Bin mir nicht sicher, ob man die MCP kaskadieren kann.

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Erst Mal Liste schreiben, wieviel Kanäle ich direkt brauche, aber schon Mal danke für den Tip mit der Seite.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Was willst Du denn konkret messen?

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Timm Thaler hat geschrieben:
Sa 26. Dez 2020, 19:15
Was willst Du denn konkret messen?
Nichts Weltbewegendes. Nur 0 bis 100 Prozent.
Hätte der ATmega16 bzw 128 genügend ADC (Eingänge 12 bis 16) würde ich damit auskommen.

Vielleicht kann ich die reduzieren, indem ich 4 DIs als Multiplexer verwende.

1 DI würde dann 2AI auf einen reduzieren.

DIx = 0 AI1 Funktion a
DIx = 1 AI1 Funktion b

Somit sollten die ADC des AVR reichen, wenn ich Glück haben

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

MmVisual
Beiträge: 1466
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: ADC -> I2C oder SPI?

Beitrag von MmVisual »

Bei SPI kann der DMA die Daten direkt auslesen und man hat die dann einfach im RAM immer verfügbar.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

MmVisual hat geschrieben:
Sa 26. Dez 2020, 21:33
Bei SPI kann der DMA die Daten direkt auslesen und man hat die dann einfach im RAM immer verfügbar.
Der ATmega16 / 128 hat kein DMA.

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Maik81SE hat geschrieben:
Sa 26. Dez 2020, 19:50
Hätte der ATmega16 bzw 128 genügend ADC (Eingänge 12 bis 16) würde ich damit auskommen.

Vielleicht kann ich die reduzieren, indem ich 4 DIs als Multiplexer verwende.
DG408 (https://www.tme.eu/de/details/dg408dj-e ... er/vishay/) Achtung braucht 5V.
MAX4051 (https://www.tme.eu/de/details/max4051cs ... ntegrated/) Achtung nicht pinkombatibel.

Nicht viel billiger, aber viel einfacher anzusteuern, einfach 3 Pins, bzw. 5 Pins für 2 Stück mit EN.

(Sorry, ich bestell schon lange nicht mehr bei Reichelt, seit die ständig irgendwelche billigen 2nd source Teile verschickt haben.)

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: ADC -> I2C oder SPI?

Beitrag von Maik81SE »

Ja, das ist so ein kleiner aber feiner Harken,

Daher werde ich ab nächstes Jahr öfters über meine Firma bei RS bestellen lassen, sofern ich als Privatperson da nicht mehr bestellen kann.

Schaltkreise werden dann alle bei RS gekauft und der rest Reichelt.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ADC -> I2C oder SPI?

Beitrag von Mathias »

Ich verwende die ADS1115 die laufen super.
Und die 16Bit werden auch erreicht ohne Störungen.
Bei AliExpress bekommt man die Dinger unter 2€, wen da mal einer abraucht, geht nicht viel kaputt.
Wen es auf Geschwindigkeit ankommt, würde ich für eine 2-Kanalmessung 2 Platinen empfehlen.

Die Ansteuerung ist auch sehr einfach: https://wiki.freepascal.org/AVR_Embedde ... 2C,_TWI/de
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: ADC -> I2C oder SPI?

Beitrag von Timm Thaler »

Mathias hat geschrieben:
So 27. Dez 2020, 13:30
Ich verwende die ADS1115 die laufen super....
Bei AliExpress bekommt man die Dinger unter 2€, wen da mal einer abraucht, geht nicht viel kaputt.
Ja aber nur auf fertigem Board. Als Einzelchips zum Auflöten auf die eigene Platine eher nicht.

Antworten