JUGEMテーマ:組み込み開発
重量測定に大活躍の安価なADコンバータHX711。これにはCH.AとCH.B 2本のロードセルを接続することができる。2本のロードセルが同じ条件で測定できたらいいのだけれども、残念ながら CH.AとCH.Bではゲインが違う。
データシートをみると Gain64の時は CH.Aと書いてある表とCH.Bと書いてあるタイミングチャートがある。
せっかく2本つなげたのでどちらが本当か確認したみた。結果はTable3の表のほうが正しく、タイミングチャートは誤植であることが分かった。
・低消費電力モードについて(パワーダウンモード)
HX711からは コントローラーから PD_SCK 1本のみで制御する。
PD_SCLKをHIにして60uSec経過するとパワーダウンモードとなる。なのでパルスのHighTimeは最大50uSecという制限がある。
データシートによると パワーダウンモードになると デジタル側で 0.2uAの消費電流、アナログ側で0.3uAということで、合計しても1uAに満たないとある。実際にやってみると パワーダウンモードにはいると ふらふらしながらやがて40uAあたりに落ち着く。
これについては市販のHX711ボードを使っていることもあり、原因は不明。
・RATEについて
多くの市販HX711基板は 10SPSに設定されている。
RATE端子をHIにすると 80SPSで動くので、短時間で測定ができる。テスターにて消費電流を目視で確認したがRATEによる差はわからなかった。
]]>
いろいろみていると デバイスマネージャーに Micro SoftSerial BallPoint というデバイスが認識されている。
どうやら シリアルのデバイスがあると シリアルマウスと認識してしまうようで、
解せないのはマウスとして認識してマウスカーソルが動いたりしながら、TeraTermでデータも見ることができるということで、入り口は1つなのに マウスと通信ソフトにデータを受け渡しているのではないかという動き。
とにかく 管理者になって MicroSoft Serial BallPoint を無効にしたら、マウス飛び現象は収まった。
今時 PS/2マウスの前の時代のシリアルマウスなんか使う人世界中で何人いるのか。。超マイノリティーだろうから勝手に認識しないようにしていただきたい。
FTDIに限らず VCPになるものは現れるのであろう。
JUGEMテーマ:組み込み開発
JUGEMテーマ:組み込み開発
MSP430FR を共同開発していて、ある時暴走する不具合が発生。
0x10000 以降にある FRAM にある 設定情報に変数を入れるように代入。
SetupTable[0] = value;
(SetupTable のアドレスは 0x10000以降に配置されている)
すると アドレスにして 下位16ビットしか反映されない。
例えば 0x189A0 にマッピングされている変数に 代入すると 上位の0x1 がとれて 0x89A0のアドレスの値が変化してしまう。
プロセッサ型のマイコンであれば、全部 RAMに展開して動くので、そういうこともあるが、FRAMだと RAMと同じように書き込めてしまうので注意が必要だ。。
]]>JUGEMテーマ:組み込み開発
先日配線の設計をしました。
RS485だったので、当然終端には 120Ωの抵抗を入れます。
しかし、現物を見ると 120Ω終端を付ける装置には ディップスイッチの切り替えで終端抵抗を電気的に接続できるようになっていました。
設計前に仕様書はよく見ましょう。まさに無駄な抵抗。
]]>JUGEMテーマ:組み込み開発
MSP430FR5994 を Code Comporser Studio Version:11.2.0 で開発していて、デバッグしようとなった段で以下のようなメッセージが出て進まない。
TI MSP430 USB1/MSP430 : Target must be connected before loading program
MSP430 Launch Pad
で、いろいろ調べていくと以下のオプションに行き当たった
ここに本文を記入してください。
Debug configration->Target->Auto Run and Lauunch Options の画面で
Launch Options
□Connect to the target on debugger startup
□Restore breakpoints from previous session
のチェックが外れているではないか!!
インポートするときか gitとかで操作しているときかよくわからんが、どうもこのチェックが知らぬ間に外れてしまうことがあるようだ。
Connect to the target on debugger startup にチェックを入れるとエラーメッセージは出てこなくなり、無事にデバックができるようになった。
]]>
ここでメモリが足りなくなる問題が発生。ここで、元のソースファイルでメモリを削るのも難しいので、スタックを削ることとした。
統合開発環境なのでスタックの指定ができるダイアログがあるかと思ったが、Segger embededd studioはエディタで <プロジェクト名>.emProject を編集するだけだった。
普通に <プロジェクト名>.emProject をテキストエディタで編集も可能。
このファイルのフォーマットはこちらで知ることができる
https://wiki.segger.com/Embedded_Studio_project_file_format
ここでスタックを 8192から4096に変更
JUGEMテーマ:組み込み開発
後日判明したが、プロジェクト名を右クリックして、Optionを選べばダイアログで設定できることが判明。
]]>
JUGEMテーマ:組み込み開発
久しぶりに iPhoneで nRF Toolbox を起動して 開発中のBLEデバイスに接続してみた。
ところが何度やってもエラーがでてつながらない。
昔に開発した BLEデバイスでもつながらないので、iPhoneの方がおかしいのではないか。
結局 設定→Bluetoothで BLEを接続すると、そのあとは普通のBLE装置と同じように出てくるようになった。
スマホのOSでセキュリティーが上がっているのかもしれません。
メモとして保存
]]>JUGEMテーマ:組み込み開発
nRF5_SDK_17.1.0_ddde560 のサンプルプログラムを Segger Embedded studio でビルドするがうまく通らない現象が起きた。
.text と .rodata が定義したサイズより大きいみたいなエラーメッセージ???
sesフォルダにある flash_placement.xml を確認してみると
.text と.rodata のサイズがそれぞれ 0x4 と定義されていた。
試しに size="0x4" を削除した。
変更したところあっさりビルドは通った。
いろいろと当たってみたわけではないので、size="0x4"の真意がわからないのと、設定するとしたら適正な値はどうすべきか迷うところですが、メモとして記録したいと思います。
]]>JUGEMテーマ:組み込み開発
電子部品の品不足が大変なご時世。皆様どうやって部品を集めているでしょうか。
今回紹介したいのはこちらの LCSC ELECTONICS
部品通販サイトであるが、中国深センにあるようだ。
MOUSERとかDIGI-KEYとはちょっと違うので、その点にも触れたいと思う。
◆特徴1: 結構安い
結構安い。
数を買うとどんどんディスカウント率が上がる
◆特徴2: 他にはない品ぞろえ
メジャーどころはもちろん扱っているが、中国のあまり知られていないメーカーのコイル等を扱っている。品質はどうなのかという心配はあるけれど、同等の有名メーカーの部品よりも相当安い。仕様書も簡体字だけなんて部品も見かける。中国のマイコンメーカーのRISC-Vなんかあったりして、これはこれでそそるものがある。
◆特徴3:送料高い
digi-keyとか Mouserはある程度の金額を超えると送料無料となる。しかし、こちらはそうはならない。しかも $80くらいかかる。このぐらいかかると、気軽に買うという感じではない。
◆特徴4:関税かかる
ここが最大の違いと思うが、 Digi-keyとか Mouser、RSコンポーネンツでは 送料はかかるかもしれないけど関税はかからない。これは 海外と取引しているように見えて、実は日本の支社から購入しているためだと思う。
LCSCは中国で購入していることになるので輸入となるのだろう。そこで関税がかかる。
かかるのはいいのだけども、購入する時点では関税の額が分からない。運送業者が届けてくれた時に初めて分かる。しかも、クレカは使えず、現金で支払わなければならない。関税かかるときとかからないときがあったりして、最低金額があるのかもしれないが、よくわからない。
先日の例でいうと $2177 購入したら 27000円ほどの関税を運送業者に支払った。
中国の通販と言うと AlibabaやAliExplessが有名と思うが、これは業者を集めた通販プラットフォームである。それに対して LCSCは単一の会社が運営している。 購入した会社による当たりはずれもあったりするAliよりも信頼性はあると思う。
]]>
JUGEMテーマ:組み込み開発
STM32CubeIDEで開発をしていたが、FlashROMの書き込みのデバッグをしていたところ、ST-Linkで接続できなくなってしまう不具合が発生した。
普通にビルドをしていて、そろそろST-LINKに接続してプログラムを書き込みしてデバッグする段になって終わってしまう。
このようなメッセージが出る。
この状態だと何ともならなくて、STM32CubeProgrammerでいったんFlashをイレースすることで、またSTM32CubeIDEでデバッグができるようになる。
今回はFlashROMの書き込みのテストをしていて、リセット後すぐに FlashROMの書き込みをしていた。
おそらく デバッグモードになる前にプログラムが走り、FlashROMの書き込みをしているときに STM32CubeIDEがフラッシュにアクセスして、競合していたのではないかと推測。
マイコンのファームで起動直後にFlashROMにアクセスするのをやめたら、症状は出なくなった。
]]>