Hi, ich moechte einen I2C Bus ueber RS232 (RX und TX) bedienen koennen. An dem I2C werden Sensoren haengen und ich moechte in Software ueber ASCII (RS232) mit den Sensoren sprechen koennen. Faellt euch da was ein? Ich habe das Projekt I2C-slave USART gefunden. Da es sich hier aber nur um einen I2C-Slave handelt ist es ungeeignet. Richtig? muebau
Unter Erweiterungen gibt es ein I2C-Master Tool. Das ist allerdings eigentlich nur zum Testen von Slaves gedacht. Der Master ist eine reine Softwarelösung ohne Hardwareunterstüzung (ohne USI) und ohne den FIFO-Puffer für die RS232-Schnittstelle. Es würde notfalls gehen.
Coder schrieb: > Was ist mit den FTDI Chips? Hast du da eine Typenbezeichnung für einen FTDI Chip, der eine Umsetzung zwischen I2C und RS232 macht?
Hi, das klingt ja nicht so richtig gut. Es soll ja schon verlaesslich funktionieren. Was kann der FTDI denn? Das ist doch nur ein RS232 zu USB Wandler oder nicht? Wie wuerdet ihr mit einem I2C Bus umgehen um diesen per Funk ueber ein BTM-222 zum PC zu bekommen? Die war fuer mich die einzige Moeglichkeit um den I2C in Software zu benutzen. muebau
Hi, meinst du das Ding hier? http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=35108&flv=1&bereich=&marke= Wenn ja, kann ich dem Ding denn 3.3 V geben und er setzt fuer mich den I2C Bus in eine RS232 um? muebau
> Wie wuerdet ihr mit einem I2C Bus umgehen um diesen per Funk > ueber ein BTM-222 zum PC zu bekommen? Ich wuerde mir einen fast beliebigen Microcontroller nehmen und dem ein kleines Programm verpassen das genau das macht was ich will. Du programmierst halt ein Protokoll das die eigentliche I2C Kommunikation etwas abstrahiert. Beispiel: W3:A50:30:31:32 ;Schreibt drei Byte an I2C-bus mit Adresse 0x50 R1:A50 ;Liesst ein Byte vom I2C und sendet dir das Ergebnis W1R5:A50:4a ;Schreibt Byte 4a an Adresse 50 und liesst danach ;5Byte. Also fang an. :) Olaf
Hi, nun wenn ich das Ding von ELV aber genau soetwas kann, habe ich eine sichere Basis mit industriell gefertigter Platine. Wie auch bei einem ISP Programmer sollte man sich etwas nachweisslich Funktionierendes holen um Fehlerquellen auszuschliessen. Kann das Ding von ELV denn genau das? muebau
Hallo, Fridolin Onteca schrieb: > Wenn ja, kann ich dem Ding denn 3.3 V geben und er setzt fuer mich den > I2C Bus in eine RS232 um? > können auch SPI-, I²C- und JTAG-Schnittstellen? - 3,3Volt funktioniert. - Man kann mit Visual Basic, Visual C++ und MPSSE die genannten Schnittstellen programmieren. Aber da würdest du dich so verzetteln, dass das eigentliche Projekt auf der Strecke bleibt! - An der Geschichte haben sich schon viele Experten die Zähne ausgebissen... Gruß Xmega
Fridolin Onteca schrieb: > Kann das Ding von ELV denn genau das? Du kriegst von FTDI eine API mit der du von Windows / Linux aus mit dem Chip kommunizieren kannst. UART ist das aber nicht. Schau mal hier: http://www.ftdichip.com/Support/SoftwareExamples/MPSSE.htm
@Fridolin Onteca Wenn du Dir den Aufwand machst und auf der ftdi homepgae recherchierst, findest du das mpsse interface...es gibt auch application notes dafür anhand derer du entscheiden kannst, ob es passt oder nicht
Addendum Hängt davon ab ob du einen Mikrocontroller benutzen möchtest bzw. musst oder nicht.
./. schrieb: > http://mbed.org/users/4180_1/notebook/i2c-debug-for-realterm/ Der Link funktioniert nicht. muebau
Hi, wo bekomme ich den BL233 denn her? Gibt es da evtl. denn einen Bausatz oder eine PCB Layout? muebau
Hallo Fridolin, schau doch einfach mal in die Codesammlung. Da gibt es mindestens 2 Vorschläge, wie man mit einem einfachen ATMEGA8 Dein Problem löst. Woher ich das weiß ? Weil ich selbst einmal gesucht habe. Und mindestens eine Lösung gefunden habe, die mir aber zu umständlich war. Daraufhin habe ich einen eigenen Ansatz geschrieben (Achtung: sehr frühes Frühwerk - aber gut funktionierend und seit Jahren ständig in Benutzung) und in der Codesammlung bereitgestellt. mfg Michael s.
Hi, nun ich habe die Loesungen mit dem Atmega8 schon gesehen. Da es hier fuer das Projekt einen moeglichst einfachen Ansatz braucht ist der BL233 (als DIL) genau richtig. Auch den SC18IM700 kann ich nicht finden. Laut Datenblatt ist der aber nicht als DIL verfuegbar. Wo kann ich den BL233 oder den SC18IM700 kaufen? Gesucht: Reichelt ELV Conrad (nur der Vollstaendigkeit halber) muebau
http://i2cchip.com/shop.html (unter Integrated Circuits) da gibt es auch komplette Schaltungen zu kaufen. Sonst wirst Du das Teil wohl nicht bekommen, das sieht nach einem custom Chip aus. Wenn Du Basteln (sparen) willst, empfehle ich die Codesammlung (das Beispiel von Michael habe ich aber auch nicht gefunden, außer er hat es unter anderem Namen eingestellt) Oder das Teil von ELV, falls es Deine Anforderungen erfüllt. Da ist viel Zeit und Nerven gespart ;-) Rudi
Ich habe vor einiger Zeit diese Schaltung nachgebaut, funktioniert gut. http://www.horter.de/download/i2c_1.html
Hallo Rudi, das Programm steht unter dem Betreff "Terminal/TWI-Adapter ..." in der Codesammlung (ich musste selbst suchen). Diese Version wird sich auf die einseitige Kommunikationsrichtung vom PC zum TWI-Bus + Verarbeitung der Antworten beschränken. Den umgekehrten Weg habe ich später implementiert, mangels erkennbarem Interesse aber niemanden damit belästigt: Der Adapter fungiert im Ruhezustand als TWI-Slave und alle an ihn gerichteten Nachrichten (Bytes) werden hexadezimal an die serielle Schnittstelle durchgereicht (das wird zum Debuggen genutzt). In Verbindung mit einem USB-Seriell Adapter beschränkt sich die notwendige Hardware auf einen ATMEGA8 in Verbindung mit einem Quarz und 2 Kondensatoren. Alles also Teile, die man normalerweise in der Bastelkiste hat. mfg Michael S.
@Michael: ja, jetzt wo Du es sagst... mit der SW hab ich auch schon experimentiert. Hätte ich vermutlich nicht mehr gefunden ;-) Danke, Rudi
Hi, da ich mit dem Bus reden muss und ihm auch zuhören muss genügt der Code vermutlich nicht. Zu der Lösung von Horter & Kalb (horter.de): Oft werden die Leitungen RTS, CTS, DTR, DSR in I2C-Schaltungen verwendet. Dies funktioniert toll wenn man eine native RS232 hat. Ist das BTM222 in der Lage diese Leitungen ebenfalls zu nutzen. Es scheint hier nur RTS und CTS zu geben. muebau
Hi, Michael S. schrieb: > das Programm steht unter dem Betreff "Terminal/TWI-Adapter ..." in der > Codesammlung (ich musste selbst suchen). ich habe das hier gefunden: Beitrag "Terminal / TWI-Adapter für Mega8 in C" Dieser Code scheint aber schon die Kommunikation in beide Richtungen zu unterstützen. Nicht? muebau
schau mal hier http://www.coptonix.com/html/produkte.html habe ich verwendet vor dem IOWarrior(USB) Grus Ralf
Hi, ein Baustein der an dem I2C betrieben werden soll ist der BMA020. Dieser verkündet im Datenblatt einen I2C mit 3,4 Mbit/s zu bedienen. Ist: Beitrag "Terminal / TWI-Adapter für Mega8 in C" denn damit kompatibel? Es können ja "nur" 100/400 Kbit/s behandelt werden. Findet die Kommunikation dann einfach nur bei 100 Kbit/s statt? muebau
Hallo Fridolin, wenn du nicht mehr willst, als einen "normalen" TWI-Slave zu bedienen, dann kannst Du das problemlos mit dem "Terminal / TWI-Adapter" machen. Genau diese Dinge mache ich mit dem Programm ständig: Daten auf einen Slave übertragen oder Daten aus dem Slave auslesen. Wobei das Programm dazu dient, die Kommunikation im Grundsatz zu testen und zu verstehen - um anschließend eines eigenständiges Programm auf einem Controller laufen zu lassen. Zur Frage des TWI-Taktes: Im Datenblatt ist der maximale (ggf. auch der minimale) TWI-Takt angeben, mit dem ein Slave arbeiten kann. Mit 100 kHz kommen alle zurecht. Bei langen Leitungen ist es hilfreich, den Takt herabzusetzen. Im Gegensatz zur Seriellen Datenübertragung, bei der beide Parteien exakt das selbe Timing haben müssen, wird beim TWI der Takt durch das SCL-Signal vorgegeben. Die maximale TWI-Takt-Frequenz meines Programmes ist durch den Takt des Controllers vorgegeben. Da ich mit 3.686400 MHz arbeite, liegt (wenn ich es - ohne ins Datenblatt zu schauen - recht erinnere), der maximal erreichbare Takt bei 100kHz. Aber was solls, das ist schon reichlich schnell (fast 10x schnell als eine serielle Übertragung mit 9600Baud. mfg Michael S.
Hi, vielen Dank fuer die Ausfuehrungen. Dann scheint es ja das Richtige zu sein. Zu den 9600 Baud und dem 3.xxxx Takt: Laut Beschreibung soll ich ja einen 4 MHz Quarz verwenden. Dieser wuerde mir 100 KHz I2C Takt zur Verfuegung stellen. Die 9600 Baud wollte ich auf 19200 erhoehen indem ich in der *.h das #define auf 19200 stelle. Stehen mir da Probleme bevor? muebau
Hallo Fridolin, eine Baudrate von 19200 Baud sollte keine Probleme bereiten. Allerdings stellt das Programm vermutlich nicht die dauerhafte Lösung Deines Problemes dar: Denn Du wirst ja nicht ständig am Terminal sitzen und "TWI-Kommandos" eintippen wollen, um dem Sensor Messwerte zu entlocken. Wenn Du den richtigen Weg gefunden hast, wie Du den Sensor in Deine Dienste nehmen kannst, dann wirst Du wohl oder übel ein Programm schreiben müssen, das selbstständig den Slave adressiert, Messwerte abholt und dann irgendwie weiterverarbeitet. mfg Michael
Hi, ich hatte genau das vor. Messwert holen und das Ergebnis in Software auswerten. Dies entsprechend schnell (ca. 50-100/s). Siehst du hier ein Problem? Wenn ich mich nicht irre scheint der BMA020 auch "Trigger" zu unterstützen. Sollte es eng mit dem Timing werden so würde es auch genügen die "Trigger" geschickt zu setzen und sich von dem BMA020 die Werte schicken zu lassen, so der Fall eintritt. Das mit dem I2C ist dann doch Neuland für mich. muebau
Hi, nachdem ich den Atmega8 mal aufgebaut habe und die RS232 auf 19200 Baud gesetzt habe geht das schon ganz gut. Schalte ich das Echo aus und verwende ++ für die Anfragen sollte das gehen. Ich warte mal auf das Eintreffen des BMA020. muebau
I2C Anschaltung an den PC .... warum den Umweg über RS232 gehen ? Geht doch viel einfacher. http://www.harbaum.org/till/i2c_tiny_usb/index.shtml Läuft prima unter Windows und Linux. Nativer I2C Speed > 100kHz möglich, gute API vorhanden und im Selbstbau für ein paar Euro zu haben.
Hi, nun die Möglichkeit der Funkübertragung ist nicht optional. Bis jetzt mache ich das mit dem BTM-222 (siehe oben). Dies führte zu der Notwendigkeit der Wandlung von I2C auf RS232. muebau
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.