エントリー

2023年04月の記事は以下のとおりです。

"ラムダッシュ"の故障と買い換えの顛末

  • 2023/04/27 13:17
  • カテゴリー:散財

 髭剃り器を買い換えました。今度もパナソニックのラムダッシュです。買ったモデルはES-LV7V-Aで,お値段は25300円にポイント10%です。

 それまで使っていたES-LV7Cが,突然動かなくなってしまったことが買い換えるきっかけになりましたが,ES-LV7Cを買ったのが2018年2月ですので,5年ちょっとで壊れたという事になります。

 一応5年使ったので仕方がないんですが,その前のES-LA72は8年(それも壊れたわけではない)使いましたから,正直なところもう1年くらいは動いてくれると思っていました。

 そのつもりで高価な外刃と内刃を交換したところでしたし,内蔵された電池も交換したばかりでした。

 しかし,予兆はあったのです。

 1ヶ月ほど前ですが,スイッチの反応が極端に悪くなってきました。何度も押さないと動かないとか,ずっと押されたままになっていてロックがかかってしまうとか。そうしたスイッチの問題が出ていました。

 こんなものは交換すればいいと,分解してスイッチを交換し復活したのですが,この時内部に浸水があり,スイッチの故障もこれが原因であることが気になっていました。この時は電池の交換を行ったときに,組み立て不良があったんだろうくらいに考えていて,今度は浸水を意識して,正しく組み立てることにしました。

 しかしそれから1ヶ月,残念ながら時々スイッチが入らなくなるという問題が出てきてしまい,今朝とうとう動かなくなってしまったのです。

 ひげ剃りですから,朝の忙しい時間に使いますし,使えないからまあいいや,では済まないものでもあります。捨てずに部品取りとして取ってあったES-LA72を急遽動くようにしてその場をしのいだのですが,ES-LV7Cを修理するか,買い換えるかを選ばねばなりません。

 修理をしてみるかと分解したところ,これがまたひどい浸水で目も当てられません。1ヶ月前に拭き取ったはずなのに,あちこち腐食しています。これはひどい。

 基板を取り出してみましたが,もう手の施しようがないほど腐食していて,これはもうあきらめるしかありません。

 amazonが都合良くセールをやっていたので,自動洗浄機のない下位機種のES-LV5Vを買った(というのも手元にある自動洗浄機が使えるかもと思ったから)のですが,あいにく本体に端子が出ておらず,流用は無理という話を知り,あわててキャンセル,自動洗浄機があるES-LV7Vをヨドバシで買い直しました。

 それはそうと,ES-LV7Cが浸水で壊れたことが気になったのでさらに分解することにしました。自動洗浄機を使っているので自分で掃除をすることはありませんでしたし,風呂で使うこともなかったですから,この個体が液体に触れるのは自動洗浄機の中だけということになります。それでも浸水ですからね,疑いたくなります。

 自動洗浄機には本体を逆立ちして差し込みますから,本懐の下側からの浸水ではありません。当然頭の方から入り込んでくるのですが,そこは厳重に防水されているはずですし,私もそこは分解していません。

 分解を進めていくと,なんとリニアモーターが水浸しです。そう,どうやらモーターや刃が格納されているヘッドから浸水しているようなのです。モーターが水浸しになるほど浸水している訳ですから,そこから本体に流れ込んで来るのは当たり前でしょう。

 ちなみに同機種のkakaku.comのクチコミで,動かなくなってしまった原因が浸水で,浸水の原因がヘッドのゴム部品の劣化だったという話が出ていましたが,おそらくこれでしょう。5年経過したんだからもういいかと思う一方で,もうちょっとしっかり作ってくれないと火事になるよと,心配になりました。

 おそらくこういう故障が他にも持ち込まれているはずですから,最新機種では改良されていると信じたいのですが,ES-LA72ではこうした問題が全くなかったことを考えると,個体差というのもあるのかも知れません。

 ところでこの自動洗浄機もなかなか問題があります。ES-LA72の時は洗浄剤の不良で泡が立ちすぎ洗浄水があふれてしまい,洗浄機に浸水,壊れてしまいました。

 洗浄カートリッジが高価だった問題も,ES-LV7Cでは改良されてランニングコストは下がりましたが,複雑だった水の流れもシンプルなものになり,故障しなくなることを期待していました。

 しかしこれも半年ほど前,洗浄機の足下がベショベショになっているのが見つかりました。何が起きているのかを観察していると,洗浄水があふれてこぼれてしまっていました。やっぱり完全メンテフリーは難しいんだなあと思ったのですが,この時の原因は油脂などの汚れが排水パイプを詰まらせていたことが原因でした。

 分解してパイプを洗浄してこの時は解決し,以後は全く問題なく動作してくれていましたが,やっぱり液体を扱う電気機器というのはなかなか難しいものがあるんだと思います。

 そういう意味では,本体も自動洗浄機もほぼ同時に壊れた(ひょっとしたら自動洗浄機の故障が本体を壊したのかも知れませんが)ので,ここらへんで買い直すという判断は正しいのかも知れません。

 うーん,ラムダッシュはよく剃れるのは間違いないんですが,ちょっと壊れ方がみっともない,というか深刻な被害が出そうな怖さがあります。ブラウンはかつて使っていたときの印象も良かったので,今回はブラウンにしようか,あるいは独特の機構を持つフィリップスにしようかと悩んだんですが,ちょうど新機種の切り替えで旧機種が安くなっていて,またラムダッシュです。これが良かったのか悪かったのかは,数年後には答えが出ていることでしょう。

 あ,数ヶ月で答えが出ている可能性もありますね。そうならない事を祈ります。

 ということで,昨日新しいラムラッシュが届きました。早速使ってみましたが,とにかく新しいものはなにもなく,驚くほどこれまでのES-LV7Cと同じです。

 剃り心地はもちろん,音も持った感じも,形さえも同じで,違うのは色くらいのものでしょうか。見えないところでの改良(浸水の対策とかソフトの改良ですね)は入っていて欲しいですし,そうでないと困るのですが,5枚刃のラムダッシュについてはこれが1つの完成形ということなのかも知れません。

 前述のように,私は刃を交換してから1年未満ですので,新しい機種の刃は温存して,まずは古い刃から使い潰すことにしましたから,さらに代わり映えしないと感じるのかも知れません。というのは,ES-LV7CとES-LV7Vの剃るという性能の違いは刃の改良にあるそうで,しかも交換刃には互換性があります。

 ということは,ES-LV7Cに最新の交換刃を取り付ければ剃るという基本性能も最近機種に並ぶという事ですし,今回のようにES-LV7Vに古い刃を取り付けてしまえば違いがないというのも,また頷ける話です。

 ということで,ES-LV7Vとしてのインプレッションは付属の交換刃を装着してからということになってしまうのですが,見たところ旧機種と同じだというのが,私の第一印象です。分解していないのでわかりませんが,おそらく電池も同じ物でしょう。

 一方,洗浄機は改良されているようです。外形が同じ,交換刃にも互換性があるのできっと洗浄機も流用出来そうですが,私の場合古い洗浄機は一度浸水しているのでもう使うのをやめ,新しいものを使うことにしました。ただしACアダプタは全く同じなのでそのまま古いものを流用することにしました。

 古い洗浄機はRC9-20という型名ですが,新しいものはRC9-25です。見た感じは色を除いて全く同じですが,細かいところを見ていくとポンプのモーターが小さくなっていることや,洗浄液のトレイに重ねて使うフィルタの底面に形状の違いが見られます。

 他にもファンの右側にある洗浄液を吸い込む口の形が変わっていたりして,細かな違いはあるようです。実際に使ってみればファンの音が甲高くなっていることに気が付きますが,これが風量をアップしたからなのか,それとも別のファンの品種に置き換わったからなのかはわかりません。

 取説には,洗浄液があふれた際の対応方法がFAQにかかれているほど,ありがちなトラブルのようですので,そういうことの対策が盛り込まれていることを期待したいところです。

 ということで,買い換えた髭剃り器は私に新しい感動を与えることなく,すぐに日常に組み込まれてしまいました。それだけこれまでの髭剃り器の完成度が高かったということでもあり,それゆえに浸水による故障というのが残念だというのが,私の現在の感想です。

 付属していた最新の刃に交換するのは1年後になると思いますが,この時きっと違いを感じることになると思います。それまでは「昨日と同じように良く剃れる」ことに満足しながら,使うことにしましょう。

 

