編集履歴一覧に戻る
thkanaのアイコン画像

thkana が 2025年05月05日17時50分31秒 に編集

公開

本文の変更

# 発端 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10314549380 Yahoo! 知恵袋にて、HX711 + Spresenseでデータが取れない、との質問がありました。 とりあえず本体(1.8VI/O)とHX711を直結しちゃってるんじゃないか、と軽く考えて回答しましたが... # 再現 どうもそういうことではないとのことで、自分でも試してみたら、確かに読めない。 ライブラリは https://github.com/bogde/HX711 のもの。これに同梱されているexampleのbasic_exampleで"HX711 not found."になりました。 このときのHX711のDOUT(マゼンタ)/PD_SCK(黄)波形が以下。DOUTが1.2Vぐらい浮いていて、Spresenseからは1に見えてしまってつまりHX711がreadyでないと判断され、SCKは振られていません。 ![そのまま接続したときの波形](https://camo.elchika.com/e037d7686b76ff780678d2a165f674dec17f8e9e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33346535643532302d646433342d343830342d383335642d6238653463373835313161322f30653637656462302d393863362d343436302d393830372d646664666466306336383131/) (プローブのキャリブレーションが甘いのはご容赦) ここで、Spresense側DOUTをGNDに落として(強制的にreadyと認識される。データはとれない)、HX711側DOUTをオープンにしてそこを観察してみました。SCKが振られると、DOUTもちゃんと出ていて、Spresense端子に繋がない状態ではLレベルも低くなっていることがわかります。 ![DOUTをGNDに](https://camo.elchika.com/416a1facd5862fa922f9bac8873920048fad1f4d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33346535643532302d646433342d343830342d383335642d6238653463373835313161322f35623262383566632d393734612d343863332d383937362d333062613937363033316330/) # 調べる さて、ここで、[Spresenseの拡張ボードの回路図](https://github.com/sonydevworld/spresense-hw-design-files/raw/master/CXD5602PWBEXT1/schematics/CXD5602PWBEXT1_schematics.pdf)を見てみます。外部に出てるI/O端子のあたりを抜粋すると以下のようになっています。 ![Spresense拡張ボード外部端子まわり](https://camo.elchika.com/ee9483cac3cab84c3b0bd445a49365b8a475f0b6/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33346535643532302d646433342d343830342d383335642d6238653463373835313161322f30353364336565392d376137652d346531342d626636642d313635613634623962323565/) 端子が1kΩでプルアップされています。なぜそんなに低い値でプルアップしているのかはわかりませんが... とにかく、HX711の出力端子がこの1kΩをドライブ仕切れないためにL電圧が上がってしまう、ということのようです。 #対策 とりあえず、適当なバッファICとかが手もとに無かったので、トランジスタ2本でDOUT端子をバッファしてやりました。 ![バッファ回路例](https://camo.elchika.com/6b8656c24f0adf52e91447f4d7191ff9570936db/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33346535643532302d646433342d343830342d383335642d6238653463373835313161322f35336635663230302d313235302d343235312d393134322d636434356532313337323334/)

+

#結果

これでそれらしい値が取得できるようになりました。そんなに速いクロックではないのでオープンコレクタ2段でもまぁ大丈夫、というところでしょう。 これを挟んだときのSpresense端子側の波形は以下のようでした。 ![対策後波形](https://camo.elchika.com/cc10951f679fab213835477217afdf5b312490b1/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33346535643532302d646433342d343830342d383335642d6238653463373835313161322f36663864623337322d376235642d343938322d623639372d386435623163353761636232/)

+

(なんかオシロのキャプチャがそのままだと表示されないみたい?なのでALT文字列をクリックしてやってください。Spresense回路図も、キモの部分が表示されていないのでクリックして全表示をお願いします)