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 にチェックを入れるとエラーメッセージは出てこなくなり、無事にデバックができるようになった。
]]>
解説 PLCの基板化について
・PLCとは
・PLCが向かない場面
・PLCを基板化するメリット
・PLCを基板化するデメリット
・PLCを基板化した事例
・開発・製作手順
・令和デバイスについて
もしもご興味がある方は 令和デバイスお問合せで連絡ください。
]]>
ここでメモリが足りなくなる問題が発生。ここで、元のソースファイルでメモリを削るのも難しいので、スタックを削ることとした。
統合開発環境なのでスタックの指定ができるダイアログがあるかと思ったが、Segger embededd studioはエディタで <プロジェクト名>.emProject を編集するだけだった。
普通に <プロジェクト名>.emProject をテキストエディタで編集も可能。
このファイルのフォーマットはこちらで知ることができる
https://wiki.segger.com/Embedded_Studio_project_file_format
ここでスタックを 8192から4096に変更
JUGEMテーマ:組み込み開発
後日判明したが、プロジェクト名を右クリックして、Optionを選べばダイアログで設定できることが判明。
]]>
それにともない 安いロボット掃除機を購入。
ILIFE V3s Pro
採用の理由はブラシレスタイプであることとリモコンで動かせること。
細いケーブルなどが落ちていることがあり、ブラシに巻き込まれると破損してしまうことがあるため、ブラシレス。
赤外線リモコンは、意外とついている機種は少なく、スマホで動かせるものの方が多い。自分の部屋ならば自分のスマホで動かせばいいが、事務所となると誰でもスタート/ストップできたほうが良いだろう。
ランダム走行なので掃除時間が長い。仕事場の掃除は短時間で済ませたほうが良いのでマッピングできるタイプの方が良いかもしれない。
さて、ここで問題だが、充電ステーションに戻らない。ILIFEカスタマーサポートに連絡したが、初期不良と判定されて新品が来た。
これでも 充電ステーションに戻らないので、なにか他に原因があるのではないか。
もう一度 カスタマーサポートに写真付きで相談したら、速攻で電話がかかってきた。
曰く、黒かったり焦げ茶色だったりする床だと 充電ステーション(ドッキングステーションともいう)の認識ができないらしい。
いままでの事務所でつかっていた Ecovacs DEBOT Silm10 も試したが、やっぱりこれも新しい事務所では充電ステーションに戻れなかった。
いままでの事務所も焦げ茶色で暗い色なんだけど、くろだとダメなのだろうか。
一応動画のリンクも示しておきます。
https://www.youtube.com/shorts/CjUr2b-SrAw
ILIFEもエコバックスも取説に床の色には言及していなくて、これはどうしたことだろう。ステーションに戻らないのは ステーションの設置が良くないと書いてあるだけで、これではわからない。現に不良品と思って交換してしまった。いくら良品でも一度使ってしまった掃除機は売るわけにはいかないので、申し訳ないような気もする。
高価なロボット掃除機だと解消されているかもしれないけど、これは安いものなので仕方がないか。
PS.
スマホで動かせるタイプは Alexaから制御できるものが多いので、リモコンは無くてもよいかもと思いだした。
]]>
JUGEMテーマ:組み込み開発
久しぶりに iPhoneで nRF Toolbox を起動して 開発中のBLEデバイスに接続してみた。
ところが何度やってもエラーがでてつながらない。
昔に開発した BLEデバイスでもつながらないので、iPhoneの方がおかしいのではないか。
結局 設定→Bluetoothで BLEを接続すると、そのあとは普通のBLE装置と同じように出てくるようになった。
スマホのOSでセキュリティーが上がっているのかもしれません。
メモとして保存
]]>JUGEMテーマ:コンピュータ
マウスコンピュータで 最近話題の学習用WindowsタブレットE10-VL-WA を導入。
アウトレットで 18,000円だった。ペンは付いていない。
CPUは速いほうの N4100 にした。
当社では マネーフォワード クラウド勤怠使っている。この打刻端末にした。
いままでは atomのPCを使っていて、使えないわけではないのだが カードリーダーの反応が5秒ぐらいかかるので、限界と判断した。
まずは、カードリーダーである PaSoRi がつながらなくて困った。交通系ICカードで打刻する人がほとんどなので、これが使えないと移行できない。
以前はドライバをインストールすればよかったのであるが、これに加えて設定が一つ増えたようだ。
NFC Port を使うか WinUSBを使うかという選択がある。
ここで WinUSBにしないと 接続ができないのだ
詳しくはこちらで・・
これから Windows11に移行することにしているので、慣れるためにこのPCもWindows11にアップグレードした。更新して放置、翌日出社するとWindows11になっていた。
Windows10に慣れているので、やや手間取る。
◆使いはじめの感想
Youtube等でさんざんレビューがあるので、きちんとしたところはそちらを見るほうがいいが、自分の感想をざっと書いていこう。
・グレアタイプなので映り込みがすごい。タッチ対応なので仕方がないかもしれないけど、見づらいつらい。
・キーボード 子供用みたいで、大人の手には大きすぎるように感じる
・タッチパッド 小さい。
・やっぱり 遅い。起動も遅い、アプリ立ち上げるのも遅い。インストール直後でこれなので、つらい。速いほうでこれなので N4000だともっとつらいかもしれない。
・最近の大きい画面に慣れていると、この画面は小さすぎるように感じる
・打刻端末としては 退勤とか 出勤のボタンを 画面で直接指定できるので便利
・いつもは速攻でChromeを入れるのだが microsoft Edgeでしばらく行こうと思う。Edge一本でもよい気がする。
・KingSoftのWPS Officeがバンドルされたので、入れておいた。使うことはないと思う。かといって MS Officeをいれるつもりはない。
・子供学習用なので防水仕様となっている。打刻端末で常時ACアダプタつなげているので蓋は開きっぱなし。
・USB-Aコネクタは1つ欲しいと思う。仕方がないので type-C から UAB-Aになる HUBを付けた。
ということで、打刻端末に最適だが、入力したりするにはつらいだろう。
]]>
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にアクセスするのをやめたら、症状は出なくなった。
]]>JUGEMテーマ:組み込み開発
Xportといえば、シリアル-LAN変換モジュールとして有名。
高いという不満はあるけれど、定番として使っている。
長期にわたる安定供給の実績が大きいと思う。
久しぶりにデバイスインストーラーを起動してXPORTを初期化しようとしたが、うんともすんともうまくいかない。
LANケーブルとかHUBとか入れ替えたが無駄であった。
そこてWindows Defenderのファイヤウォールを停止したらあっさり検索で出てきた。
一応メモ
]]>JUGEMテーマ:電子工作
ちょっと前に PCファンに勘合するピンヘッダの話をした。
http://blog.suga41.com/?eid=441
で、PCファンのPWM端子は HI または Openだと 動作する。
PWMで制御するときは デューティを可変すればよい。
ところが ファンを止めようと Duty 0%にしてもファンは回り続ける。
試しに端子を見ても Loになりっぱなしだ。
PWM duty0% 最低回転数の時のファンの状態
PWM duty100% 最低回転数の時のファンの状態
これはファンがおかしいと思っていろいろ確認したがどうも PCファンというのはそういう仕様になっているようだ。
ずっとLo、すなわち最低の指定にしても 15%の回転数で回るらしい。
前回購入したPCファンは止まったので、全部止まると思ったが、止まったPCファンだけ不良品の様だ。
PCならともかく、自作の装置でファンを制御する場合、最低は 0回転にしたいものだ。PWMで0にできないので、どうしても回転を止めたければ 電源を切断するような回路にしないといけない。 電源のON/OFFで制御すればいいのだけど、
電源の入り切り、ファンのPWM と二系統の制御にしないといけないのはちょっと残念に思う。
ちゃんと制御するならばちゃんとした工業用のファンを付けないといけないということになる。
]]>JUGEMテーマ:電子工作
最近のはんだ付けグッズの自分的なヒットは 日本ボンコートのファインクリーナー
http://bonkote.co.jp/product/peripherals/fine_cleaner.html
日本ボンコートのファインクリーナーだ。
一目見てこれだと思って購入。
本来は 内側についている針金部にコテ先をこすりつけて、こて先をクリーニングするのだろう。
しかし、私はこの動画でしているように ハンダこてを打ち付けて、余計なハンダを飛ばす方法を採っている。
これだとこて先の温度が下がらない、こてが スポンジとかワイヤーとかの擦りがないので、いたみも最低限になるのではないかと思う。
いままでは いらない段ボールなどで小箱を自作したりしていたが、やっているうちに 段ボールがヘタレてしまうし、見た目もビンボ臭い。こういう専用のツールがあるのはいいことだ。(メーカーが想定しているつかい方とは違うと思うが)
小さいほう B-250を購入したが、ハンダをこすりつける方法だと軽くてすりすりしていると動いてしまってまことに使いにくい。底にはマグネットがあるので、鉄板の上に配置するなどしたほうが良いだろう。
「打ち付け方式」ではそういうことはない。
]]>
JUGEMテーマ:電子工作
市販のファンはいろいろあるけれど、自作PC等に使われるファンを選定したい。
12Vであれば、PC用が数が出るので、コスパは一番良い。
しかもデザインもいろいろ選べる。
基板を設計するにあたりPCファンのコネクタに勘合するピンヘッダの型番がなかなか出てこなかったのでメモしておこう。
MOLEX 0470533000
通販サイト
https://www.marutsu.co.jp/GoodsDetail.jsp?q=0470533000&salesGoodsCode=10089358&shopNo=3
https://www.digikey.jp/products/ja?keywords=0470533000
メーカーサイト
https://www.molex.com/molex/products/part-detail/pcb_headers/0470533000
端子の隣に位置決めの出っ張りがある。これがユニバーサル基板にぴたりはまる。これは嬉しいですね。
エレショップではmolex 22-04-1041(旧型番5045-04A)がファンコネクタに勘合すると書いてある。ピッチは合っているが、逆挿し防止ガイドの形状が違うので、自分で形に合わせてガイドを切らないといけない。自作、バラックではまあいいとして、、製品としては苦しい。
]]>本体に電流が流れることにより発熱、一定以上の温度になると抵抗値が上がる仕組み。温度が下がれば抵抗値が下がり再び元のように電流を流すことができる。
ポリスイッチはとりあえず電流流れそうな入出力端子にむやみやたらに入れることもあるけれど、気休めになっていることも多い。
そもそも 回路が過負荷状態でシャットダウンするタイプだと、リセッタブルヒューズは不要ではないかということになる。
ここはそんなに電流が流れないからと保持電流が小さいタイプだと普通の状態で抵抗値が高く、そこで電圧ドロップが発生して、その先が電圧が低くなることもある。
意外にトリップ電流ぐらいが流れても、発熱するまでの間は秒単位の時間がかかる。速断ヒューズのようには動かないので、遮断した時にはその先の回路が壊れていたということも起こりうる。
それから、温度で抵抗値が変わるということは、周囲の温度によって抵抗値が変わるということになる。周辺の温度に影響を受けて抵抗値が変わるのでこれも注意しないといけない。特に面実装で近くに発熱するデバイスがある場合には、その発熱で抵抗値が上がってしまうことも考えられるので、配置にも気をつけなければならない。
発熱している回路のサーモグラフィの様子。発熱しているところに面実装のポリスイッチを配置すると誤作動の原因になる。
]]>
ちょっと前に出会った安価な絶縁型スイッチングレギュレータモジュール。色も赤くてかっこよい。
このタイプは絶縁するだけど、出力先の電圧が変動する。
フィードバックする機能がないので、出力先の電流が少ないと電圧が上がり、電流が多くなると電圧が下がる、ある意味素直な特性を持っている。
出力先が多少の変動があってもいいので絶縁したいという用途には、値段も安いし良い選択となる。
定電圧であることが必要な場合にはどうするか。
NXE1S0505MC など出力5Vタイプを選定して、出力の先に 3.3VのLDOを付けるのはどうだろう。
スイッチングのノイズも大幅にカットされ、また、3.3Vの定電圧が取り出すことができる。
NXE1S0505MCの場合最大出力が200mAなのでそれより十分少ない電流の回路であることが必要となる。
]]>
スイッチサイエンス のリフロートースターコントローラーキット をつかったリフローオーブン を知人から譲り受けた。
https://www.switch-science.com/catalog/1690/
気軽にリフローができるので便利なのだが、どうも動作がおかしい。
一度リフローするとプリント基板のシルクが明らかに変色してしまうのだ。といっても部品が焦げるわけでもないし、壊れるわけではない。
気になったので確認してみた。
まずは、温度測定。自作の一秒に一度 シリアル出力するK熱電対で装置の中の温度を測定してみた。
その結果、やたらと時間が長い。
これはおかしい。知人に確認したが、買った時のままでプログラムは変更していないとのこと。
プログラムを変更するためシリアル変換基板を取り付けた。
これは DSRが出ている特殊なもので、ピン数は同じだが TTL-232R-3V3は使えない。
Arduino書き込み用だから、そうなのだが、FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き) でないといけない。これもスイッチサイエンスで購入できる。 3.3V に設定する。
取り外すとどこかに無くしてしまいそうなのでそのまま接続することとした。
スイッチサイエンスで紹介されているArduinoのソースファイルをゲット。これで動かしてみたが、動作は変らないようだ。
動作がおかしい一番の原因は動作が1/2になっているようだ。ソース中では9600bpsと設定しているのにCOMポートの出力では4800bpsにしないと正しく表示されない。
この基板のもとになったarduinoはクロック周波数 16MHzなのにこの基板は 8Mhzということらしい。(知人情報)
さらに 制御周期(= delayWait )が 100mSec になっているが、制御で LCDの制御とか計算等の時間がばかにならないようで delayWaitよりも数十ミリ秒長い
まとめ
・マイコンの動作が1/2の速度になっている。
・制御周期が 設定よりも長い
さらに、オーブンの庫内が広いからということもあるが、温度上昇が緩やか。
このようなわけで、プログラム中の設定より 倍以上の時間をかけてリフローしている。
これでは基板のシルクが変色してもおかしくはないだろう。
まずは
プログラム変更
・クロックに由来するパラメータを変更
Serial.begin(9600); → Serial.begin(19200);
19200 に設定すると 9600bpsで通信できる。
tone も変更した。
tone(TonePin,9000,800); // StartSound
これで 4500Hzでなるはずだ。
もともと ブザーはついていなかったが、終わったときにオーブンの蓋を開けたいので、ブザー端子に圧電ブザーを接続した。
最初は電子機器と思えない低音で鳴っていた。しかも音が小さかった。 これでそこそこ聞こえる音量を確保できた。
制御時間に関するパラメータの変更
#define delayWait 250
#define oneSec (500 / delayWait)
これで 500mSecに一度温調して、一秒も正確に出すことができるようになった。
loop()関数内
delay(delayWait-21)
制御のための時間を調整し-21することで、delayWait の狙っている値になるようになった。 (二倍だけど)
・温度ロギング出力
一秒に一度温度を出力することにした。これで温度カーブ
・レシピの変更
リフローオーブンが表示している温度と、自作のK熱電対温度計とで、温度の違いがかなりあるようだったので、自作温度計を信用することとした。
また、レシピも 温度のオーバーシュート等を考慮して調整した。
急激に温度が下がっているところは蓋を開けた後です。
JUGEMテーマ:電子工作
]]>
トランジスタなんかはコンパチ品またはほぼ同等品が結構見つかるので、そこまで深刻ではないが、マイコンや高機能ICなんかで代替がないものが品切れだと大変だ。
しかも 納期が1年後だったりすると絶望。。
昔と違ってマイコンだけも大変な品種があるし、商社も在庫もたなくなって久しい。
あまり商社とは付き合いがないが、どうしても手に入らないときには問い合わせしたりするが、在庫もっていたためしがない。
焦って入手しようとして、怪しいルートにあたったりすることもあるでしょう。最近はどうかわからないけど、偽物つかまされることがあるので、注意が必要だ。
6年前、偽物の電子部品の記事はこちらです。
それでも 香港や深センの商社で在庫があるというところがあったので、今度は騙されないぞと思いつつ見積もりを取ってみる。
なれなれしい態度でメールがきていろいろ言聞いてくる。
さんざんじらした挙句、在庫はやっぱりなかった。ごめんなさいで終わってしました。なんじゃそりゃ。。
今回は本当にどこにもなくて困ったなぁっと思っていたが、もう手がない。。未練たらしく、いつも買っている電子部品の通販で在庫確認をした。そうしたら、なんとあったのですよ。。
普通の電子部品の通販のサイトでこまめに在庫確認していくとある日突然在庫が復活していることもある。あきらめずにあたっていきましょう。
これで RX621 と ATtiny3217を必要数ゲットすることができました。
ATTinyは在庫が 450個あったが、2日後には再び在庫切れになっていた。
それでは幸運を祈ります。
]]>
ATtinyの場合、GPIOのポートは Asynchronous Pin (非同期ピン)とそうでないものがある。
そうでないものはクロックに同期して入力するのだろう。
CPUに供給されるクロックが動いている時はどのピンも割り込みに使えるが、クロックがない場合
すなわち sleepモードの SLPCTRL_SMODE_PDOWN_gc、SLPCTRL_SMODE_STDBY_gc では Asynchrounous PIN しか割り込みがかからなくなる。
ところが デバッガをつなげて実行していると SLPCTRL_SMODE_PDOWN_gc でsleep中に非同期ピンでないピンに信号が入っても割り込みが入ってしまうので気が付きにい。デバッガつなげるとピン入力によりスリープから復帰するが、デバッガを外すと スリープから復帰しなくなる現象となる。
これに気づいて Sleepからの Wake-upに使うピンを PB7から PB6にしたら正しく動いた。
ATtiny3217 Curiosity Nanoでは ボタンがPB7 についているので、これは sleepモード時には復帰しない(idleモードを除く)
ではとATtiny3217 Xplained Pro では PB5にボタンがついていて、これもAsynchrounousPinではないので、sleepモードからの復活には使えない。
今使っている ATtiny3217の場合 Asynchrounous PIN は Px2または Px6ということだ。もう少し増やしてほしい気もするが、
PA2,PA6,PB2,PB6,PC2 の5本ということになる。このうちUARTに使われたりということで、選択肢がさらに限られることもある。低消費電力からの復帰のためのポート入力はこれらのピンを優先的に割り当てを考えないといけなくなる。
]]>
これをバラックの実験用回路に付けたい。
秋月にある
SOT23変換基板 金フラッシュ を使ってみる。
https://akizukidenshi.com/catalog/g/gP-03659/
実物合わせしてみたが、なんとか端子がショートすることなく載せることができそう。
こて先は Hakko T13-BC2 。
温度は 370℃ (もっと低くても大丈夫)
ハンダは鉛フリーの φ0.3mm を用いた。
ランド部分にコテをあてて温めて、ハンダを流し込む。自然にランド全体に広がりピンとつながっていく。
このぐらいのサイズだと 実態顕微鏡を使った方が作業性が良い。
ICから直接線を繋げてもいいが、線が切れたりピンがとれたりする。基板に実装することで安心して実験ができる。
]]>
JUGEMテーマ:組み込み開発
ESP-WROOM-2を使って便利にwifiさせてもらっているが、先日トラブルがあったのでメモ。
電源を投入すると IO0 から発振するような 357hz の信号が出てくる。
これがなんだかわからない。
普通のブレッドボードにつなげた WROOM に電源を投入すると、起動時に同様な発振はみられるがすぐに止む。
新規開発の基板だといつまでも発振し続ける。
いろいろと試行錯誤の結果電源ICの容量が足りないことが分かった。十分な電流を流せないのでいつまでも初期状態にとどまっているのではないかと推測される。
今回は低消費電力を狙っていたのでTPS78233DDCTというやたらと低消費電力のLDOを使った。これが 150mA しか流せないので不安定になっていたようだ。
同じサイズのMIC5501という特に低消費電力というわけでもないICに変更したら、ぴたりと治まった。
恥ずかしい失敗ではあるが、ここに記しておく。
]]>
JUGEMテーマ:電子工作
以前記事にしたけど、Interface誌で記事を書かせてもらった。
記事で作ったバラックはまだ残っていて、気圧と気温をFTPサーバーに上げ続けている。
これが100MBまで180円のプランなんだけど、一時間に1度 気圧、気温をFTP上のファイルに追記していくだけだと月に2Mbしか使わない。
ただし、問題があって、 FTPのファイル追記ができなくなることが発生する。
一度発生すると、自然に復旧することはまれである。
確認していみると、初期段階で Wifiモジュールと通信できなくて、リセット動作を繰り返していることがほとんど。
これは、ブレッドボードなので、ジャンパワイヤが酸化して導通不良が起きているのではないかと推測している。
ブレッドボードについているジャンパワイヤをぐりぐりいじったり、抜き差ししてもう一度手電源を入れと絶好調で通信を再開する。
その場で試す回路として、ブレッドボードを使うのは手軽でよいが、長く使うには信頼性の面からお勧めできないのだ。
FTPに上げている最新データはここから見れます。
http://iot2020.starfree.jp/iot/
更新が滞っているようならば、ブレッドボードの導通不良だなと思ってください。
]]>
JUGEMテーマ:組み込み開発
4-20mA出力が必要となって、ボードを開発している時間もないので、市版のボードを探した。
どうやら すぐに入手できるのが ロボショップで販売している RB-NCD-28 しかない。
これは National Control Devices というメーカからの輸入品のようだ。
https://store.ncd.io/product/1-channel-isolated-4-20ma-current-loop-transmitter-with-power/
ここでの型番は PR33-26。
回路図と示してあるのは基板のパターン図でしかも、フットプリントが全然違う。
過去に同様の別製品があったのかもしれないが、情報のアップデートがされていないようだ。
試行錯誤して以下の配線で動くことを確認した。
24Vの 4-20mA 系統と 5V系統は絶縁されている。
もう一つ問題があって arduinoのサンプルで確認したが、ここに書いてある設定値と出力電流が当てはまらない。
https://github.com/bhaskar-anil429/isolated_4-20MA_current_loop_transmitter
しかたが無いので実測てみた。
実測値で 4mA が set_volt(570);
実測値で 20mA が set_volt(2910);
となった。
もう一つ注意点は +5V の電源は 100mA程度の電流が流れる。内部に絶縁型のDCDCコンバータを搭載しているためと思われる。
迷える人の参考になれば。。
]]>
JUGEMテーマ:コンピュータ
ノートPCのLCDがどうも調子悪い。
冷えている時に調子がわるくて、だんだんと良くなってくることは分かった。
で、amazonとかで確認してみるとこのPCに使えるLCDが 10000円ぐらい。。。
値段はまだしも来るのに時間がかかるのが問題だ。
そこで、同じ 15.6インチのモバイルモニターを思い出した。
これは、最近使っていないのだ。普通のUSB経由だとどうしても バックライトが弱くて見にくいという欠点があるからだ。
このLCDを確認してみると 寸法やコネクタの形状は全く同じであった。
急遽取り替えてみた。
仮止めの時には映らなかったが、ネジ止めしたら映るようになった!
15.6インチ ノートPC用の液晶パネルは大体同じ寸法、規格なのかもしれない。
このPC キーボードも取り替えたし、LCDパネルも取り替えたしで、もうちょっと頑張ってもらおう。
]]>
その5Vから 3.3VをMIC5504-3.3YM5 という LDO で生成するという回路を組んで基板化した。
ところが MIC5504-3.3YM5の3.3V出力が 5V付近になってた。
おかしい。
いろいろ調べてみると 普段24V入力の電源入力を 6V付近まで落とすと3.3V正常に出力されて、電源の入力を徐々に上げていくと発振波形がみられだんだんと電圧が上がってきてやがては5V付近で落ち着くことが分かった。
MIC5504-3.3YM5 の入力は 5V固定なので 回路的には電源の24Vと関係なく、頭をかかえた。
予測として DCDCレギュレータの入力電圧が高くなると PWMのDUTYが短くなり、鋭いパルス状になってくる。こうなるときに近くにあるMIC5504-3.3YM5の誤動作につながるのではないかと。
回路図上は問題ないが、MCP16301の動作がMIC5504-3.3YM5のフィードバック回路に影響を与えている可能性がある。
試しにMIC5504-3.3YM5をAP2112K-3.3TRG1に付け替えたところ、ピタリと謎の症状は治まり 3.3V付近で安定出力するようになった。AP2112K-3.3TRG1を選定したのはパッケージ・ピン配置が同じで、即入手できたから。
]]>私意外の記事も力作ぞろいです。
WifiやBLE、LET通信等無線に携わる人には是非読んでほしい内容です。
]]>
STM32と接続しているわけだが、これがどうにもこうにも動かない。
BM71は 簡単に使える透過モードの AUTO モードと
ガチにコマンドの送受信をして実行する Manualモードがある。
AUTOモードもいいんだけど、一回の送信で 1バイトしか送れない仕様なので、データが増えてくると苦しくなってくる。
そんなわけで MANUAL モードでやってみた。
とにかくConfigを実行して MODEとRESET それから TXD,RXD接続して動くでしょって思ったがうんともすんとも言わない。
このモジュールは状態推移をすると自動的に状態遷移の報告をするが、それさえもない。
プログラムは 状態遷移を起点にして動作を開始するので、ずっとだんまり状態となっている。
しばらく考えたけど、よくわからなかったので 試行錯誤の一つである、最新のファームウェアを入れたら 状態遷移コマンドを出力するようになった。
ファームウェアが入っていないということはないと思うのでConfigとファームウェアのバージョンがあっていなかったかもしれない。
ともかく、マイコンからアクセスする前にファームウェアの更新とConfigはセットで行うようにしたらよいでしょう。
]]>
開発した RS485の通信では 無信号時は RO にHIが出てきていたが、別の基板で相手装置を接続して動作させると ROから LOだったりHIだったり、だいたい LOが出てくる症状が現れた。
RS485ドライバは 安いということもあり、SN75176という定番ICを使っていたが、よくよく見ると 差動入力の電圧が -0.2V〜-0.2V の範囲だと RO Unknown となる。わからないと。
なにも信号がない時にわずかな電圧のノイズを検知して、マイコンのシリアルに送信されると大変迷惑である。
RS485の差動ドライバの Aにプルアップ、Bにプルダウンをしたりという回路図も散見される。
先人はいろいろ苦労されたんだろうと推測される。
これには Fail-safe機能がついている RS485ドライバICを用いるのが一番簡単だろう。
例に挙げる LTC485の場合 Open入力だと 出力が 1になる。
Openの定義がよくわからないけど、こで読み解くと -0.2V<A-B<0.2Vということになるでしょう。
おそらく差動入力が一定の電圧に達するまでは ROを 1に出力するのではないか。
ADM3061 だと、 I(Indeterminate=不確定)の範囲を0 -0.3〜-0.2Vとして0Vより下に設定しておいて、差動入力 0Vの時 の出力が Hになるようになっている。こういう解決策をとっているICもある。
8ピンのRS485ドライバばだいたい 同じピン配置をしているのも助かる。
fail-safe機能と呼ばれているようだが、採用するときには差動入力の仕様を確認したいものだ。
逆にいうと 差動電圧0.2V以下は通信できないということなので、fail-safeがあると距離が稼げないとか、速度が出ないとかがあるかもしれない。
そうそう、ノイズがない環境で使うのなら SN75176はコスパのよいICです。
]]>
JUGEMテーマ:組み込み開発
NUCLEO-F411ボードにてFlashROM書き込みのファームを開発していたところ、以下のようなメッセージが出て STM32CubeIDE でデバッグも書きこもできなくなった。
Launching ****** encounted a problem,
Error in final launch sequence.
Failed to execute MI command:
load パス・ファイル名
Error message from debuger back end:
Error finishing flash operation.
この場合に STM32CubeProgrammerで実行ファイルを書き込むと復活する。
どうしてそうなるのか詳細は調べていないけど、とりあえず、これで救われた。
]]>
階層構造にしてシートを作成して既存のファイルを指定するとできるんだけど、そのままその階層で回路図を見ると部品が 化けて??で表示される。キャッシュの更新が間に合っていないのではないかと思われる。
この場合、一回保存してもう一度開きなおすときちんと表示されるので、慌てないように。
っていうか慌てていろいろやってみたが、結局開きなおすときれいに 部品化けというか 部品が?? で表示されない問題は解消した。
]]>最近、マイコン選定において変化がでてきた。
以前はまず ルネサス、BLEならば nordic 、低消費電力ものであれば MSP430F を選定することが多かった。
PICマイコンはあまり好きではないけれど、一部PICマイコン大好きなひとがいたり、引き継いだ案件のプロセッサがPICだったりすることがおおいので、まあ、PICマイコンもありだ。
ここにきて STM32使いたいなとおもったりAVRマイコンだったりする。
話は脇道だけど AVRマイコン Atmel といわれたり いろいろと呼び名があるようで、検索するときなども戸惑ってしまうことがある。
さて、なぜAVRかというと、動作温度範囲100℃超えるものが比較的低価格であるからた。また価格優先で選定するとAVRマイコンがずらりと並んだりする。
最近は量産に向けた話が増えてきて、数千個みたいな話になってくると商社を通して購入ということもあるけど、ルネサスなどは簡単には売ってくれない印象があるが、 PICマイコンやAVRの商社さんは結構気軽に販売してくれる。(あくまで零細な弊社から見た印象。)
シンプルなシステムだったら AVRでいいかなと
JUGEMテーマ:組み込み開発
]]>
三菱のサーボアンプはなかなか高機能= レジスタが多く制御するには結構手間がかかった。
それはさておき、電源投入直後サーボOFFすると通信できるが、サーボONすると途端に通信が不安定になる症状がでた。
RS485ラインを確認すると以下のようなオシロ画面になった。
サーボOFF状態
サーボON状態
通信レートは 115.2KBps 。このままではノイズにより通信エラーが多発して、通信がままならなくなる。
これも通信ケーブルを変えたりすると改善することもある。
以下のように コモンモードチョークコイルを入れることにより改善した。
これでほとんどエラーが出ることがなくなった。
以下に回路例を示す。
RS485用のコモンモードチョークコイルというのは検索しても出てこない。通信速度にもよるけどCAN用のものを使えば大丈夫であろう。
今回評価したものは DLW42SH101XP2 というもので、そのほかACT45B-510-2PもCANによく使われているので、有効と思われる。
もっと遅い通信速度の場合で、乗ってくるノイズも低い場合にはサイズが大きなものになってくるだろう。
コモンモードチョークコイルだとちょっとコストがということであれば抵抗とコンデンサでLPFを組んでも効果がある。
除去するノイズの周波数にもよるけど、今回は 10Ω の抵抗と 0.01uF のコンデンサで組んで カットオフ周波数が 1.5MHz程度。これで三菱のサーボアンプには効果があった。
]]>
JUGEMテーマ:組み込み開発
安くて小さいのでよく使っている RB521S30T1G について
二つのバッテリーのプラスにそれぞれ RB521S30T1G をいれてVCCにするような回路を作った。
バッテリーは LIPO バッテリーを使っている。
両方のバッテリーを接続すればVCCに電圧が流れるが、片側のバッテリーを外すとVCCに電圧が現れないことがあった。
詳しく調べたいが、時間がないので、とりあえず記録だけしておく。
]]>
[Python3] KiCAD の lib や schのWire部分をD2CADのLineとPinに変換する
https://github.com/reiwyt33/py_conv_kicad_to_d2cad
JUGEMテーマ:組み込み開発
CS+でなくてもほとんどのの統合開発環境でできると思うけど プロジェクトにはビルドに関係ないファイルも登録できる。
こんなふうに
PDFとか word,Excel,Text 等なんでも登録、ダブルクリックするとそのファイルを開くことができる。
ビルドに関係しないファイルは無視してくれる。
マイコンやデバイスの仕様書、回路図、部品表や仕様書など登録するようにしている。
地味に便利です。
]]>
JUGEMテーマ:電子工作
Facebookでも公開したけど、こちらにも載せておきます。
ACアダプタを電源とする装置があり、製品検査用にDCの消費電流をしたいと思った。
DMMだったりテスターで測定する方法もあるけれど、毎回配線するのが面倒だ。
精度に関しても 良品との比較ができればいいので精度は問題にしない。
秋月電子でDE-2645-05RR という デジタルメーターがあったのでこれを使うことにする。
電源は4.5V〜24V となっていて、配線により 測定したい電源からもらう方法と別電源からもらう方法がある。
もちろん、別電源にすると面倒が多いので 測定対象の電源からもらうこととする。
この時点で 測定する電源電圧は 4.5V〜24Vに絞られてしまうが、範囲外の電圧で測定することも少ないし、電源が無いことのメリットの方が大きい。
両端子はACアダプタにしているので、この電流電圧計のつけ外しが容易なのもよい。
配線図を以下に示す。
簡単な配線だけど、いざ設計しようとすると結構混乱する。
DCジャック、DCプラグ (要はオスメス)を間違えないように注意する。
◆DE-2645-05RRのスペック (秋月電子からの転載)
・表示:3桁赤色LED×2段、文字高さ7.1mm
・動作電源電圧:DC4.5V~24V(消費電流:約20mA)
・直流電圧測定範囲:0~100V(99.9V)、測定誤差:±0.5%±2dgt、分解能0.1V
・直流電流測定範囲:0~1A(999mA)、測定誤差:±1%±3dgt、分解能1mA
・オーバーレベル(レンジ):OL表示(電圧:100V超過時/電流:1A超過時)
OL表示が出た場合には、安全のため直ちに測定を中止してください。
・使用温度/湿度範囲:-10~+55℃/80%以下(結露なきこと)
・分流(シャント)抵抗:50mΩ(0.05Ω)、A+とCOM間に入っています。
・外形寸法:31(W)×50(L)×20(H)mm ・パネルカット寸法:26.5×45.5mm
・質量:100g(ケーブルを除く)
DE-2645-02 にすると
測定電流の範囲が 0〜9.99Aになる。配線は同じ
]]>
折角なのでワットチェッカーで各メモリの消費電力を測ってみたいと思う。
MAXを5とする。それから 4,3,2,1 と切り替えていく。
MAX 5: 13W
4:12W
かなり回転数が落ちるように感じるが、
3:8W 今にも止まりそうな、弱弱しい感じ
2:0W
ここで止まった。
1:当然0W
パワーコントローラー無し:13W パワーコントローラのロスはない模様。
回転数はかなり変わるように感じるけど、消費電力についてはそれほど下がっていないように感じる。
省エネ目的でパワーコントローラーを使ってもあまり意味がないようだ。
]]>
基板発注で金めっき指定をする場合、いままではミクロンが多かったけど、中国などの基板メーカーだと マイクロインチになる。どうも感覚的にわかりにくかったので表にしてみた
マイクロインチ(U") |
ミクロンμm |
---|---|
1 | 0.025 |
2 | 0.05 |
3 | 0.08 |
5 | 0.13 |
10 | 0.25 |
15 | 0.38 |
20 | 0.51 |
25 | 0.63 |
30 | 0.76 |
JUGEMテーマ:組み込み開発
]]>
JUGEMテーマ:組み込み開発
随分前に開発して、この度ファームの修正をした基板。謎の暴走が頻発してしばらくハマった。
原因はマルチタスクOSのスタックがあふれてて隣のタスクのスタック領域を破壊していたからだった。
メモリがたっぷりあるマイコンシステムであれば、十分なタスクを用意すればいいだけの話だけど 15タスク動いていてメモリもかなりカツカツだったので、ひとつあたりのスタックが 300バイト程度しか確保していなかった。
今回の変更で関数の引数が増えたり、コールする関数の深さがましていたので、いままで大丈夫だったスタックが溢れてしまっていた。
このシステムは uItronライクの smalight-osを使っているので、この例だと
knl_tcbsp を参照すると各タスクのスタック開始位置を確認できるので、これを元にスタックの確認をする。
knl_tcbsp[].sp の値を確認して、そこのメモリを参照する。
一般的には起動時にメモリを初期化して 0にしてあるので、どこまでスタックを使っているかは、0以外のところがどこまで伸びているかで一目瞭然
たとえば TASK7 .. はknl_tcbsp[6].spなので 0x21a0 で、その上を確認すれば、どこまでスタックを使っているかはおおよそわかる。
]]>
いままでは何十年も使ってきたエディタがあるけど、入力補完もなくてもう限界って感じになってきたので VSCodeに乗り換えたいと考えた。
Renesas CS+ で使いたいんだけど、ほかに記事が出ているのが Visual Studio Codeから コンパイルしてデバッグして、Flash書き換えしてとか言う記事だ。ちがうんだよ、僕の求めている物は!CS+でファイルをクリックするとVSCodeで開ければいいんだということで、以下のように設定したら CS+からVSCodeでファイルを開けるようになった
ツール→オプションで
外部テキストエディタを選択
◆外部テキストエディタのパスは以下の通り
C:¥Users¥user¥AppData¥Local¥Programs¥Microsoft VS Code¥Code.exe
userのところは PCによって違うだろう。
◆起動オプション
-r %FilePath%
-rを付けることによって いままで開いていたファイルがあればそこに移動するらしい
◆起動オプション(行指定あり)
-g -r %FilePath%:%Line%
-g でファイルの行指定ができる。
]]>
JUGEMテーマ:組み込み開発
具体的な型番はちょっと差し控えますが、最近引っ張りなどの耐久性向上を目的として 表面実装の端子を持っている部品でスルーホールで補強するようなコネクタが出てきた。
こちらで基板設計するときには 機械実装で そのコネクタの面実装の端子部分を実装して、あとからスルーホール部分を手でハンダするかと思っていました。ところが違っていて、スルーホール部分も メタルマスクの孔を用意しておいて、リフローするとちょうどいい具合にスルーホールにハンダが逃げるそうだ。
メーカーから実装するための推奨メタルマスクパターンの通りにメタルマスクを用意することが必要。
]]>JUGEMテーマ:組み込み開発
nRFが搭載されている太陽誘電の小さいタイプのBLEモジュールではIOが15本しかない。そのうち P0.05〜P0.08の4本はUARTに使いたいし、P0.21はリセット、P0.00,P0,01は水晶振動子付けたいこともあるので、8本になってしまう。そうなると リセット端子を使っていなければ解放したい。
Nordic nRFシリーズの評価ボードや太陽誘電の評価ボードでは nRFの P0.21にリセット機能がアサインされている。
当然GPIOとして使うことはできない。
いままではリセット端子としてそっとしておいたけど、そうもいっていられなくなったので、これをGPIOとして使うこととする。
◆コンパイルオプションの変更
ArmGCCであれば
Makefileの次の行を外す
CFLAGS += -DCONFIG_GPIO_AS_PINRESET
Keil では C/C++の Preprocessor Symbols の Define でDCONFIG_GPIO_AS_PINRESETを削除する。
◆全消去から書き込み
P0.21をリセット端子にするかどうかは UICRに設定されている。いったん書き込まれるとアプリケーションを書き換えるだけではこの領域は書き換わらない.
nRFgoStudioで Erase all してから Softdeviceの書き込み、Program Applicationの書き込みを行う。
]]>
に小記事を書きました。
7-4 画面表示デバイス 16+α
で表示デバイスの中でも主にLCDについて語っております。
記念すべき512号ということでゴールドの特別な表紙となっておりまして、組み込み技術に必要な知識が 2〜3ページにまとめられています。ざっと眺めているだけでも勉強になります。
ぜひお買い求めください。
CQ出版のページです。CQ出版では電子書籍版も購入できます。
https://interface.cqpub.co.jp/magazine/202002/
(amazonに飛びます。)
]]>JUGEMテーマ:組み込み開発
実装してくれる会社から抵抗値が違うのではという連絡が入った。
487KΩなのに 抵抗表記が 670 とある。
送られてきた写真はこんな感じであった。
Yageoの抵抗なんですが 67 Ωなんて抵抗値は普通に販売していないし、670というよりは 67D と読める。
よくよく仕様書を確認してみると、マーキングは以下の四種類あるらしい。
赤く記したところには 10C が 12.4KΩとあり、これは EIA-96 marking method とある。
この表記ではないかと思い、EIA-96 marking method でググるといくつかそれらしい解説のページがあった。
参考サイト・・
http://www.resistorguide.com/
これに従うと
67 →487
D → 1000
なので 487KΩとなる。
いままで知らなかったがこのような抵抗表記がある。無表記の抵抗も増えてきた。それに比べたらまだいいが、誠にややこしい。
]]>
JUGEMテーマ:電子工作
自分のためにメモ
HOZAN P-656 ピンセット
HOZAN P-845 ピンセットグリップ
]]>
SAKURA.IOのダッシュボードでモジュールを登録しようと試みるがどうにもうまくいかない。
already retired
というエラーが出て登録できない。
退職したって何だろう。。
とおもって SAKURAに問い合わせしたところ
「登録解除から3か月以上が経過しているよう
との返事。
友達は一度試して使わなくなったのであげるということでもらったけど、一度登録解除したのち3か月たつと再登録できなくなるようだ。
sakura.ioのFAQに該当するものがあるので、コピペしておく。
モジュールには登録期限がありますか?ございます。さくらの通信モジュール(LTE)の場合は以下のとおりです。
製造月の確認方法は、前項「通信モジュールの製造年月を確認する方法はありますか?」をご確認ください。 |
※最近購入したさくらの通信モジュールは初期登録期限の表示があります。
]]>
JUGEMテーマ:コンピュータ
TOSHIBA dynabook T554 のキーボード 'p' が 反応しないことがでてきた。
PCの再起動でもおさまらない、ぎゅーって押すと反応したりする。これは 物理的なものかと思ってキーボード交換することとした。
ヤフオク!で中古を1200円で落札・・送料込みでも 2000円程度・・
こんなに安くていいのって感じだったけど、落札後入金したらすぐに送ってくれた。
交換は意外と簡単で、キーボード裏に2本ネジ穴があり、PCの底面から止めてあるだけだった。
これを外して、キーボード周辺のツメを 薄いヘラかマイナスドライバで外していったら何とかなった。
T554 キーボード交換 で検索すれば出てくるので参照してください。
写真は交換後の古いキーボード。。
確かに Pの背面あたりで白い粉が浮いているし、周辺もさびている。
なにかこぼした後ですかね。
交換したキーボードはフレキコネクタが透明だった。多少バージョンが違うのだろう。
交換したらよりタッチがかなり良くなった。
]]>
こちらで aliexpressに注文した LCDが来たので早速付けてみた。
型番は LP156WF6
結果として無事に映った。ただそれだけの記事。
あとは 写真を適当に貼り付けていく。参考になれば幸いです。
送料入れて 48ドル。
普通郵便扱いで郵便局が配達してくれた。
MB169B+を購入した時は 3万円オーバー
安くなった今でも 2万円こえていたので 48ドルで修理できたらいいのではないか
割れたLCDと比較する。細部は違うが外形は変わらない。
コネクタに取っ手がついている。ここだけ迷った。
PCに繋げたら 映った!
後はフロントパネルをしめるだけ。
◆2019/10/21追記
パネルをはめなければ動くが、はめると動かないことが起きた。
一旦分解して調査することとする。
破損したパネルと比較するとテープが張ってある箇所がある。
ここには 制御基板がある。むき出しだとアルミフレームが基板の部品と当たってショートするのだろう。
そこで、絶縁のためにテープを貼った。
これで、フロントパネルを付けても動くようになった。
薄さを追求しているためにこのようにしているのだろうけど、感覚が違うものだなぁと感心する。
それにしても、基板が壊れなくてよかった。。
]]>
取り急ぎ モバイルモニターは購入したが、MB169B+も諦めきれない。中のLCDモジュールを替えたらいけるのではないかということで、分解してみた。
分解はフロントパネルの前を引っ張るとよい。LCDの内側からフロントパネルのフチを引っ張ると結構簡単に取れた。とくに粘着テープなどは使われていない。
小さいプラスネジが4本でとまっているので外して、裏返してみた。
かなり細い電線でつながっているので、注意深くコネクタを外してみる。
型番は LP156WF6-SPH3
SPH3はロット番号ではないかと思う。
Aliexpress で検索すると出てくる。
なるべく SPH3に近い型番を探して購入してみる。
時間がかかってもいいので送料無料のパネルを選定して購入してみた。
次はLCDパネルが届いたら記事にしたい。
]]>高田馬場駅のすぐそばの4階 (エレベータ無し!)です。
ここから駅の電車の行き来は眺めていて飽きませんねぇ。
]]>
といっても 非常に小規模なもので、西東京市で 大日本宇宙航空開発研究機関株式会社 を起業された 澤社長が実物のロケットや飛行のシミュレーション、データなどを交えて説明していた。
ロケットというと 小さいのでもホリエモンロケットを想像するけど、もっともっと小さくて 2mぐらいの小さくて原始的なロケットの話だ。
日本では飛行体の規制が厳しくて許可をとるのも一苦労だけど、アメリカだと ロケットで町おこししているようなところもあり、人も何もない広大な砂漠があるので、比較的低予算で打ち上げられるそうだ。
どこまでの高度まで打ちあがったかが一つの基準になるそうだ。
最近は 電子制御技術が進んできて、以前よりも格段に高く打ち上げられるようになったとのこと
実際の基板を見せてもらった。外観だけでみると 小型のマイコンに GPS,加速度センサー、ジャイロセンサー ブザー、発火装置などが組み込まれているだけのようです。 Arduino 等でオープンなソースも発表されている。
西東京発のロケット。これから仲間を増やして盛り上げていくそうだ。
事業もうまく軌道に乗るといいと思った。
]]>
JUGEMテーマ:組み込み開発
最近 Xport のカスタマイズをする必要に迫られた。
ちょっと特殊な開発環境でもあるので、メモしておく
XPORT は ご存じの人が多いと思うけど、LANのコネクタのような形状をしていて、LANとシリアル変換できる装置だ。
シリアルポートさえあれば非力なマイコンからでも制御できるので、産業用の装置などに採用されている。
代わりとなる製品で有名なものはない。中華の製品でそっくりなのがあるけど、評価はまだしていない。
XPORTが嫌ならば、自分で LANのICをたたかないといけないし、MACアドレスをどうするかという問題もあり、そこまで速度もいらないし開発費もかけられないということであれば、これしかないであろう。微妙にバージョンアップしているようだけどかなりの
ロングセラーといえる。
当初 Xportのカスタマイズをするために Xportの販売代理店にいろいろと相談した。
いろいろと勘違い思い違いもあったが、私が勘違いするということはほかの人も勘違いするだろうとのことで、参考になれば幸いです。ただ、私も初心者なので間違えるていることもあるかもしれない。間違いに気づいたら後から修正します。
◆Xportのカスタマイズは 販売代理店が提供する
実は XPORTは購入時に入れてあるアプリケーションを入れ替えることができる。RS485対応にしたりと、あまり数は多くないけど、いくつかのアプリケーションがLantronixで公開されている。
導入してからもしばらくはLantronixのプログラムをカスタマイズするのかと思いこんでした。
しかし、説明はすべて日本語だし、サンプルプログラムを走らせてみると 販売代理店の名前やロゴが随所に出てくる。
そう、カスタマイズの開発環境は 販売代理店が開発したもののようだ。
そのため Webの設定画面も違う。
最初はがっかりしたけど、資料もサポートも日本語なので、これはこれでよいと思う。質問すればたいてい翌日には回答が得られる。
購入したXPORT05とはインストールされているブートローダーが違う。ブートローダーが違うということは アプリケーションだけ変更するということはできない。
このブートローダーはシリアル経由でダウンロードするため、基板に実装する前にブートローダーとアプリケーションをダウンロードしなくてはならない。あるいは 実装する基板に シリアル通信ポートを切り替えられるようにして DeviceInstallerやターミナルソフトでアクセスできるようにしておかなければならない。
一旦ブートローダーとDeviceInstallerに対応したアプリケーションを入れてしまえば DeviceInstallerでプログラムを更新することができる。(ハングアップしていなければ)
◆開発環境がめちゃ古い
開発環境は Borland C++ だったりする。また リアルタイムOSとして uItron4.0を採用している。
CygwinでCUIで開発することとなる。
コンパイラが 16ビットアプリなので、 XPで動く。
Window7では Vertial PCとして XPモードがあるので、これで開発することができる。
Window10 では無理っぽいです。
当然 eclipseみたいな統合開発環境はない。自分でなんとかするか、 CUIで頑張ることとなる。
Window7 で開発する場合、64ビットより 32ビットのほうが良いのではないかと思う。
TFTPソフトを使ってアプリの更新ができるけど、 64ビットではうまくファイルの受け渡しができなかった。しかたなく32ビットのWindows7のPCを引っ張り出してためしたらすんなりうまくいった。
また、Web上を検索しても Xportをカスタマイズしたブログなどの記事は見つからない。
頼りは代理店の技術サポートだけになる。先人の試行錯誤など記事があれば参考になるのにと思う。
まあ、ほとんどの人は標準で使っていると推測される。標準の XPORTの完成度は高いともいえる。
windows7 のサポート終了も間近となっているが、その後どうするのかちょっと心配。
]]>
JUGEMテーマ:組み込み開発
RX600 シリーズ CAN アプリケーションプログラミングインタフェース
an-r01an0339ju0205-rx-can
R01AN0339JU0205
Rev.2.05
2018.02.07
にて。。
RX63 の CANのマイコンで不具合があります。RX62系はありません。
RX630 で 以下のようにCAN0のポートを PD1,PD2にしたところ 動作しませんでした。
config_r_can_rapi.h
#define CAN0_RX_PORT PD2
#define CAN0_TX_PORT PD1
実機でデバッグ中にレジスタを見てみると CAN0のレジスタに書き込みされていませんでした。
原因を探ったところ以下のところに不具合がありました。
r_can_api.h
78行目から
/******************************************************************************
Definitions Used to make the port pin selection logic work
******************************************************************************/
#define P14 14
#define P15 15
#define P32 32
#define P33 33
#define P54 54
#define P55 55
#define P66 66
#define P67 67
とあります、 PD1,PD2の設定がありません。
PD1,PD2の設定がないところだと 以下のような記述の場合
#if (CAN0_RX_PORT) && (CAN0_RX_PORT == P33)
#elif (CAN0_RX_PORT) && (CAN0_RX_PORT == PD2 ) ここを有効としたい #else しかしここが有効となっていた #endif |
PD2が #defineされていないので #else以下が有効となってしまいました。
すなわち、 ポートが設定されていないので CANは使わないという解釈がされていました。
そこで
#define PD2 132
#define PD1 132
と追加したところ 動作するようになりました。
PD2,PD1に設定する値は 他のポート設定と重複しなければOKです。
今回 北斗電子のHRSBRX630Bで開発していました。
HRSBRX630B は PD2,PD1をCANのポートとして 回路設計しています。同じようにはまることがありませんように。
]]>
JUGEMテーマ:組み込み開発
いままで個人事業として活動してきましたが、活動内容が大きくなってきたこともあり、法人化することとなりました。
新組織名
令和元年5月8日設立 !
ということで、新しい時代の幕開けに 新しい組織となりました。
このブログは 今まで通り継続していくこととなります。
会社設立にともない ビーコンの業務はすべて 新会社が引き継ぎます。
]]>
JUGEMテーマ:組み込み開発
nRF52でADCをSPI通信で動かしているが、一点問題がでてきた。MISOピン(マイコンから見ると受信データ)のプルアップをしていないため、SSピンが LOでないときに MISO ピンがオープンになってしまう。
nRF5xのIOポートは個別に プルアップ、プルダウン等の設定にできるのだけど、 Nordicから提供されているSPIのライブラリではMISOピンが プルアップ設定になっていないようだ。
ライブラリを活用しているので、ライブラリで提供されている関数で行うのが美しい。
かといって、MISOをプルアップにするオプションは見当たらなかった。
そこで、 ペリフェラルの設定を直接変えることとした。
青文字が追加した部分。
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.ss_pin = SPIM0_SS_PIN;
spi_config.miso_pin = SPIM0_MISO_PIN;
spi_config.mosi_pin = SPIM0_MOSI_PIN;
spi_config.sck_pin = SPIM0_SCK_PIN;
spi_config.frequency = NRF_DRV_SPI_FREQ_250K;
spi_config.mode = NRF_DRV_SPI_MODE_1;
APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, spi_event_handler,NULL));
NRF_P0->PIN_CNF[SPIM0_MISO_PIN] |= (GPIO_PIN_CNF_PULL_Pullup<<GPIO_PIN_CNF_PULL_Pos);
これにより、プルアップが効いて、SSがLO以外の時でも オープンになる事はなくなった。
]]>
先日ノイズのトラブルがあった。
弊社で作った電子回路の ADが異常な値を表示するとのこと。
何度か現場に足を運んだが、ある程度はよくなったが、どうも原因が複数あるようで、自力解決は時間がかかりそうだなという判断になった。
そこで、以前セミナーで講師を務めていた方が開設するノイズコンサルの会社を思い出して連絡してみた。
その会社は SSノイズラボラトリ という会社で、メールで問い合わせたら数日後に回答をいただいた。
SSノイズラボラトリ
社長さんはもともとは大手の電機メーカーで、自社の製品が使われている現場の電気的なトラブル対応をしていたそうだ。大学の講師などもしているらしい。
相談すると現場に来てくれるとのことで、同行してもらい、現場でノイズの観測や 発生源、経路の特定と仮処置をしていただいた。
最初は結構悩んでいたが、状況が確認できると、原因や対処について説明してもらった。
自社製品や接続先の装置の問題点、配線の問題などを指摘してもらった。
結構お忙しいみたいなのだが、今回はたまたま同行していただきラッキーだった。
EMSなどのノイズ試験などにも相談に乗ってくれるようだ。
ノイズのことで悩んでいたら、こういう専門家に頼るのが一番かなと思った。
JUGEMテーマ:組み込み開発
]]>