PC110のフロッピーディスクドライブをUSBに

  • 2023/04/25 12:15
  • カテゴリー:make:

 実家がなくなってから,もう1年半も前の話になります。びっくりするほど今の私の生活になんの影響もないことと,でもどっかで自分の拠り所を失ってしまったという喪失感があり,思った以上に時間はこの問題を解決してくれそうにありません。

 この時に実家で廃棄したものだけではなく,それ以前にも「もういいか」と廃棄したものが案外たくさんある事に今さら気が付いては,惜しいことをしたなあと思ったりすることも多いのですが,PC110という小型PCもその1つです。

 これは1年半前の処分品なのですが,PC110の持病であるLCDの劣化がひどくて,捨ててしまいました。お金も手間も情熱もかけた思い入れのある機種だっただけに,悩んだ末の処分でしたが,やっぱり今でも悔やまれます。

 本体とポートリプリケータ,そしてフロッピーディスクドライブの3点セットを新品でもらったのがきっかけで,そのころすでに入手が難しかった各種オプション品をコツコツと買い集めました。

 秋葉原のT-ZONEがPC110に入れ込んでいて,ここが独自に販売していたものとして,緑色のトップカバーとボトムカバー,33.6kの内蔵モデムは,当時既に入手不可能と言われていたものだったので,上方を手に入れた日曜日の朝早くに秋葉原まで出かけた入手したことを良く覚えています。

 4MBのメモリボードを改造してトータル24MBにしたり,内蔵のカスタムICを削ってクロックアップをしたり,PS2マウスコンパチの静電式タッチパッドを内蔵してみたりと,それはもう随分と楽しみました。

 LCDのフレキも交換用に確保しましたし,Windows95を入れてEthernetにつないで,メール端末として実用マシンとして使っていた時期もあります。(その後VAIO Uに交代しましたが)

 さすがに486SXに24MBのメモリではWIndowsも厳しく,ここでLinuxなどを入れおけばまた違って展開もあったかもしれませんが,結局使わないうちにLCDの劣化が進み,処分に至ったというわけです。付属品もすべて処分したのですが,純正PC-DOSくらい取っとけばよかったなあ。

 で,処分の決定をしたその日の夜,やっぱりなにか残しとこうと思い立って,IBMのロゴがしびれる専用フロッピーディスクドライブだけ,処分しないで持ち帰ることにしました。薄型のフロッピーディスクドライブですので,交換部品としても,あるいはなにかの役に立つこともあるかも知れませんし。

 そうして持ち帰ったPC110用のフロッピーディスクドライブですが,いよいよ復活の時がやってきました。

 実はこの2年ほど,フロッピーディスクの世話になることが増えているのです。1つは修理に勤しんでいたレトロPCの復活。もう1つはオシロスコープからのデータの吸い上げです。

 前者はPC=386BookLの話なのですが,ネットワークに繋がらないこの機種にとって,データのやりとりはフロッピーディスク,それも720kBの2DDだけが頼りです。

 後者は主に測定時の画面のキャプチャなんですが,1.44MBで使っています。

 ということで,うちにはUSB接続のフロッピーディスクドライブが1つあるのですが,これがいつ壊れるかわからない(新品で買ったのですが分解するとボロボロの中古品のドライブが出てきました。中国製恐るべし)

 それに,会社と自宅の両方でフロッピーディスクを使うこともあるので,出来れば2台欲しいのです。もう一台買い増そうと思ったのですが,1台3000円と結構な値段がします。

 そこで,このPC110用のフロッピーディスクドライブをUSB接続型として復活させることを考えました。

 まずは分解。TEACの定番,FD-05HGが入っていました。これなら楽勝とばかりに,うちにあったUSB接続型のフロッピーディスクドライブを分解して,USB-FDD変換基板に繋いでみます。

 720kBはあっさり認識。ここで1.44MBの確認もやるべきだったのですが,まさか20kBが読めたのに1.44MBが読めないなんて思わないじゃないですか・・・

 気をよくして変換基板だけ売っていないか調べます。標準の34Pならいくらでも売っていますが,26Pのスリム型の変換基板はなかなか売っていません。するとみんな大好きaitendoに,1000円と微妙な値段で売られていることが分かりました。しかもこれ,うちにあるドライブに内蔵されたものと全く同じです。

 背に腹は代えられません。フレキもないので最も安くなるパターンを考え,30Pのフレキを一緒に購入しました。380円(税抜き)もしましたよ。

 あとは到着を待つだけ,なのですが,その前にテストをしておこうと,うちの基板とFD-05HGを繋いで動作の確認です。もしかしたら3モードかも知れませんし。

 しかし,3モードかどうかを確かめる目的で始めた確認作業は最悪の結果になりました。なんと1.44MBがアクセス出来ません。720kBは問題ないのに,こんなことってあるんだなあと・・・

 このままでは発注済みの基板が無駄になります。焦った私は,ネットで情報を探し回りますがダメ。ジャンパの設定があるかもとドライブを分解しますが,この時代の安価なドライブはジャンパで設定を変えるような面倒な仕組みを持たず,設定ごとに別の製品として出荷されるので,分解したところでなにも出来ません。

 万策尽きたか。

 ダメモトでいくつかのジャンパ抵抗を動かしたりしましたが,この1つに変化が見つかりました。ありがたい事に1.44MBへのアクセスが出来るようになったのです。しかし720kBはアクセス出来なくなりました。

 DENSITY信号に関係するかもと調べましたが,あいにくなにも成果はなく,他のジャンパも当てずっぽうに繋げたり切ったりするも上手くいきません。最悪外部にスイッチを付けて手動で切り替えることにしようかとあきらめかけたとき,ふと閃きました。

 なら,フロッピーディスクに開けられたノッチでHDとDDを検出出来るんじゃないのか。

 ノッチ検出のスイッチからパターンを追いかけて調べますが,これはあまり役に立ちませんでした。しかし,検出スイッチを押して電圧が変わる部分を見つけることは出来ました。

 この部分と先程のジャンパを繋いでやれば,DDでHigh,HDでLowになる仕組みを実現出来,自動切り替えが出来るはずです。
 
 試したところ,うまくいきました。こういう改造がなぜ必要になったのかという,原理的なところまで解明できていないですし,これで壊れないものかと心配になりはしますが,とりあえず上手くいってるのでOKとしましょう。

 後日,届いた基板を取り付けて動作確認をしますが問題なし。元のケースに組み込んでIBM純正風USBフロッピーディスクドライブの完成です。

 NECのドライブと違って,TEACのドライブはカチッとした感触が素晴らしいです。アクセス音も好ましいですし,IBM純正らしくインユースランプも黄色で,ちょっとした特別感があります。

 それからIBMらしいライトブルーのイジェクトボタン,そして誤操作防止のカバーと,イジェクトボタンを押すときに親指を置くトップカバーのくぼみも,さすがIBMだと思わせます。

 IBMのこういう細かい配慮が私は好きで,IBMがPCから撤退したことは今もちょっと残念だと思っています。

 今回はたまたま上手くいきましたが,通常この手の問題はあきらめるしかないものです。メカものであるフロッピーディスクドライブが2台になったことでしばらくは困ることもないと思いますが,果たして1500円近い費用を今かけることに,どれくらいの意味があったのか・・・もっと安いときに買っておけば良かったです。


 

