Kaufberatung µC mit I²C

Gast #2200967
Lesenswert?

Hallo,

ich habe einen I2C-Temperatursensor, und möchte dessen Signal mit einer 
einfachen Schaltung nachbilden, um verschiedene Temperaturen simulieren 
zu können. In der eingesetzten Schaltung ist es allerdings unpraktisch 
immer eine reale Temperatur mit Heißluftfön o.ä. zu erzeugen.
Deswegen möchte ich mir eine einfache Schaltung mit Mikrocontroller 
basteln, die ich statt des I2C-Sensors einsetzen kann.

Meine erste Frage ist daher: Welcher Mikrocontroller eignet sich am 
besten für dieses Vorhaben?

Danke und viele Grüße!
Gast #2200973
Lesenswert?

> Meine erste Frage ist daher: Welcher Mikrocontroller eignet sich am
> besten für dieses Vorhaben?

Jeder Controller der I2C-Slave eingebaut hat. Also z.B ein R8C/29,
aber vermutlich auch ein dutzend andere.

Olaf
Gast #2200975
Lesenswert?

Irgendeiner mit I2C Schnittstelle? Oder sogar garkeiner sondern nur ein 
I2C-Interface an einen PC?

Wie möchtest du denn die zu simulierenden Temperaturen vorgeben?

Wenn wenige Temperaturen vorzugeben sind, reichen ein paar Taster an I/O 
Pins. Die sollte jeder µC übrig haben. Mit ein paar Pins mehr könnte man 
schon in die Richtung Tastenmatrix überlegen... Und noch ein paar Pins 
mehr, könnte man überlegen ob man eine Anzeige der Vorgabe 
implementiert.

Wenn die simulierte Temperatur per Spannungswert (Potentiometer) 
eingegeben werden soll dann macht sich ein µC mit ADC ganz gut.

Wenn ein PC die Simulationstemperaturen in den µC füttern soll, dann 
wäre ein Interface zum PC sinnvoll, also UART oder gar USB.
Gast #2200983
Lesenswert?

> Oder mal in den Codesammlungen nachsehen, da gibt es auch
> I2C-Nachbildungen über GPIOs.

Er moechte aber I2C-Slave sein. Das macht man nicht mal eben so in 
Software. Ausser vielleicht man hat den Master total langsam 
programmiert.

Olaf
Moderator Persönliche Seite #2201007
Lesenswert?

Olaf schrieb:
>> Oder mal in den Codesammlungen nachsehen, da gibt es auch
>> I2C-Nachbildungen über GPIOs.
>
> Er moechte aber I2C-Slave sein. Das macht man nicht mal eben so in
> Software. Ausser vielleicht man hat den Master total langsam
> programmiert.

In Firmware würde schon gehen (genügend kurze Interruptlatenz mal
vorausgesetzt), ein PC als I²C-Slave sicher nicht.

Lohnt aber alles nicht, wenn man stattdessen viel einfacher einen
x-beliebigen Controller mit Hardware-I²C nehmen kann.

Bei manchen Herstellern (bspw. Atmels AVRs) heißt der I²C-Modul aus
markenrechtlichen Gründen anders (dort bspw. TWI, "two-wire interface").
Gast #2201508
Lesenswert?

Vielen Dank für die vielen Antworten. Prinzipiell muss es kein 
Mikrocontroller sein. Wenn es dafür auch ein PC Interface gibt, wäre mir 
schon geholfen. Ideal wäre es, wenn ich jede beliebige Temperatur in 
eine Art Terminal am PC eingeben könnte, und die Box an der 
(USB-)Schnittstelle gibt mir ein entsprechendes I2C-Signal aus.
Wenn es das gibt, wie heißen die Dinger? Wonach muss ich suchen?

Viele Grüße und ein schönes Wochenende!
Gast #2201584
Lesenswert?

Falls es doch die Lösung mit µC werden soll, habe ich eben mal 
recherchiert was es so gibt mit LCD wo ich gleich noch den Wert anzeigen 
könnte.
Was ich da gefunden habe, wäre ein AVR Butterfly auf Basis des 
ATmega169.
Weiß zufällig jemand direkt aus dem Kopf ob mein Vorhaben damit möglich 
wäre?
Im Prospekt hab ich nichts von I2C oder TWI, wie es anscheinend bei 
Atmel heißt, gefunden. Im Datenblatt des ATmega selbst steht aber was 
von TWI.
Und so wie ich es verstehe ist der Controller beim Butterfly schon 
integriert.
Gast #2203490
Lesenswert?

