初期値の話
2025.09.19
EEPROMやバックアップRAMに、設定内容などを書き込んでおき、起動時に読み込む事で初期設定に反映する、といった使い方は良くあります。

この時、読み込んだ値が正常な範囲か、妥当な値であるかを必ずチェックして、もし問題があれば適切に処理することが重要です。

ふ~ん、という感じですが、一度失敗すると良くわかります。

EEPROMやバックアップRAMの内容は、何らかの原因で化けることがあります。
そして、EEPROMは新品の状態で0xFFになっています。
これらの事実を前提にして、そういった異常値で誤作動しないよう、プログラムに対策を組み込みます。

EEPROMの初期値問題は、ずっとデバッグに使っていた試作機だと気づかないことです。初めて製品版の基板を動かす時に、アレッとつまずくのです。新品のEEPROMは0xFFだから。

たとえば、ある設定内容は1~10の範囲を前提としているのに、0xFFが来たらおかしなことになります。
ただ単にEEPROMを読み込んで、その値をそのまま使ってはいけないのです。値が規定範囲に有るか、もし外れていたら初期値に戻すといった処理が必要です。

意外と市販の製品でも考慮されていない物があるようです。
自分の修理仕事の経験でも、回路的には正常なのにどうしても動かないものがありました。他社さんが修理をギブアップして、うちに回ってきました。
結局それはEEPROMの内容が化けていて、起動時に読み込んだ異常値で暴走していたことがわかってきました。
幸いなことに正常な個体が有り、そこからEEPROMの内容を複写してやると、正常に動くようになりました。
原因はリセット回路がいい加減で、特に電源を切った時のゆっくりした電圧低下で暴走し、その時にEEPROMを誤って書き換えていたようです。対策として、電圧検出ICを追加し、ある電圧より下がったらマイコンが動かないように止めるようにしました。


普段操作しない場所に押しボタンを隠しておき、あるいはディップスイッチの空いている所を利用するか、とにかくそれをONにしたまま電源を入れると、EEPROMがクリアされてデフォルト値が書き込まれるようにする仕掛けをするのも良いでしょう。
近頃のPICマイコン
2025.09.11
秋月から買って、袋に現品シールが貼ってない場合があるけれど、
そんな時はブツブツ言わないで自分で記入しておこう。忘れないうちに。今すぐに。

あとで見ると、これ何だっけ。わかんない、ってなるから。特に小さな部品とか。



この写真はPICマイコンで、わりと新しい品種ばかりです。

老眼だから余計に、ペンで大きく型番を書いておかないとね。

それにしても、なんでこれらを買ったんだっけ。(おいおい)
PICマイコン
2025.09.08
 近頃あまり話題にものぼらないPICマイコンですが、活躍の場は多いです。

■1.昔からの疑問

 たとえば16F88x
 同シリーズで883とか886、887とか、28ピンや40ピンが有るけど、
 ひょっとして中身は同じなのだろうか? という疑問

 PICマイコンといっても多くのシリーズにそれぞれの型番とパッケージ種別がある。
 こんなゴチャゴチャで管理が大変だなと他人事ながら思ったわけ。
 そこで、ひょっとしたら中身は同じじゃないかと?
 何種類もそれぞれ生産するより、同じチップを大量に生産して共用したほうが合理的な気がする。

 (1)メモリ容量の違い
 仕様書では何キロバイトまでですと書いてあるけど、じつはそれ以上に(上位型番)使えたりして? チップを共用化しているなら上位型番の仕様ではないかと。
 何キロバイトまでしか使えないというのは、そう思わされているだけじゃないかと。
 あるいは、883、886、887で容量を設定するために配線を焼き切るとか、ボンディングで設定してるとか?

 (2)40ピンに有るけど28ピンに無いポート
 たとえばRD、REは40ピンに有るけど、28ピンには無い。
 でも試してみたら、そのレジスタにはアクセスできたりして?
 これは昔から試してみようと思っているけど、忘れてしまっていまだに確認できていない。
 忘れっぽいのと、すぐできるのにやらない先延ばしグセ、自分の欠点。

■2.Arduino対応

 Arduinoが対応しているマイコンは数多くある。
 なぜかPICは入ってないようだ。
 PIC用のブートローダは有るけど、Arduino用ではないと思う。(試してないので知らない)

■3.価格

 新しい品種ほど安い。古い品種はどんどん値上がりしていく。
 古い品種を継続的に使っていると、原価が上がってくる。
 できれば動いている物に手を入れたくないのが正直なところ。
 新しい品種に移植してテストする手間も時間もそれなりにかかる。
新しいマイコンの試食
2025.09.05
新しいマイコン、というのは新製品というよりも、自分的に経験のないマイコンという意味で・・・

レトロマイコンで楽しみつつも、仕事では条件によって様々なマイコンを選ぶ必要に迫られます。
そんな時に「持ち駒」ができるだけたくさんあると助かります。

そこで、使った事のないマイコンを積極的に試しておく必要があるなと思いました。

全く使った事がないマイコンは、初めて使う時に何らかのつまずきが有ったりするものです。あとから振り返ってみれば当たり前のことだったなと思うけど、最初は全く知らずに罠にはまったりします。

何となく定番マイコンばかり使ってしまいます。慣れているものが一番だからです。

たまに、それだと性能や仕様が合わない場合があります。そこから改めて探し回ると時間がかかるので、持ち駒があったらと思うのです。

UARTがもう一組欲しいってのは有りがちですが、SPIが2組無いかという要求も実際あります。いや一組でいいでしょう、と考えますが、高速のクロックで動かす為に配線を短くして、他のデバイスを並列にしたくない(負荷が増えて波形が乱れる)という理由もあります。

開発環境にも慣れておき、できればすぐに使える状態にしておくのがベターでしょう。

自分はハードウェアもやりますから、そのマイコンに有った評価ボードを実際に設計して作る所までです。最初のお手本としては市販のボードでも良いが、いずれ製品を作るのだから自分で把握しておく必要があります。
順番がある
2025.08.14
仕事上での出来事ですが、

開発環境として複数のソフトをインストールする必要がありました。

ところが、そのうちのひとつのソフトがインストールできない。途中でエラーを出して終わってしまう。

エラーメッセージは、ファイル使用中につき云々・・・なんだそりゃ?

結果から書くと、タイトルに書いたように「インストールする順番」がある。

どうやらソフト同士で共用のファイルが有るみたい。
先にインストールしたソフトは常駐する。
そのあとに別のソフトをインストールしようとすると、(常駐で)ファイル使用中なので書き込みできないからエラーになる。

そんなのわかんねえよって言いたくなるが、説明書には順番が書いてある。だけど順番とは思わなかった。要するにこれだけ入れれば良いのかと思い、片っ端から入れていっただけ。

なんというか、たとえば・・・プラモを説明書も読まずに好きな所から適当に組み立てて失敗するタイプ
先にそこを接着したら、説明書の最初で作る部品が組み込めなくなるでしょう!! という感じか。(だって読むのがかったるいもん、めんどくさー)

結局、全てをアンインストールして、最初から順番にひとつずつ入れ直して・・・ようやくうまくいったというわけ。

まあ、でも、こういう遠回りをするのは貴重な経験ができた、知識が増えたと前向きに受け止めよう。

- CafeLog -