ミニテーブルソーは極楽工具

 プリント基板を中国に発注して作る事が出来るようになると,基板のカットが問題になるのは多くの方に共通の悩みのようです。

 そもそも個人では大きな回路を作りませんので,コストを下げようと1枚の板から複数の基板を割り付けようと考えるのですが,Vカットという手で簡単に分割できる加工がそれなりに高価なオプションサービスだったりするので,トータルで安くなるかどうかはよく考えないと失敗します。

 それに,Vカットも正しい指定方法がある訳ではないので,「この指定で上手くいったよ」という経験則が伝承されているに過ぎないようです。だから時々失敗したという話を見聞きします。

 こんな時思う訳で,自分でカット出来たらなあ,と。

 もちろん,Vカットなどという高度な加工はNCフライス盤がないとダメなのですが,単純なカットであれば,まず思いつくのがPカッターでしょう。PカッターはVカットを手動で彫る道具なのですが,まっすぐ切るのも難しいですし,裏と表で同じ場所に筋をつけるのはもっと難しいです。

 そこで次に考えるのが,テーブルソーを使うことです。丸鋸がテーブルの表面からちょっと顔を出しるもので,丸鋸ではなく材料の方を動かして直線カットを行う工具です。

 もちろん,木工用の大きなものは高価ですし個人で持つのは非現実ですが,世の中にはホビー用途に向けた小型のものが売られています。これを使えばプリント基板もちょっとしたアクリル板もまっすぐ素早く,そして綺麗にカット出来ます。

 昨今,こうしたパワーツールも中国製のものがたくさん流入し,広く使われるようになりました。しかし必ずしも安いとは限らず,日本製の「プロクソン」と似たような値段のものもあったりします。

 こういうとき,真面目に実用的な制度で安全面に配慮されたプロクソンを選べば,ほぼ間違いがありません。そう,私はプロクソンのファンでもあるのです。

 くすんだ緑色と,カラシの黄色が特徴のプロクソンですが,随分長い間ホビーストの定番であり続けました。本物よりも安いけど,決して子どもが手軽に買えるようなものでもないという,ちょっとプロっぽいパワーツールのシリーズなのですが,AC電源で動くものはパワーもあり,本物のミニチュア判という感じで,私は気に入っています。

 そのプロクソンからも小さいテーブルソーが出ています。「ミニサーキュラソウテーブルEX No.27006」です。amazonで12000円ほどです。

 セールの時に買ったので,1万円ちょっとで買えたのですが,これ,電気電子の工具で知られるホーザンにも供給されていて,プリント基板のカット用として販売されています。なのでその性能は折り紙付きです。

 これにプリント基板カット用に用意されたダイヤモンドブレードの丸鋸No.27012(ちょっと高いです)を組み合わせれば,基板のカットはもうプロ級です。

 なんて書いてますが,私も半信半疑で,どうせ切断面が汚いだろうとか,直線が出ないだろうとか,手間がかかるだろうとか危ないだろうとか,いろいろネガティブなことを考えていました。

 実際に手に入れたのは今年の2月,回転数を調整出来ないと不便なのでこれも多くの方がやっている改造として,秋月電子のパワーコントローラのキットを組み込んで,回転数を可変出来るようにしたのがつい2週間ほど前の話です。

 ということで,早速実際に使ってみることにしました。

 作業の邪魔になる丸鋸のカバーを取り外してしまわないと作業性が悪いので,    私はさっさと取り外してしまいましたが,これは安全性を損なう改造ですので,あまりお奨めできません。


 さて,使ってみて思ったのは,なんでこれをもっと早くに買わなかったのだろう,と言う後悔でした。それくらいスイスイ,綺麗に切れます。もう病みつきです。

 確かに気を抜くと危ないのですが,そこは注意して扱うものとし,直線も出るし断面も綺麗,あっという間に切れるので,これはもうPカッターなどを使うのがバカバカしくなります。

 基板があまりにあっさり切れたので,次は1.6mm厚のアルミのケースをカットします。押し出し加工を上下に組み合わせたアルミケースが売られていますが,これを小さいセット向けに半分でカットし,コストを下げることを私はやることがあります。

 ただ,それなりに硬いアルミですし,のこぎりで切ると時間もかかるししんどいし,汚いしまっすぐ切れないしで,ろくな事がありません。もう二度とやるかと思ったのですが,このテーブルソーを使えば一発じゃないかと試してみました。

 丸鋸を別途買ってあった超硬タイプ(No.27011)に交換し,少しだけオイルを付けて慎重にカットしていきます。切断中に回転数が極端に落ちない程度にパワーを供給して切り進めていくと綺麗にカット出来ました。,発熱も少なく,これは切断面も綺麗で素晴らしい。カットだけで30分もかかっていたのに,これだと僅か数分ですよ。

 しかし,辺り一面切りくずだらけです。これはちょっと厄介だという事で,amazonでボッシュのパイプを購入,これを40cmくらいにカットして,古いダイソンのクリーナーに取り付けて集じん器にします。

 これでカットをすると全然散らかりません。いやー,いいですよこれ。

 テーブルソーは丸鋸ですから,指をスパっと切り落としてしまう危険性もある,危ない工具です。大きいですしパワーもあるので設置場所も選びますし,使う人も注意しないと本当に危ないですが,ミニテーブルソーは小さく,パワーもそんなに大きくありません。丸鋸が飛び出ている高さもそんなに大きくないので,危険であることはかわりませんが,それでも危険性は下がるでしょう。

 十分に注意して使えば,これほど便利な工具もないと思います。アクリル工作とか,もう全然怖くないです。
 

