I2C-Tiny-USB互換機でPCF8574を標準ドライバとgpiodで制御できる感じになった
STM32F042をI2C-Tiny-USB互換にする件でI2C-Tiny-USBの処理内容に進んだ辺りからChatGPTの回答が進まなくなってUARTで解析必要になるかと思ったが、ChatGPTでPCF8574を標準ドライバとgpiodで制御できるところまで進んだわ。
GoogleのAIも修正できる言うから相談してみたが、ChatGPTは機能実装しながら機能フラグを一つずつ追加していく感じだが、Googleはいきなり機能フラグ全部ONにして機能実装ができなかったw
今こんな感じ。
SMBus Write ByteとSMBus Read Byteも機能フラグつけるだけでいけるかも?
まあPCF8574以外に接続する必要性は感じない。
正常な仕様ぽいけど扱いにくい。
-tオプションつけないで操作してテスターで電圧変わるのは確認できた。
$ i2cdetect -l
i2c-0 unknown Synopsys DesignWare I2C adapter N/A
i2c-1 i2c i915 gmbus dpa I2C adapter
i2c-2 i2c i915 gmbus dpb I2C adapter
i2c-3 i2c i915 gmbus dpc I2C adapter
i2c-4 i2c i915 gmbus tc1 I2C adapter
i2c-5 i2c i915 gmbus tc2 I2C adapter
i2c-6 i2c i915 gmbus tc3 I2C adapter
i2c-7 i2c i915 gmbus tc4 I2C adapter
i2c-8 i2c i915 gmbus tc5 I2C adapter
i2c-9 i2c i915 gmbus tc6 I2C adapter
i2c-10 i2c AUX A/DDI A/PHY A I2C adapter
i2c-11 i2c AUX USBC1/DDI TC1/PHY TC1 I2C adapter
i2c-12 unknown SMBus I801 adapter at 0000:00:1f.4 N/A
i2c-13 unknown i2c-tiny-usb at bus 001 device 020 N/A
$ sudo i2cdetect -F 13
Functionalities implemented by /dev/i2c-13:
I2C yes
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte no
SMBus Read Byte no
SMBus Write Word no
SMBus Read Word no
SMBus Process Call no
SMBus Block Write no
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC no
I2C Block Write no
I2C Block Read no
SMBus Host Notify no
10-bit addressing no
Target mode no
i2c-0 unknown Synopsys DesignWare I2C adapter N/A
i2c-1 i2c i915 gmbus dpa I2C adapter
i2c-2 i2c i915 gmbus dpb I2C adapter
i2c-3 i2c i915 gmbus dpc I2C adapter
i2c-4 i2c i915 gmbus tc1 I2C adapter
i2c-5 i2c i915 gmbus tc2 I2C adapter
i2c-6 i2c i915 gmbus tc3 I2C adapter
i2c-7 i2c i915 gmbus tc4 I2C adapter
i2c-8 i2c i915 gmbus tc5 I2C adapter
i2c-9 i2c i915 gmbus tc6 I2C adapter
i2c-10 i2c AUX A/DDI A/PHY A I2C adapter
i2c-11 i2c AUX USBC1/DDI TC1/PHY TC1 I2C adapter
i2c-12 unknown SMBus I801 adapter at 0000:00:1f.4 N/A
i2c-13 unknown i2c-tiny-usb at bus 001 device 020 N/A
$ sudo i2cdetect -F 13
Functionalities implemented by /dev/i2c-13:
I2C yes
SMBus Quick Command yes
SMBus Send Byte yes
SMBus Receive Byte yes
SMBus Write Byte no
SMBus Read Byte no
SMBus Write Word no
SMBus Read Word no
SMBus Process Call no
SMBus Block Write no
SMBus Block Read no
SMBus Block Process Call no
SMBus PEC no
I2C Block Write no
I2C Block Read no
SMBus Host Notify no
10-bit addressing no
Target mode no
今こんな感じ。
SMBus Write ByteとSMBus Read Byteも機能フラグつけるだけでいけるかも?
まあPCF8574以外に接続する必要性は感じない。
$ sudo gpioset -c gpiochip1 -t 0 0=0
みたいに即時終了するとHに戻っちゃってるぽい。正常な仕様ぽいけど扱いにくい。
-tオプションつけないで操作してテスターで電圧変わるのは確認できた。