Hier stelle ich mal meinen Quick & Dirty Code zur Verfügung, der an den IO Ports des IgorPlug-USB eine simple, langsame I2C Schnittstelle implementiert. Der Code ist komplett selbsterklärend, das beiliegende Sampleprogramm liest 2kByte von nem I2C EEProm mit der DeviceID 0b1010000. Vielleicht kann den Code ja mal jemand gebrauchen :-) Achtung: SEHR langsam. Diese 2 kByte lesen dauert schon rund 2 Minuten oder so (hab jetzt nicht gestoppt). Ist halt normal, da man auf die IOs nur über bit-banging zugreifen kann und das schonmal immer 1 ms dauert über USB. Schaltung: SDA bitte mit externem Pullup versehen (2-10k ist okay denke ich), SCL ist als Push-Pull ausgeführt. Also bitte: Single Master und keine devices die ClockStretching benutzen anschließen. Wobei vermutlich auch diese Devices funktionieren dürften, da der I2C so extrem langsam arbeitet. Zur Funktion benötigt wird die IgorUSB.dll, die aber mit der Installation des IgorPlug-USB Treibers mit installiert wird. Matthias
(Sorry, hab mir deinen Code nicht genau angesehen, deswegen die evtl dumme Frage) Implementierst du I²C auf dem AVR, oder komplett auf PC-Seite im Treiber? Wärs zwecks Speed nicht besser, möglichst viel vom AVR machen zu lassen, z.B. wie http://www.harbaum.org/till/i2c_tiny_usb/index.shtml (Der ist allerdings eher für Linux-User interressant, wg. dem vorhandenen Kernel-Treiber, der ein komplettes Einbinden in das Linux-I²C-System ermöglicht)
Es ist eine reine PC Software, die genau dazu da ist, ohne Aufwand etwas zu bewerkstelligen :-) Ich hatte gerade weder Lust auf AVR Programmierung noch auf viel Löten, weshalb ich mir einfach die erstbeste Schaltung gesucht habe, welche IOs bietet und vom PC steuerbar ist. Das war der IgorPlug und deshalb ist das PC Programm dafür :-) Dient jetzt hier auch nur für Leute, die wie ich vorher nach sowas gesucht haben, aber nichts gefunden haben. Et voilà, hier wäre halt was funktionierendes :-) cu Matze PS: Natürlich wäre es wesentlich schlauer, schneller, besser, den I2C Teil im AVR machen zu lassen, dann kann man auch über USB gute Geschwindigkeit erzielen (noch mehr indem man sich ein besseres PC<->µC Protokoll ausdenkt, indem man z.B. mehrere Bytes auf einmal lesen/schreiben kann.
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.