PICマイコンがどうも肌に合わない

  • 2023/04/13 11:10
  • カテゴリー:make:

 先日,WEBサイトを巡回してたら,ちょっと作って見たくなるような作例を見つけました。PIC32MXを使った工作で,バイナリも配布されています。

 幸い私はPICkit4も持っていますし,MPLAB IPEも問題なく使えていますので,これはさっさと作って見ようと部品を集めて作って見たのが,3月中頃の話です。

 しかし,ここですんなり動かないのが私です。全く動作しません。クロックは発振していますし,各部の電圧も正常です。書き込みもベリファイまで済んでいますので問題ないはずです。

 ソースが公開されていないので,回路の問題(配線の問題ですね)しか確かめることが出来ないのがもどかしいのですが,簡単な回路ですのでもう確かめようがありません。

 電源が汚いとか,周波数が少しズレているとか,そういうところまで疑い始めましたが,それらに対策を施しても解決しません。そうなるともうソフトを疑うほかなくなります。

 そこで意を決して,ソースを提供して欲しいと作者にお願いをしました。回路のミスがあるんじゃないのか,という疑いの目がチクチク刺さりましたが,こちらの意図を察して下さって,プロジェクト丸ごと提供頂けました。これはありがたい。

 とてもご親切に,ビルドの環境まで教えて下さったので,MPLAB X IDEにC32を組み込んで,元のMPLABのプロジェクトをインポートします。

 ビルドはあっけなく通ったのですが,出来上がったバイナリを書き込んでみてもやはり動きません。基板に問題があるかもと,ブレッドボードでも回路を作って試してみましたが,やはりダメです。

 実際に動いているものが私だけ動かないというのは納得がいきませんが,違いはMPLAB Xあることと,PICkit4を使っていることで,作者の方はMPLABとPICkit3を使ってらっしゃるそうなのです。

 私が同じ環境を使えれば問題は解決しそうなのですが,いまさらPICkit3を買うようなことはしたくありませんし,それに純正の後継ツールなんだから,そこは信じていいだろうと思っていました。

 しばらく試行錯誤を繰り返したのですが,動くとされるバイナリは動きませんし,私が自分でビルドしたバイナリも動きません。せっかくソースも頂いたわけですし,こういう時こそなにが起きているかを徹底的に調べるために,PICkit4を活用しようと,インサーキットデバッグを行う事にしました。

 Debug buildを行い,深呼吸していざステップ実行,と思ったのですが,なんとステップ実行をするまでもなく,あっさり正常に動作してしまいました。

 もしかすると治ったのかも,とProduction build(MPLAB X IDEではリリースビルドのことをこう呼んでいるようです)をして書き込みますが,やっぱりダメでした。

 こういう場合は原点に戻り,出来るだけ単純なソフトで試してみる必要があります。定番のLチカを組んで試したところ,これは通常のビルドでもインサーキットデバッグでも問題なく動いています。

 うーん,どこにバグがあるかを確かめるインサーキットデバッグで動いているものが,通常の書き込みで動かないなんてことがあるのは,すでにインサーキットデバッガの存在意義がないだろうと首をかしげるわけですが,実際に目の前で起きていることは疑いようがありません。

 これって,バグ地獄から抜け出るためにICEを使ってデバッグして動くようになっても,リリースでは動くかどうか分かりませんよと言われていることと同じですので,こんなツールはプロは怖くて使えませんよね。そう考えると,もう何が何やら・・・

 で,悩んで1ヶ月が経過し,書き込み環境を変えてみようかと,PIC32MXのライタを探していたところ,気になる情報を手に入れました。なんでも,PICkit3では書けるが,それ以外の自作ライタではベリファイ出来ているのに正常に書き込めていないという問題が出ていると言うのです。

 その原因を見て,私は驚きました。

 PIC32MXでは,CONFIGRATIONビットのDEVCFG0のDEBUGビットが,通常の動作時は11bでなくてはならないのに,場合によっては10bになっていることがあるのだそうです。

 これは,ソースにCONFIGRATIONビットの設定を記述することで行うのですが,通常は,

