i2c-tiny-usb

Alle Projekte hier herein, egal ob mit einem Atmel, Pic, oder einen anderen µC realisiert
Antworten
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

i2c-tiny-usb

Beitrag von yeti »

i2c-tiny-usb

----------8<-----{20170406-1608-GMT}----->8----------

Södele... was lange gärt wird entlich Wut... oder so...

Nachdem die PCBs und die anderen notwendigen Zutaten nun gefühlt schon seit 2 Jahren hier rumliegen, hab ich nun endlich mittels Lötnadel ein solches Exemplar zusammengenäht.

Edit @ 20170407-2110-GMT — Hab's wiedergefunden: Die PCBs hatte ich am 2016-05-04 bestellt... aber gefühlte 2 Jahre sind's trotzdem! :-P

Die hierfür eingelagerten ATtiny45 hatte ich sogar schon irgendwann mal zuvor geblitzdingst, aber war danach nicht in Lötlaune.

Noch fehlen die Pins für den externen I2C-Bus, aber ein erster Test, ob Debian diese Hardware am Geruch der VID:PID erkennt und das richtige Modul lädt, ist damit so schon machbar:

Code: Alles auswählen

$ date
Do 6. Apr 17:44:41 ZELZ 2017
$ lsusb | fgrep 'tiny'
Bus 001 Device 016: ID 0403:c631 Future Technology Devices International, Ltd i2c-tiny-usb interface
$ lsmod | awk '$1~"tiny"'
i2c_tiny_usb           12598  0 
Bild Es leeeeebt!!! Bild

----------8<-----{20170406-1656-GMT}----->8----------
20170406_001h-bb1280-q95.jpg
20170406_002h-bb1280-q95.jpg
20170406_003h-bb1280-q95.jpg
20170406_004h-bb1280-q95.jpg
----------8<-----{20170407-1337-GMT}----->8----------

Das 2te Exemplar ist jetzt auch zusammengenäht und Beide bekamen nun die Pins für den I2C-Bus. Nummer-2 verhält sich am USB-Kabel wie das obig erwähnte erste Exemplar.

Beide zeigen das folgende Verhalten:

Code: Alles auswählen

$ sudo rmmod i2c_tiny_usb # eindeutigen Zustand schaffen 
$ lsmod | grep tiny
$ # keine Ausgabe - kein Kernelmodul mit "tiny" im Namen geladen
$ # jetzt i2c-tiny-usb-Adapter anstöpseln
$ lsmod | grep tiny
i2c_tiny_usb           12598  0 
i2c_core               46012  8 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,i2c_tiny_usb,v4l2_common,videodev
usbcore               195468  7 ch341,uvcvideo,usb_storage,usbserial,i2c_tiny_usb,ehci_hcd,ehci_pci 
...so weit, so gut...

Code: Alles auswählen

$ sudo i2cdetect -l # sollte nun die vorhandenen I2C-Busse auflisten
$ # keine Ausgabe - keine Busse...
Hmmm...

Code: Alles auswählen

$ sudo i2cdetect 0 # ganz kackfrech Listing von I2C-Bus-0 verlangen
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
$ ls -l /dev/i2c*
ls: Zugriff auf /dev/i2c* nicht möglich: Datei oder Verzeichnis nicht gefunden
*seufz!*

Da sitz ich hier, ich armer Tropf, und kratz mich ratlos rum am Schopf...
Ich hab dazu grad keine gute Idee, nur bestenfalls wüste Verschwörungstheorien...

Beide Module werden an der USB-VID:PID erkannt.
⇒ Der ATtiny45 läuft und der USB-Code tickt einigermaßen sauber.

Ommmmmmmmm...

Zeit für zervweifelte Maßnahmen: Die Ḑȯķų₥ȩņţąţįȯņ pirschen...
https://github.com/groeck/i2c-tools hat geschrieben:
  • tools
    I2C device detection and register dump tools. These tools rely on the "i2c-dev" kernel driver. They are installed by default.
..."installed by default" ... im Sinne von "auf der Festplatte vorhanden" stimmt ... aber im Sinne von "(per default oder automagisch on demand) geladen" stimmt nicht.

Code: Alles auswählen

$ sudo modprobe i2c-dev
$ sudo i2cdetect -l | awk '/-tiny/'
i2c-10  i2c             i2c-tiny-usb at bus 001 device 021      I2C adapter
$ ls -l /dev/i2c-10 
crw-rw---- 1 root i2c 89, 10 Apr  7 15:31 /dev/i2c-10
Ladies and gentlemen: Let's ecstatically welcome I2C-Bus #10!

Code: Alles auswählen

$ sudo i2cdetect 10
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-10.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
...ok... stimmt!
Es hängt noch kein I2C-Slave am Adapter...

