2024年12月4日水曜日

NKKのJBシリーズのスイッチを廃棄

 NKKのJBシリーズというスイッチはご存じでしょうか?
一言で言うなら、照光式のタクトSWという代物。

 キートップは別部品になっているので、好みで選択可能。
スイッチの高さやクリック感強度もバリエーション有ります。

NKK製ですから信頼性は抜群で、見た目も良いと、
結構お気に入りの製品なのですが、難点は やや高価という点。
NKK製ですから やむを得ないとは思いますが、
そのせいで むやみに使うわけにいかず、温存ぎみの製品でした。

そんなわけで、以前購入した分に手を付けず、しばらく経っていましたが、
先日ついに出番が到来。

いざ使おうと引っ張り出したわけですが・・・・・・

あれ?なんか動きが変!!

ボタンを押した感触がおかしいのです。

どうやらスイッチ内部が経年劣化してしまったようで、
クリック感を出す部分に問題が生じてる模様。

その為、固着して全く動かなかったり、
動いても正常なストローク量が出ず、クリック感も出ない、
なんていう製品がボロボロ出てきました。(;;

JBシリーズは操作力(=ボタンを押す際の強さ)が2種類あって、
一般形と高荷重型とが存在します。

うちにも両方有ったのですが、一般形は全滅!
高荷重型は一部NGという結果。

あと、たまたまだと思うのですが、緑発光品はほぼNGで、
それに比べると他の色の物はNG率が低かったです。
同時期に購入したはずなんだけどなぁ・・・・・

 

分解・修復というわけにもいかないので、NG品は泣く泣く廃棄。
数千円相当がゴミになったというのは ちょっと悲しいですね。
幸いキートップは無関係なので、廃棄はスイッチ本体だけなのが助かります。

2024年11月30日土曜日

PICのEUSARTの送信バッファー

 RS-485等の半二重通信線にてデーターを送受する際は、
トランシーバーICの送受切替を行う必要がありますね。

細かい事を言ってしまえば、レシーバーはイネーブルのままでも構わないので、
厳密に制御が必要なのはドライバーの方です。

ではそのドライバーの制御タイミングは どうするかと言いますと、
他の端末がデーター送信を行ってない事を確認した上で、
シリアルポートからデーター送出する直前にドライバーをONにし、
データー送出を終わったら速やかにドライバーをOFFにする、
という至極簡単な動作。

この動作中で問題になるとしたら、データー送出完了をどう判断するか。
これをミスると、送出データーが欠如してしまう事態が発生しちゃったり、
無駄にドライバーがONしたままになって、コンフリクトを起こしたりします。 

 

PICマイコンにてこの辺の判断を行うのに使えそうなのが、TRMTビット。
送信バッファーの空き状態を表すビットだそうな。

単純に考えるなら、TRMTビットを見て、送信バッファーが空になったなら、
直ちにドライバーをOFFにすれば良さそう。

しかし本当にそのタイミングで支障が無いのか?
ちょっと気になったので調べてみることにしました。

使ったPICは12F1822で、トランシーバーICとしてLT1785が繋がってます。
今回、差動信号線までは見ないので、トランシーバーICは無くてもOKなのですが(笑)

ということで早速見てみたのが以下の波形。









 

ボーレートは約230kbpsです。
PICのポート操作のレスポンスを良くする為、MAXの32MHzで動かしてます。

送信バッファーエンプティモニターはTRMTビットの状態表示です。

これを見ると、EUSARTからシリアルデーターを送出完了次第、
TRMTビットが変化していますね。
これならばTRMTビットをドライバーON/OFFの参考にしても問題無さそうです。

上記の波形ではデーター送出が完了してからドライバーがOFFになるまで、
約1msくらい間がありますが、これはわざと遅延を入れてる為です。

 安全を見てタイミングに余裕を取っていたのですが、
実際のところ不要の様ですね。

2024年11月26日火曜日

外気温モニターの拡張 その5

 かなり間が空いてしまいましたが、久しぶりに「新型外気温モニター」の話です。

今月は  もう暇になってしまった 効率的に仕事を進めた結果 手が空いたので、
外気温モニターを進めることにしました。

先に書いようにハードは一応出来たので、次はファームウェアです。

ソフトウェア視点だと、このシステムは下記の様な構造になります。




これだとPICマイコンの区別が しづらいので、以下の様に番号を付けます。




この3個のPICマイコンそれぞれにファームが必要なわけですが、
③は「かんたんスマートモニター」のメインチップですので、
「かんたんスマートモニター」のファーム変更という内容に。
これについては当記事がでは特に触れない方向で行きます。

①と②が「新型外気温モニター」様のPICマイコンで、
RS-422とSPI信号の変換を行っています。

さて、「新型外気温モニター」に載ってるセンサーモジュールBME280は
インテリジェントなユニットですので、アナログセンサーの様に
電源を投入すればダラダラと測定値が読めるわけではありません。
まず、センサーの初期設定が必要となります。
その後、ハンドシェイク手順に基づいて測定値を読み出すことになります。

ではそのハンドシェイク手順の制御を誰が行うか?が1つのポイントになります。

3つ有るPICマイコンの内、どれかが行うわけですが、
どれに任せるかは設計思想に関わる話になります。

①に任せるケース
「外気温モニター」内のPICマイコンがセンサーの面倒を全てみるパターンです。
この場合、RS-422線を通るのが測定データーのみとなるので、
通信線のプロトコル設計が非常に簡単になります。
しかしながら、センサーに対するアクセス内容に変更が生じた場合、
「外気温モニター」内のPICマイコンのファーム変更が必要となるわけで、
ファームを「かんたんスマートモニター」側から書き換えられる仕組みを
用意していなかった場合、アフターファローが非常に面倒なことになります。

②に任せるケース
これは選択されることは無いと思われます。
メリットが思い浮かびません。(笑)

③に任せるケース
これは「かんたんスマートモニター」のメインマイコンにて、
BME280の制御を全て行うというパターンです。
「かんたんスマートモニター」自体はアクセスが容易な場所に設置されるので、
BME280へのアクセス制御に変更が生じても、割りと簡単に書き換えができます。
しかしながらRS-422の通信に、それら全てを折り込む必要があるので、
通信線のプロトコル設計が一番面倒になります。
RS-422はSPIに比べ通信速度も遅いので、それも考慮する必要があります。


ということで、上記をどうするか、湯舟に浸かりながら考えてましたが(笑)、
今回は①に任せる方法を採用することにいたします。

理由は大きく2つ。
①RS-422線の通信プロトコルが非常に簡略ができる。

BME280の面倒を①のPICが見るならば、「かんたんスマートモニター」から
「外気温モニターユニット」へ送るデーターはほぼ無くせます。
データー垂れ流し式にするならば、皆無にすることも可能かと。

「外気温モニターユニット」から「かんたんスマートモニター」へ行くデーターも
測定値だけで済むので、最低限の簡単なデーター形式にできます。

②「外気温モニターユニット」単体で完結する

どういう意味かと言いますと、電源を投入すれば、
RS-422で簡単に測定値が読めるユニットが出来上がる、という事なのです。
これならば、「かんたんスマートモニター」用と限らず、汎用性が出るわけですね。

PIC②やPIC③で制御する方式だと汎用性は非常に低くなってしまい、
事実上「かんたんスマートモニター」向け専用ユニットになってしまいます。

ユニットとして単体動作が可能ならば、RS-422/RS-232の変換アダプター経由で、
パソコンからアクセス可能になるので、開発時の効率も格段に上がります。
デバッグ時、「かんたんスマートモニター」経由でのアクセス必須というのは、
結構面倒な話になるんですね。


ということで、まずはちまちまとPIC①のファームから書いていきましょうかね。

2024年11月23日土曜日

やらかし発覚

 前の記事に続いて、また失敗話とか縁起悪いけど勘弁plz

某氏向けのハードで設計ミスに気付いたもんで、
急遽戻してもらって改修することにした話です。

PICマイコンからTTLロジックである7438を押すと言う回路なのですが、
間に別基板が噛むこともありまして、うっかり下記の様になっちゃいました。





 

1つの信号線上に3.3Vのプルアップと5Vのプルアップが同居しちゃってます。
これは当然マズいわけですね。

マイコン基板は元々別目的で作ったものを流用してます。
この接続ならば本来、マイコン基板上で3.3Vプルアップは行わないんですね。

このマイコン基板を使うとしても、本来ならば以下の様な設計にしなきゃなりません。





 

さてどう修正するかが悩みどころ。
本来ならば上図の様に換えるのが筋ですが、
ドライバー基板上には3.3Vの電源が存在しません!!
つまり3.3Vのレギュレーターから用意する必要があるわけです。

う~~ん、さすがにそれは大がかりになっちゃうなぁと・・・・・
そこで閃いたのが下記の方法。






 

プルダウン抵抗を追加し、見た目3.3Vでプルアップされてる様にするものです。
これなら改造も少なくて済むので、この方針で行くことに。

3.3Vということならば、18KΩではなく20KΩでプルダウンすれば、
3.33…V相当になるので近くなりますが、
3.3Vよりも高くなるのは避けたいわけでして、
抵抗の誤差も考慮すると若干低い電圧にしたいところ。
そこで18KΩにしました。
これだと約3.21V相当という値になりますので、
抵抗の誤差を加味しても3.3Vを大幅に超過することはないでしょう。


さてでは実際の改修作業ですが、ドライバー基板内のプルアップ抵抗は
実際にSIP型の抵抗アレーなんですね。
それにちまちまプルダウン抵抗を1本ずつ付けていくのは難儀です。
ですので18KΩの抵抗アレーで一気にプルダウンすることにしましょう。

しかしここで問題が!!

18KΩの抵抗アレーって、入手性が悪いんですね。
さてどうしたものか・・・・・・
海外から引っ張るか?
とか考えていたら、またまた閃きました。

以前「つくまた」で頒布した抵抗アレーキットを使えばいいんじゃね?

チップ抵抗さえあれば、任意の抵抗アレーを自作できるのが強み。

ということで作った抵抗アレーが下記。









 

8連タイプはオリジナルのキットのままですが、
4連タイプは9連用キットをカットして作っています。
一応こういう使い方も想定していました。


抵抗アレーが用意できたので、いざ実装。









 

こんな感じで無事改造完了です。
基板にアセテートテープを貼り、その上に抵抗アレーを置いてます。
GNDをスズメッキ線で引っ張ってきてるのはご容赦という感じ。

2024年11月17日日曜日

いやぁ、失敗失敗

 先日の15日の晩、私が主催の「基板作成パワーアップ1」を開催。
数人しか来て頂けなかったらどうしようと心配してましたが、
結果的に15人近い参加者が集まりまして、
会場のキャパを考慮すると大成功という結果でした。

何より、この内容に対する需要の存在を実感できたのが大きかったです。

と・こ・ろが、最初の発表者である私が いきなりのチョンボ。
ホワイトボードのPC上の基板CADのハイブリット形式の予定でしたが、
ノートPCの画面が会場の大型TVに映らない!!
これでは基板CADを使った説明ができないわけです。

急遽、ホワイドボードのみで発表を行いましたが、
かなり端折った内容になってしまいまして、ちとガックリ。

次回は ちゃんとした内容で発表したいと決意しておりますが、
そもそもなんでPCの画面が映らなかったのか?
帰宅後に気づいた(忘れてた?)のですが、
そのノートPC、HDMI出力を使う際はキー操作が必要なのでした!

他のノートPCはHDMIケーブルを挿せば自動で対応してくれるので、
全く思いもよりませんでした。

まぁそんなわけで、ノートPCの故障というわけではなかったので、
次回は大丈夫!(のはず)


ちなみに次回ですが、来年の2月くらいで考えております。
今回は会場費や軽食費等、全て自腹を切ったわけですが、
次回は某社が会場を提供して頂けそうな雰囲気。
大変ありがたいですね。

2024年10月19日土曜日

meviyからアルミ板金到着

 先月、meviyにお試しで発注してたアルミの板金が到着しました。


 

 

 

 

 

 

 

何がお試しだったかと言いますと、右側の箱形状は溶接品なのです。

 


 







 

 

 

ちと解りづらいかもしれませんが、縦に走ってる曲げ角にビートが見えます。
ここが溶接部です。
横に走ってる曲げ角も研磨痕が有るので溶接してる様にも見えますが、
ここは単なる曲げ加工です。





内側から見ると解り易いかな?


 

 

 

 

 

う~ん、凄いですね、アルミの溶接品ですよ。
こんなのが1個からお手軽価格で手に入るとは・・・・・
meviy恐るべし!!


使ってる板はヘアーラインが入ってる物でした。
アルミの溶接品の場合、ヘアーライン指定は不可能なので、
ヘアーライン無しの板が使われる可能性も有りそうです。

 

溶接部も含め、角部を研磨しているせいで、表面に結構研磨痕が残っていますね。
一応これでも体裁面に指定してあるのですが、仕方ないところかと。

 見栄えが問題になるケースでは表面仕上げ加工が必要になるかと。
でもmeviyの標準システムではオプションが用意されていないので、
担当者見積で相談することになると思います。
ただ、アルミの表面仕上げ加工は結構シビアなので、
それなりの費用を覚悟する必要があるかと。

材質や溶接の有無も含め、総合的に判断する必要があるでしょう。


さて、この板金ですが、新型の外気温モニター用に用意したもの。
基板は既に実装済みなので、早速組んでみます。


 

 

 

六角スペーサーを立てて基板を取付

 

 

 

 


 

 

 

そしてカバーを被せて完成

 

 







 

 

カバーと基板が当たってる様に見えますが、ちゃんと隙間空いてます(笑)


これで完成!!と思いきや、実は見えてる基板部にもカバーが付くんです。

ルーバー付きのカバーでして、板金では製作できないので、
3Dプリンターにて作製する予定でしたが、すっかり忘れてました。 テヘ

実際、基板上のPICマイコンのファームも未完成なので、
実働までは まだ先が長いです。


2024年9月23日月曜日

PICマイコンの在庫品種で唸ってます

 昔から愛用しているPICマイコンは、膨大なバリエーションを誇っていますね。
それがPICマイコンの売りの1つであると言えますが、
同時に扱いにくさの原因の1つとも言えるます。
一見さんには どれを選択して良いのか、迷う事間違い無しです(笑)

私もある程度の品種をストックしてあるわけですが、
当然ながらPICマイコン全体を網羅することは不可能ですので、
自分が扱える範囲で、なるべく汎用性あるものを揃える、という感じです。


そんな折、14ピンタイプのPICマイコンであるPIC16F1823のストックが少なくなったので、
補充を検討することに。
しかし16F1823は かなり年季の入っている石でありまして、
まだ入手可能とは言え、単価もさほど安くありません。

既に16F1823より高機能な石が安く流通している状況ですので、
必ずしも16F1823に固執する必要は無いわけです。

ただ、別な石を扱う場合には、アセンブラソースの叩き台を新たに作成する必要があります。
これがそれなりの手間でして、医師が高機能になるほど その手間は増大します。

それも踏まえた上で、新しい石を導入するか検討するわけですが、
更に今回、新たな課題が!!

それはMPASMのサポート限界

MPASMは長らく使われてきたPICマイコン用のアセンブラですが、
諸々の理由で既に更新停止されています。

MPASM自体が使用不可というわけではなく、
最近リリースされた石がサポートされていないという事なのです。

ちなみにPICマイコンのアセンブラ開発というのは普通に需要あるので、
当然ながらMPASMに代わるアセンブラーもリリースされています。
PIC-ASなどと呼ばれている代物で、純正Cコンパイラーに添付されています。

今後、アセンブラーで開発したければ これを使えという話なわけですが、
このPIC-AS、MPASMと互換性が無いのです。
そもそもCコンパイラーに添付されていることからも解るように、
Cと相性が良いアセンブラーになっているようなのです。

インクルードファイルからして別物なので、
どちらでもアセンブルできるコードを書くのは無理。
いやはや困ったもんですね。

ここで考えられる対応策は2つ。
1つ目は諦めてPIC-ASへ環境を移行すること。
その場合、旧ソースコードは随時修正が強いられます。
2つ目はMPASMが使える範囲内の石だけを使用するという手。
最新の石は使えませんが、従来の石には全くてを加える必要がありません。

結局、私が選んだのは2つ目の方。
当面はMPASMで開発を続けることにいたします。

さてそうすると冒頭の話に戻りまして、16F1823の補充をどうするかですが、
暫定として16F1825を手配することにしました。
これは16F1823のファミリーでして、メモリーが増量されています。
一応、アセンブラソースの叩き台は別物になりますが、
大半が同じ内容なので作成は容易です。

この16F1825も やはりそこそこ年季が入っている石なので、
更に新しい石も検討しておいた方がベターですね。

ということで調べてみると、14ピンタイプですと
16F18300番台や16F18400番台辺りがMPASMのサポート限界の模様。

機能面なら16F18426が最強の様ですので、
これを在庫品リストに追加しようと画策中です。

なお、18300番台と18400番台の差はA/Dコンバーターの模様。
(他にも有ったらごめんなさい)
18400番台にはADC2が搭載されています。
私はADC2を結構気に入っているので16F18426を選びますが、
従来のADCの方が良いという方は18300番台をチョイスですね。

余談ですが8ピンタイプには16F18313という石が存在しますが、
18400番台には8ピンタイプが存在しません。
現状8ピンタイプは16F1840をメイン使用していますが、
これを置き換える際は16F18313になりそうです。


18400番台がサポート限界と書きましたが、ここで要注意点を1つ。
PICマイコンの品番を見ると、16F180xxというシリーズも見つかります。
パッと見、18300や18400の下位品種の様に思えますが、
18400番台より後にリリースされた石なので、MPASMでサポートされていません。

手頃な価格なので つい選定しそうになりますが、ご注意ください。