#pragma config DEBUG = OFF

と記述します。

 しかし,この書き方では場合によっては11bではなく,10bと書き込まれることがあるらしく,もし10bと書き込まれてしまうとICEを使う設定になってしまうようなのです。

 これがまた不思議な話で,本来ならICEを使う設定は00bか01bで,10bでも11bでも問題なく動くはずなのです。これはデータシートのバグか,チップのエラッタでしょう。

 不幸はさらに重なります。

 PICkit3で書き込む時はDEBUGビットを11bに自動的に変換して書き込みます。これがまたくせ者で,PICkit3以外のツールで書き込むと10bのまま書き込まれるため,ICEが繋がっていないと動作しないというわけです。

 まとめると,DEBUG=OFFとソースに書いて設定し,かつPICkit3以外のライタを使う場合には,ICEを使う設定で書き込まれてしまうため,動かないという事が起きるというわけです。

 対策は,DEBUGビットを11bに強制的にすればよいので,

#pragma config DEBUG = 3

とすればOKです。これでPICkit3以外のライタでも正常に動作します。

 さて,PICkit4は純正ですし,PICkit3の後継ですので,いいものも悪いものもPICkit3でやってたことは継承されると思っていました。ですがこの問題で起きることはまさに私の目の前で起きていることです。しかもソースにも当該箇所の記述がありました。

 もしかしてこれが原因ではないかと試してみることにしました。DEBUG=OFFをDEBUG=3と書き直してビルド,しかしおかしな設定されたとエラーを出してビルドが通りません。

 ここで詰んだかと思ったのですが,ものは試しとDEBUG=OFFをコメントアウトしてブルドをしたところ無事に通りました。書き込みを行ってみると,なんと動いてくれました。

 これから分かることは2つ,1つ目はPICkit4とMPLAB X IDEの組み合わせでは,自動的にDEBUGビットを11bにしないということです。MPLAB X IDEとPICkit3の組み合わせではどうかを試していませんが,どちらにしても最新の環境はかつての純正環境であるMPLABとPICkit3の組み合わせとは異なる動作をするということです。

 もう1つは,DEBUG=OFFと書くと,ICEを使わないビルドでも10bと書かれてしまうが,これを宣言しないと,ICEの有無で自動的にDEBUGビットを書き込んでくれるという事です。

 とはいえ,このプロプロセッサ用の宣言は明記することが普通ですし,MPLABのCONFIGURATION設定ツールでも生成されるので,これをコメントアウトするというのは通常思いつくことはないと思います。

 これが,DEBUG=OFFと記述した結果が10bでなく11bと正確に反映されればなにもんんだいはなかったでしょうし,PICkit4でもPICkit3と同じように,リリースビルドではDEBUGビットを11bと自動的に修正してくれるなら問題は発生しなかったでしょう。さらにいうとデータシート通りに11bでも10bでもICEを使わない設定になるのであれば,やはり問題はなかったはずです。

 こうしてみると,今回の問題は,Microchipの複数の部署にわたるバグが引き起こしたものと思われてなりません。DEBUG=OFFの結果が11b以外になるのはコンパイラのバグですし,純正ライタであるPICkit4でDEBUGビットを11bに自動的にしないという仕様変更も思いつきで行われてるように思います。

 最後のデータシートの問題は,データシートの記述がおかしいのか,それとも実チップのエラッタなのかはわかりませんが,どっちにしてもデータシートとチップの間の不一致が起きていますので,これも検討不足でしょう。

 そしてその結果起きることは,インサーキットデバッグで動くものが,リリースビルドでは動かないという,ICEの信頼性や存在意義を根底からひっくり返すようなトラブルなわけです。

 コンパイラがバイナリを生成した時点ではすでにDEBUGビットは設定済みですから,ベリファイが通ってもそもそも動かないバイナリを書き込めば,そりゃ動くわけがありません。つまり,我々ユーザーは,なにを信じていいやらわからない状態に置かれたと言うことです。

 いやまて,開発ツールというのは,いわば測定器であってマザーツールです。これが信用出来ないと,そこから生まれるものはすべて信用出来なくなるので,特に信頼性を高めておかねばならないはずです。

 いくら無償で配布しているとはいえ,実質的な選択肢としてこれ以外を選べないなら,信頼性は高めておかねばなりません。もっといえば,コンパイラは有償でないと最適化オプションを使えず,PIC32MXのようなMIPS系のCPUでメモリサイズの小さいPICでは,無償版のコンパイラで出来る事はかなり限られてきます。

 Microchipはその辺の意識がどうも緩くて,私は以前にも似たような問題でバグ地獄を這いずり回っていたことがあります。

 それでもMicrochipが好きな人がたくさんいるようですが,私はどうも好きには慣れません。肌に合わないとでもいいましょうか,だからAVRに流れたという感じです。

 惜しいのはそのAVRも今やMicrochipの製品になり,ATMEL Studioに起源を持つMicrohip StudioもいずれMPLAB Xに切り替わります。私はAVRがMicrochipカラーに染まることを望んでいません。

 ということで,一応目的は達成しました。いい勉強にもなりましたし,PIC32MXという安価なのに強力なマイコンに慣れたというのは本当だと思います。しかし,こんな目に遭ってしまえばわざわざPICを使う気はしません。やはり私はPICとは相性が悪いんでしょう。

 

 

PC-1475もやってきた

 何年かぶりにやってくるポケコンブーム。今回は2行表示のマシンに手を出したということで,すでにPC-1261がコレクションに加わったことを書きました。

 1986年ごろ,私のパソコンの興味はX1turboIIIに移っており,ポケコンは視野の外にありました。今にして思えば面白い時代を通り過ぎてしまったことに後悔がある訳ですが,その頃ちょうど長く続いたPC-125x系のCPUが引退し,後にZaurusにも搭載される新世代のCPUを搭載したPC-E500が登場します。

 至るまでのポケコンの歴史は,私の中から抜け落ちているのですが,それはI/OやOh!Xといった当時呼んでいた雑誌からポケコン関係の記事が消えたことも大きいと思います。I/Oはポケコンジャーナルという専門誌に集約された結果,Oh!Xは単純に対象から外れたことが原因だったと思うのですが,それが結果として私からポケコンの記憶を奪うものになったわけです。

 その記憶の空白を取り返そうと,ポケコンの歴史を調べていたのですが,一世を風靡したPC-125x系のCPUであるSC61860の最終モデルは,PC-1475というモデルである事がわかりました。

 名前の通りPC-1400シリーズの最終モデルでもあるPC-1475は,2枚のメモリカードで最大64kBまでのメモリを搭載可能な大型モデルです。PC-1350等と同じ大きさですが,画面は24桁x2行ですから,グラフィックを重視したものではなく,あくまで関数電卓機能を持つPC-1400系の1つだと言えると思います。

 計算機能を重視していた証拠に倍精度対応があります。倍精度は科学技術計算では欠かせない機能ですが,ポケコンでは後期のモデルしか対応しません。

 ということで,PC-125xシリーズと共に登場し,ポケコンブームを支えたESR-HことSC61860はPAシリーズの電子手帳のCPUとして使われ続けるものの,ポケコンとしてはESR-Lに移行することになります。(なおPC-1246などの下位機種はESR-Jに移行します)

 そうした記念碑的最終モデルとしてPC-1475は結構有名ですが,なにせ球数が少ないこともあってやっぱり入手が難しいモデルです。特にメモリカード欠品は痛い問題で,メモリカードがなければ起動すらしません。

 逆に言えばメモリカードの欠品したモデルは安価であることも多く,私も4000円ほどで入手出来ました。程度は悪く,あくまで実用品として使い潰すことになるようなものです。

 届いたPC-1475の程度の悪さは想像以上で,汚い,日焼けがひどい,メモリカード欠品,カバーも1枚欠品,LCDは傷だらけという状態でした。電源は入りますが動作までは確認出来ません。

 早速分解と清掃です。日焼けだけはどうにもなりませんが,とりあえず気持ち悪くない程度に綺麗にしました。

 すでに分解された跡があり,間違った長さのネジを無理にねじ込んだ事による前面パネルの浮きもありますが,まあそれは気にしないことにしましょう。

 組み立て後はメモリの搭載です。私の場合メモリを交換出来ることは大したことではないので,最大容量を内蔵出来ればよいことにしています。いろいろ考えた結果,今回は256kbitのSRAMを2つ搭載することにします。

 まずS1にSRAMを搭載します。PC-1475は情報が少なく,もちろん回路図もありません。しかしメモリカードはPC-E500と共通ですから,PC-E500の回路図を参考します。

 メモリカードは35ピンで,純粋にSRAMの端子を引っ張り出したものに過ぎません。スロット2から主な信号を取りだし(つまりスロット2はゴムコネクタも外してしまい,完全に殺してしまったということです),その通りに配線して簡単に改造が終わるかと思ったのですが,残念なことに起動しません。

 最近失敗続きなのでがっかりしながらも配線を確認しますが間違いはなく,ますますがっかりしていたのですが,回路図を眺めていて気が付いたのは,CEの論理でした。

 メモリカードの回路図(CE-212M)を見ていると,CEが6264のCE端子に繋がっています。そう,6264は正論理のCEと負論理の~CEを持っていて,メモリカードの回路図では正論理に繋がっていたのでした。

 そういえば,PC-E500の改造の時もここではまったような記憶が・・・早速TC7S04を追加して論理を反転させたところ,あっさり起動します。PowerOFFの時のスタンバイ電流も全体で30uA程ですから,何も問題はなさそうです。

 MEMコマンドでフリーエリアを確認するとちゃんと32kBになってます。良かった良かった。

 気をよくしてS2にも搭載するのですが,久々にカメカメによるSRAMの取り付けを行う事にしました。CEだけS2からもらってくる感じです。

 さて,久々のカメカメに手こずりながらも配線をすませ,動作の確認を行ったのはいいんですが,果たしてどうやってこのメモリを実際に使いこなすかという話が問題です。マニュアルもないのでどうしていいやらという感じもあるのですが,唯一手に入れたドイツ語のマニュアルをなんとなく読んでいると,こんな感じになっていました。

 まず,S1とS2に入れたメモリカードの使い方に関する設定です。これはSET MEMという命令を使います。

