エントリー

カテゴリー「make:」の検索結果は以下のとおりです。

PB-100をPCに繋げる

 PB-100の新鮮な使い心地を楽しんでいますが,そうなってくると必要なのはプログラムのロードとセーブを行う仕組みです。苦労して入力したプログラムを保存する,OCRで雑誌のプログラムを入力するなど,ロードとセーブは使いこなしの第一歩です。

 PB-100のロードとセーブは,原則的にカセットインターフェースで行いますが,専用のカセットインターフェースは高価ですし,滅多にお目にかかれません。ならば自作となるわけですが,PB-100のカセットインターフェースはカスタムICが搭載されているので,入手が容易な部品でさっと作るわけにはいきません。

 それは12ピンの拡張端子が特殊なプロトコルであるからですが,ここを解析してP`B-100からはカセットインターフェースに見える,シリアルポートを作った人が海外にいます。

 いやー,こういうのは助かります。PB-100くらいだと波形を見ていればなんとなく解析も出来て,マイコンでさっと作る事も出来るかも知れませんが,時間も手間もかかりますし,何より本物のカセットインターフェースを持っていなくては解析が出来ません。

 作例ではAT90S2313という,これまた懐かしいAVRを使っています。私も手持ちが2つほどあり,使い道がなくて正直どうしようかと思っていた所だったので,好都合でした。

 オリジナルは,外部のEEPROMへの読み書きやプリンタインターフェースも持つ重装備でしたが,私はとりあえずシリアルポートさえ出ていればよかったので,回路を大幅に削減し,最低限のものだけにしました。するとAVR意外には抵抗が数個,10MHzのクリスタルにコンデンサが3つほどと,本当に簡単なものになってしまいました。AVRとクリスタル以外はチップを使ったので表からは見えません。

 20230517182048.jpg

 30分ほどで組み立てが終わり,AVRの書き込みもデジットのAVRWRTでさっさと済ませて,完成です。USB-シリアル変換基板をくっつけてテストをします。

 ところが,なかなか上手くいきません。最初はTeraTermでの送受信もおぼつかない状況でしたが,これはフロー制御をXon/Xoffにすることで解決。これでSAVEコマンドで読み込んだプログラムをLOADコマンドで書き戻せるようになったのですが,あくまでこれはバイナリでの話。

 バイナリをテキストに変換し,編集してまたバイナリに戻して転送という目標を達成するには,専用のツールを作られた方がいるのでこれを使います。

 しかし,これも複数のエリアにまたがる変換には対応しないなど,なかなか大変でした。ある方が修正版を出してくださっていたので,これを使ってどうにかやりたいことが出来るようになりました。(とはいえ複数のエリアへの書き込みは手動で一部テキストを修正しないといけないのですが・・・)

 しかしそれでも,実行すると原因不明のエラーで止まりますし,場合によってはリセットをしないと復活しないこともあります。しばらく悩んだのですが,結論はPB-100のバグでした。

 なんでも,変数のクリアを行うVACコマンドにはいろいろ深刻なバグがあるらしく,この命令の後にマルチステートメントでコマンドを書いてしまうとエラーになったり暴走したりするんだそうです。

 こんなバグは後のモデルでは解消されていると思いますが,これもPB-100ならではです。分かってしまえばなんということはありませんし,むしろ味わい深い個性です。

 ということで,PB-100がPCと繋がり,プログラムの保存が可能になりました。これが出来ないと実用に供することは現実的に不可能で,PB-100がそのハードルを越えてくれたことがうれしいです。

 

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とは相性が悪いんでしょう。

 

 

ほんまかいな,1万円のオシロスコープ

 先日,セールの終わったamazonをだらだら見ておりますと,10999円でポータブルオシロが出ておりました。ああ,よくある自作キットに毛の生えたやつね,と思っていたのですが,よく見ると帯域120MHz,500Msps/sと,ちょっと気になる記述が。

 詳しく見てみると,1chしかないとはいえ,本当に120MHzの帯域で最大500Msps/sとあります。BNC入力で付属品に1:10のプローブが1本ついてきますし,もちろん今どきのポータブルですのでリチウムイオン電池内蔵でバッテリー駆動です。

 これが1万円?ほんまかいな?

 ついでいうにと,違う業者からだと思いますが,派生品と思われる120MHz,300Msps/sのものが3万円で同じページに出ています。

 私は,これまで,オシロスコープなどの測定器は結局入力のフロントエンド部分のアナログにお金とノウハウが必要で,ここが適当で済むものなら安くなるが,ここをきちんと作らないといけないものは値段が下がらない,と信じて生きてきました。

 実際,今でも200MHzと500MHzの価格差は大きいですし,2chと4chの価格差も大きいです。お金をかければ性能アップ,逆にある程度の性能を期待するならお金をかけずに済ませられないのがアナログ回路で,これは今も昔もそれほど変わりません。

 ですが,120MHzで1万円です。これ,本当だったら価格破壊もいいところですよ。仮に中古でも安いと言えるでしょう。

 1chというのが惜しいですが,この帯域を持っていればアマチュアの作業の大半はこなせます。20年前なら10万円以上の出費は必要だったでしょう。(私は30年前,100MHzの2chのオシロに20万円の予算を組みました・・・)

 同型機はAliexpressでも売られているようですが,それでも日本円で11000円以上します。一体どうなっているのかわかりませんが,こういうものは買って試してみたくのが,これ人情というもの。無駄遣いと分かっていますが,意識が戻ったら手元に届いておりました。

 先に書いておくと,面替えを含めた同型機はすでに2019年頃から出回っており,アメリカあたりでは$70程度で手に入っていたようです。現在のレートなら9500円ほどですから,この金額は別に誰も損をしていないようです。

 さらにいうと,当時からすでに評判は悪かったみたいで,後述する私の指摘はすでに過去に散々語られたものであることも付け加えておきます。

 ・・・さあ,開封です。

 まず,小さいです。もっと大きなものを勝手に想像していましたが,本体も画面の大きさもゲーム&ウォッチくらいのものでした。ただ厚みは3cmくらいはあります。質感は低く,1万円でも高いと思わせるものでした。

 動かす前に,さっと仕様の確認をしておきましょう。帯域幅120MHz,500Msps/sのサンプルレートを持つ,1chのオシロスコープです。垂直感度は50mVとありますので,なんと以前購入したHO102の100mVよりも良好ですが,一般的なちゃんとしたオシロスコープが10mVであることを考えると,まだまだです。(しかもあとでわかったことですが,レンジとしては100mVで,50mVというのはソフトで処理しているらしく,実力は100mVです。なんじゃそりゃ)

 起動は下部にあるスライドスイッチで電源をONすることで行います。電源OFFもこのスイッチで行いますが,特に終了処理を行うものではなく,本当に電源をカットするものだと思います。

 トリガはオートとノーマルとシングルなのでこれはごく普通。トリガのレベルは設定可能ですし,スロープも立ち上がり/立ち下がりどちらも設定可能なので,これはまあそれなりでしょう。トリガは機能や仕様もそうなのですが,実際の使い心地を決めるのはその切れ味です。先人の解析によるとトリガはソフトウェアで行っているそうで,切れ味は期待出来ません。

 なにより問題なのは,使ってみると分かるのですがトリガのかかる条件がちょっと特殊です。ソフトウェアでトリガをかけるからだと思うのですが,1画面分の取り込みの中で,トリガレベルを横切ったものを表示する仕様になっているらしく,1画面内でトリガレベルを横切らないような場合にはトリガがかかりません。

 これはもう論外で,もし私の推測が正しいなら,トリガがなんたるかを全く理解していません。切れ味云々以前の話です。トリガがまず最初にかかって,その後に画面に表示されるからこそ,波形の変化部分を拡大して見ることが出来るわけで,それが出来ないというのは話にならないと思います。

 測定はあらかじめ設定しておいた電圧や周波数は表示されますが,なんとカーソル測定がありません。これも言語道断です。立ち上がり時間や特定のパルスの幅を測定出来ないなんていうことになると,オシロスコープとしての使い道が極端に狭まります。

 さらに致命的なのは,設定の記憶です。画面の明るさやBEEP音などの初期設定は覚えておいてくれるのですが,x10やDCカップリングといった設定や,垂直軸のオフセットやレンジといった操作上の設定が電源を入れ直すとリセットされます。せめてユーザーセッティングのセーブとロードがあれば毎回の起動時にロードする手間をかけても設定が復帰出来るのでまだましなのですが,スカッと消えてしまわれれば,実使用上かなり厳しいです。

 付属品ですが,100MHzでも1本1000円という激安プローブで知られたTP6100という中国製のプローブの,さらにコピーと思われる素性の分からない程度の悪いプローブがついてきました。

 一応矩形波による調整は出来たので故障はないと思いますが,本当に100MHzの帯域を持っているのかどうかは怪しいです。

 さて,問題の周波数帯域です。一応内蔵された発振器による1MHzの矩形波は綺麗に見えましたので,10MHzくらいの帯域はあるようなのですが,先人の解析によると30MHzがいいところだそうで・・・

 私が実際にSGから入力を入れて確認してみると,-3dBになる周波数は36MHzでした・・・

 まあ,そりゃそうか,1万円で本当に120MHzだったらすごいなと思いましたが,そんなはずはあるわけなく,実力は35MHz程度ということでした。もうここまで嘘だとすがすがしいですよね。

 しかしこれも考えようによっては,100MHzのオシロでも20MHzの帯域制限を設けて低い周波数の観測を行いやすくする機能があるくらいですから,もともと30MHzで帯域制限されたオシロスコープだと思って使えば,5MHzくらいのクロックの古いシステムだったら十分にデバッグ出来るのではないでしょうか・・・

 この時気が付いたのが,周波数表示の誤差の大きさです。10MHzを入れたら10.8MHzと測定値が表示されるのですが,これって8%もの誤差があります。これだと40MHzを突っ込んだら43.2MHzとなるわけで,もう違う周波数を示しているといっても言い過ぎではありません。消費税かいな!

 スペックで規定された誤差は6%で,これもかなり大きいなあと思う訳ですが,そのスペックさえも満たしていないというのは話にならんという感じです。

 そうなると垂直軸の誤差も気になります。5Vを突っ込んでみたところ,表示された電圧は4.75Vでした。誤差5%ということで,一応スペック内に入っていますが,5Vで4.75Vというのはちょっと現実的には厳しい感じがします。

 そして500Msps/sというスペックですが,これも嘘っぽいです。波形の取り込みをSTOPしてから波形を拡大する機能がない(これはこれで話にならない)ので直接確かめる方法がなくはっきりしないのですが,先人の解析でも使われているADコンバータがAD9288のクローンなので最高でも100Msps/sが限度で,ICのランクによっては80Msps/sや40Msps/sというものもあるので,最悪40Msps/s程度の可能性もあると思います。

 しかし,説明書に「ソフトウェアによる500Msps/s」とありますので,等価サンプリングを行っているのは間違いないと思います。実際,50MHzの正弦波も正弦波として表示出来ていましたから,100Msps/s以下でのサンプリングということはないと思いますし,一方で12MHz程度の矩形波も矩形波っぽく表示されているので,60Msps/s程度の実サンプリングが行われていると考えて良いように思います。

 ということで,まとめてみると,帯域幅は35MHz程度,誤差は大きい,波形そのものは35MHzの範囲であれば意外にまとも,でした。

 しかしトリガは全然だめで,1画面取りこんで変化する部分があればそこでトリガ,という仕組みでは掃引速度を上げて取り込むことで変化部分を拡大するというアナログオシロスコープのころから当たり前のように出来た事が出来ませんし,かといって取りこんでから拡大というデジタルオシロで当たり前のことも出来ないのでは,変化部分を見ることが出来ないオシロスコープということになってしまっています。

 さらにいうと,強制同期でとにかく波形を出すということも出来ず,波形が全然出てこないということになると,波形が出ているかどうかもはっきりしない訳ですから,これはもう強制同期式の昔々のオシロ以下,ゴミレベルです。

 それでも,ファームウェアのアップデートがあれば改善されてるかもと期待したのですが,先人の解析によるとMCUがロックされており,ファームウェアの書き換えは出来なくなっているとのこと。それでも彼はオープンソースのファームウェアを作って公開するという強烈な仕事をやってのけていますが,これも新品のMCUに載せ替えるという作業が先に必要です。

 よって派生機種やコピー機種が多数あるにもかかわらず,ファームウェアのアップデートは出来ず,大改造をしない限りはこのまま使うことを余儀なくされます。

 これは,大失敗かも。1万円を本当に無駄遣いしたかも知れません。

 正直に言って,途中でやる気が失せて評価や確認作業を一度打ち切ってしまいました。これは3000円でもいらないです。

 そんなことを言っていても仕方がないので,なんとか使い道を考えます。まず電池駆動で小型ですので,フィールドで使える事は間違いないでしょう。帯域はそれでも35MHzほどありますからクロックで5MHzや8MHzくらいならなんとか見えるでしょう。ただし波形の拡大は出来ないので,立ち上がり時間などは観測出来ませんが,よく考えたら帯域が30MHz程度では立ち上がり時間の測定など最初から出来ないので,そこは割り切りです。

 クロックが発振しているか,PWM出力が出ているか,GPIOが動いているかなどの確認は出来そうですが,これまで散々述べたように,トリガの制約からキャプチャされない理由が信号が来てないからなのかトリガをかけ損なっているからなのかがわかりませんので,確認には使えません。うーん。

 カーソル測定が出来ないので周期的な波形の観測に限定されるとして,それだともうオーディオ帯域の観測にしか使えません。つまり3000円ほどで売っているキットのポケットオシロか,PCのオーディオ入力を使ったソフトオシロで出来る事しか出来ないでしょう。

 テスタ代わりに電圧や時間の測定に使おうと思えば誤差が大きすぎるのでこれもアウト。

 うわー,これはホントにゴミですわ。私が買う前に残り7台,その後ずっと6台残ったままになっていることからも,そのゴミっぷりがうかがえます。みんなよく知っていますねぇ。

 ちょっと小さめの扱いやすいサイズで帯域が35MHzというあたりをメリットと考えて使い潰すしかありません。

 ということで最後に,実測した波形です。Si5351Aを使って作成した12.288MHzを,比較的まともなオシロスコープであるHO102と比較してみました。左側が今回のオシロスコープ,右側がHO102です。

 20230310142314.JPG

 HO102は帯域制限なしで,オーバーシュートもアンダーシュートも比較的良く見えています。周波数測定も波高値も十分実用になる精度だと思います。

 これに対して今回のオシロスコープはというと,波形そのものは30MHz程度で帯域制限がかかっていると考えればそれなりに頑張っていると思いますが,周波数表示は13.3MHzと8%もの誤差があります。

 ただ,12.288MHzでちゃんと矩形波っぽいものが出ていると言うことなので,実サンプルレートはその4から5倍くらいはありそうです。このあたりを頭にいれて使う分には,結構使い道があるかも知れないです。

 

ユーティリティ

2026年01月

- - - - 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 31

検索

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

ユーザー

新着画像

過去ログ

Feed