----------8<-----{20170409-1805-GMT}----->8----------

Ok... jetzt mit einem 24C512 EEPROM:

Code: Alles auswählen

$ sudo i2cdetect -y -l | fgrep tiny
i2c-10  i2c             i2c-tiny-usb at bus 001 device 023      I2C adapter
$ sudo i2cdetect -y 10
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Pestens, pestens!
...aber "i2cdump" scheint nicht das richtige Werkzeug zu sein, um ein ganzes EEPROM auszulesen.

----------8<-----{20170410-1303-GMT}----->8----------

...und ich seh ums Verrecken nicht, wie ich mittels des `eep24c` Programes sicher ein EEPROM ausgelesen bekomme.

Mein derzeit bevorzugter Rechner hat schon 10 I2C Busse wenn i2c-tiny-usb nicht angeschlossen ist und ich sehe keine Option von `eep24c` (Manpage) mit der ich den Bus, an dem das EEPROM angeschlossen ist, wählen kann.

----------8<-----{20170430-0931-GMT}----->8----------

Einziger Fortschritt seit dem vorherigen Datum ist derzeit, daß ich endlich die Elkos auf den beiden I2C-Tiny-Aufbauten mit einem Tröpfchen Sekundenkleber fixiert habe. Wahrlich keine weltbewegende Nachricht.

Mal schau'n wann ich wieder den Hintern dem lokalen Gravitationsmaximum entrissen bekomme und mal meine Elektroniksedimente nach 5V-I2C-Kram durchsuche der kein EEPROM ist oder die I2C-Pegelwandler ausgrabe, um z.B. die 3.3V-igen I2C-FM-Tuner anzuschließen.

Ein paar TDA8425 (I2C-gesteuerte Stereo-Lautstärke- und Klangregler) liegen auch noch herum. Die Teile wollen aber 12V. Auch wenn deren I2C-Pins mit 5V klarkommen sollten, sind die zu unhandlich für den schnellen I2C-Test zwischendurch.

Außerdem gilt es ja auch noch zu erforschen, wie man nun hiermit sinnig die EEPROMs beschickt. Es muß doch dafür fertige Tools geben, die auch funktionieren! Ich bin doch ganz sicher nicht der Erste, der von Linux aus ein 24-Dingenskirchen-I2C-EEPROM befüllen will...

...also: I2C-Tiny-USB habe ich definitiv noch nicht abgehakt oder aufgegeben, aber derzeit einfach zuviel Anderes zu tun... es wird irgendwann weiter gehen...

----------8<-----{20170506-1717-GMT}----->8----------

Warum?
Hääääää....???
Heute klappt was Anfangs (oben erwähnt) nicht klappen wollte: Ein nackisch DS1307 (also sogar ohne Quarz) an I2C-Tiny-USB angedrahtet scheint sich zu melden:

Code: Alles auswählen

(yeti@kumari:21)~$ sudo i2cdetect -l | fgrep tiny
i2c-10  i2c             i2c-tiny-usb at bus 001 device 035      I2C adapter
(yeti@kumari:21)~$ sudo i2cdetect -y 10
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
...also erkläre ich den RTC nun für lebendig...

----------8<-----{Thematische Nachbarn}----->8----------

FTDI zum Bitklimpern von GPIO und I2C

----------8<-----{TBC}----->8----------
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: i2c-tiny-usb

Beitrag von yeti »

----------8<-----{20171028-2048-GMT}----->8----------

I2C-Tiny-USB ist umgezogen nach https://github.com/harbaum/I2C-Tiny-USB und es hat nun auch einen Digispark-Port https://github.com/harbaum/I2C-Tiny-USB ... /digispark.

Bild
(Bild aus dem GIT-Repo)

Ich gründelte schon länger darüber nach, daß das eine handliche Lösung sei... also wieder mal hat sich eine Idee durch reines Aussitzen quasi von selbst realisiert... \o/

Der Digispark gefällt mir mechanisch nicht. Ich hab grad vor ein paar Tagen mal wieder Zweie benutzt (wollt wissen wie unterschiedlich schnell sie laufen, wenn sie alleine betrieben werden, schließlich rennen sie ja ohne Quarz, aber das gehört zu anderen Ideen als der I2C-Kram) und war wieder entsetzt, wie wackelig sie in den USB-Buchsen stecken.

Ich hab zum Glück auch nur diese 2 erwähnten Originale. Es gibt hübschere Digispark-Clones in netteren Bauformen und von denen hab ich dann doch ein paar Exemplare mehr...

...irgendwann komm ich sicher mal dazu, sie mit der I2C-Adapter-Software zu beschicken... Ergebnisse dazu werden sich dann hier reinbeamen...

----------8<-----{???}----->8----------
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
Antworten