Hallo mal wieder,
der von Manfred John im vorletzten Beitrag gezeigte Adapter wäre echt 
ideal gewesen, aber nach allem was ich mir inzwischen zum Thema I²C 
angelesen habe, kann ich ihn nicht einsetzen, da ich tatsächlich einen 
Slave brauche.
Ich will ja so ein Signal ausgeben, als wäre ich selbst der 
Temperatursensor.

Nun läuft es wohl doch auf einen Mikrocontroller raus. Meine Idee 
bisher: AVR Butterfly (= ATmega169P + Display + Joystick-tasten). Mit 
den Tasten die Temperatur einstellen, im Display anzeigen und als 
I²C-Signal ausgeben. Dazu müsste ich nur das Programm anpassen. Denke 
ich soweit richtig? Hat zufällig schon jemand Erfahrung mit dem 
Butterfly und kann mir sagen was ich noch für ein Programmierkabel 
brauche? Oder ist da schon eins dabei?

Vorteil an der Batterieversorgung wäre außerdem, dass ich mir keine 
Gedanken über eine Potentialtrennung in der Hauptanwendung nachher 
machen müsste.

Viele Grüße und nochmal Danke für die Ideen bisher!
Moderator Persönliche Seite #2204214
Lesenswert?

GFunk schrieb:
> Was ich da gefunden habe, wäre ein AVR Butterfly auf Basis des
> ATmega169.
> Weiß zufällig jemand direkt aus dem Kopf ob mein Vorhaben damit möglich
> wäre?

Sollte gehen.  Der hat zwar keinen direkten Hardware-TWI-Block, aber
das sogenannte USI (universal serial interface), welches auch im
I²C-Slave-Mode betrieben werden kann.  Der Programmieraufwand ist ein
wenig höher als bei einem "echten" TWI-Modul, aber die wesentlichen
Voraussetzungen für einen I²C-Slave bietet die Hardware.
Gast #2204216
Lesenswert?

ok, so ein kabel habe ich, aber ich muss doch nochmal fragen (bin halt 
noch kein Experte). Auf der einen Seite ist der RS232-Stecker für die 
Buchse am PC, und auf der anderen Seite habe ich offene Enden, die ich 
mit dem Butterfly verlöten muss? Wahrscheinlich finde ich sogar hier im 
Forum die Pinbelegung, ich weiß nur nicht wonach ich suchen muss.
Gast #2204220
Lesenswert?

ah, jetzt hat sich mein Beitrag mit Jörg gekreuzt.
Ich hatte bei Atmel nach den technischen Daten des ATmega169 geschaut, 
dort steht bei TWI: ja.
Ist dann auf dem Butterfly ein anderer µC oder nur ein abgespeckter 
ATmega169?

Gruß, GFunk
Moderator Persönliche Seite #2204221
Lesenswert?

GFunk schrieb:
> Auf der einen Seite ist der RS232-Stecker für die
> Buchse am PC, und auf der anderen Seite habe ich offene Enden, die ich
> mit dem Butterfly verlöten muss?

Nein, du brauchst noch einen RS-232-Pegelwandler.  Das hat nicht nur
was mit Pegeln zu tun, sondern vor allem damit, dass die RS-232-
Signale zwischen der Leitung und der Logikseite (also am Controller)
invertiert sind, d. h. 0 V auf der Logigkseite entspricht >= +3 V
auf der RS-232-Seite, und 5 V (oder 3 V) auf der Logikseite
entsprechen <= -3 V auf RS-232-Ebene.

Die meisten RS-232-Empfänger in PCs interpretieren den (eigentlich
"verbotenen") Pegel von 0 V wie eine negative Spannung, sodass man
als Billigst-Version mit einem simplen Inverter auskommen kann, der
allerdings am Eingang Spannungen von wenigstens ±12 V verkraften
können muss.

Wenn du einen USB-RS-232-IC (wie den FT232RL) direkt benutzen würdest,
dann könntest du dessen Logikpegel (ohne Zwischenschaltung eines
Inverters/Pegelwandlers) auch direkt mit dem Controller verbinden.
Moderator Persönliche Seite #2204242
Lesenswert?

Jörg Wunsch schrieb:

> Sollte gehen.  Der hat zwar keinen direkten Hardware-TWI-Block, aber
> das sogenannte USI (universal serial interface), welches auch im
> I²C-Slave-Mode betrieben werden kann.  Der Programmieraufwand ist ein
> wenig höher als bei einem "echten" TWI-Modul, aber die wesentlichen
> Voraussetzungen für einen I²C-Slave bietet die Hardware.

http://www.atmel.com/dyn/resources/prod_documents/doc2560.pdf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren