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!
> 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
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.
Oder mal in den Codesammlungen nachsehen, da gibt es auch I2C-Nachbildungen über GPIOs. Dann könntest du den µC nutzen, mit dem du schon Erfahrungen hast...
GFunk schrieb: > Welcher Mikrocontroller eignet sich am > besten für dieses Vorhaben? Jeder kleine "Furz", der I2C oder TWI hardwaremäßig als Slave unterstützt oder etwas Speicher hat, um die Slave Funktion in SW auszuführen und schnell genug für deinen Master ist. z.B. Beitrag "AVR TWI Master und Slave Funtionen in C"
> 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
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").
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!
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.
Hallo GFunk, wenn es was fertiges sein soll (und nicht zu teuer) wäre dieses Teil was: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en028600 Um einen einfachen Slave nachzubilden bestens geeignet ;) Selber probiert ;) Hans
I²C über Pc-Schnittelle Ser. sollte wohl die einfachste und billigste Lösung sein. z.B.:http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=68
Der im letzten Beitrag gezeigte Adapter ist ein Slave, kein Master. Nur so als Anmerkung.
Äh,Quatsch, umgekehrt natürlich. Es ist ein Master, obwohl ein Slave gebraucht wird. Ich sollte lieber ins Bett gehen.
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!
GFunk schrieb: > 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? ein einfaches Kabel zur seriellen Schnittstelle des PC (evtl. also auch eins USB-seriell converter) und es ist nicht dabei
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.
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.
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
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.
GFunk schrieb: > Ich hatte bei Atmel nach den technischen Daten des ATmega169 geschaut, > dort steht bei TWI: ja. Das bezieht sich vermutlich darauf, dass man halt mit der USI ein TWI (in beiden Richtungen) implementieren kann. Solche Feature- Übersichten werden halt von Marketingleuten gemacht ...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.