S1の32kBをプログラムと変数に割り当てるには,

SET MEM"1"

とします。S1ではなくS2に割り当てるには,

SET MEM"2"

とします。

 どちらかを設定しないとPC-1475は動作しません。初回起動時にS1もしくはS2にメモリカードが入っていると,それぞれのメモリカードの内容を消してもいいかと尋ねられるのはそのためです。

 さて,S1にプログラムと変数を割り当てると,S2はRAMディスクに割り当て可能です。割り当てるには,

SET MEM"1"
INIT"F:"

とします。これ以後,ファイルディスクリプタF:でRAMディスクにアクセス可能です。ちなみにFILES"F:"でファイル一覧が,DSKF(3)でRAMディスクの空き容量がわかります。

 このRAMディスクって結構便利で,メインメモリと同じ大きさのストレージなんて役に立つのかと思っていましたが,実際には数kB程度のプログラムがほとんどですから,結構な数が入ります。データファイルを作って置く事も可能ですし,共存の難しいプログラムを入れ換えて使うことも,他のポケコンには出来ない芸当です。

 欲を言えばRAMディスクには64kBくらいあると良かったんですが,冷静に考えるとPC-1475はSC61860ですからね,高望みしすぎというものです。

 次,S1の先頭からをプログラム,S2の終わりからを変数にするには,

