個体差でハードウェアI2Cで制御できないOLEDがある
初めて遭遇したinajob.icon
環境
20個くらい買ったOLEDのうち1つでこの現象を確認。3つ試して1つNG。ほか個体はまだ試していない
一気に20個くらい買ったOLEDなのだが、個体差がある。
左のものはESP32からu8g2のハードウェアI2Cでの制御ができない。
ソフトウェアI2Cなら動く
何かの部品の載せ間違いでタイミング問題が出ているのか?
https://pbs.twimg.com/media/FrO2UAEaYAACqQQ.jpghttps://pbs.twimg.com/media/FrO2UAPaMAISPRo.jpg
何が原因だろう・・?
試したこと
SCL,SDAにプルアップ抵抗を入れてみる(1K, 10K)
VCC, GNDに0.1uFのコンデンサを入れてみる
ハードウェアI2Cでうまくいく個体
https://scrapbox.io/files/64131bc0639e47001c1797ef.png
ハードウェアI2Cでうまくいかない個体
https://scrapbox.io/files/6413174fb08480001cda5ea5.png
アドレスをで呼ばれているのに返事しておらずNACKになっている
ソフトウェアI2Cでうまくいく個体
https://scrapbox.io/files/6413176121000e001b14a60b.png
ソフトウェアI2Cでうまくいかない個体(動くけど)
https://scrapbox.io/files/6413177e0109bf001b7d9f79.png
ハードウェアI2Cの時同様にNACKだが、このライブラリは確認せずにどんどんデータを送っている
結果うまく動いてしまう