mikrocontroller.net

Forum: Projekte & Code PC Software: langsames I2C für IgorPlug-USB


Autor: Matthias Larisch (matze88)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(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)

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.