SET MEM"B"

 とします。これでMEMとやると64kBがフリーエリアになっています。これ結構感動しますよ。

 これに似た設定として,S1をプログラム,S2を変数にするというのがあります。

SET MEM"D"

 これも同様にMEMとやれば64kBがフリーエリアとして出てきます。違いは変数の置き方です。私はポケコンでプログラムと変数が拮抗するようなきついプログラムをつくったことがないので,この違いを意識することはほとんどないと思います。

 ただ,BとDには注意点があります。S1とS2にまたがってBASICが動きますので,一度に片方しかアクセス出来ないCPUにとってはかなり厳しい設定のはずで,実際に処理速度を測定してみると,BとDではやはり遅くなってしまいます。

 試したのは1から1000までを足すというプログラムですが,SET MEMが1の場合は35秒ほど,SET MEMがBやDの時は40秒ほどかかりました。大した違いはないように思いますが,それでも20%近い速度低下ですから,許せない場合もあるでしょう。

 ということで,お奨めはRAMディスクです。

 実際使ってみると,PC-1475はかなり無理をしたマシンだと思う一方で,ESR-Hらしい小気味のいい挙動を示すマシンで,これはこれで面白いと思います。PC-1500やPC-1600は鈍重な感じがありますし,PC-E500もシステムが大きすぎてなにやら見えにくいものがあります。PC-E200はZ80マシンとして割と普通という感じもしなくもないので,電卓の延長線上にあるスタンドアロンな感じがここまで巨大化することに,ちょっとした感激もあるくらいです。

 使い出せばPC-1400シリーズそのものですし,トルクの細さもESR-Hらしいです。キーや表示のレスポンスは電卓上がりの小気味良さが残っていますし,それでいて大容量ですから,面白いマシンだと思います。消費電力の小ささも魅力的ですね。CR2032でここまで動くのかと思います。

 BASICは強力で,RENUM命令もありますし,なんといっても倍精度です。2進-16進の演算も出来ますし,関数電卓としてはかなり強力なんじゃないかと思います。

 しかし,メモリがBASICと関数電卓で共有というのはちょっとややこし,例えばBASICにプログラムを入れておき,CALモードで統計計算をやると,次の起動時にメモリを消していいかと聞かれてビビります。これ,なんとかならんのかなあ。

 そうそう,欠品していた1枚分のメモリスロットのカバーですが,0.5mmのポリカーボネートの板を切り出し,両面テープで貼り付けたのち,製本テープを貼り付けてそれなりに仕上げました。メモリをハンダしたスロット2はもう死んでしまってますから閉じたままで良いですし,スロット1だってカバーが外れないといけないのは,電池の交換の時だけですしね。


ページ移動

  • ページ
  • 1
  • 2

ユーティリティ

2023年04月

- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed