「気になった事を・・・」カテゴリーアーカイブ

日常、気になった事、どうでもよい話題などをつぶやく。

RX64M、GR-KAEDEを試用してみた

GR-KAEDEを試用する機会があったので、少し内容に触れてみたい。

同時に、「RENESAS E1」も借りたので、それについても述べておく。

ルネサス関係のマイコンを集中して扱っているが、E1エミュレーターは、持って
いない。
理由として:
・値段が高い
・基本的に普段は詳細なデバッグを必要としない事が多い
※この理由が大きい、ターミナルデバッグで通常は十分
・ルネサスのIDEを使わない(購入するには高価すぎる)
・KPIT はフリーで使えるが、やはり、IDE が好きでは無いし、自分的には刺さらな

など、色々な理由がある、今回は、デバッガーとしてではなく、FlashROM
の書き換え時に、「Renesas Flash Programmer」でのみ利用した。
通常は、シリアルポートを使って書き込んでいるので、それに比較すると、書き込
み速度が速く、重宝した。

GR-KAEDEは、ハードとしては悪くは無いが、高すぎるので興味は無い。
※サポートや、色々考えると、まぁしょうがないのは理解できるが納得はできない。
※バッテリーバックアップ用の電池フォルダーくらいは付けて欲しかった。
・初期からSDRAMが載っているのは好印象。

GR-KAEDEに用意されているプロジェクトに関して:
とりあえず、WEBコンパイラで、簡単なコードを動かしてみて、動作確認し、自分
のシステムに、必要な部分を移植(主にイーサーネット関係のスタック)する為、
プロジェクト一式のソースコードを取得した。
※何故か、ビルドして出来た、mot ファイルをフラッシュに直接書いても動作しない。
スケッチとしてロードすると機能した、「まぁ、そういうものなのだろう」として
詳細な理由は調べなかった。

今まで、GR系のソースコードには触れていなかったのだが、開発期間が短いので、
色々調べたが、やはり既にある程度枯れているソースを再利用する事にした。

第一印象:
・CとC++のコードがあるが、どれも、品質がとても低い。
※ボードの価格に値しない、ソースコードの品質
・コーディング規約はほとんど守られていない。
※多分、会社内でコードレビューを行った事が無いのだろうな・・・
・関数名、クラス名、変数名のつけ方に一貫性がないのでわかり難い。
・C++のクラスがいくつかあるが、これはC++とは言えない(C+-だろうな)
※典型的な、C++を少しだけかじったCのプログラマーのコード
・色々なところに細かく罠とも思える実装依存が含まれている
※動作させるまでに、時間がかかった・・・
・設計が悪すぎで、典型的なスパゲッティーコードになっている。

そんなこんなで、動作させるまでに非常に時間がかかってしまったが、色々改修し
ながらコツコツを進めている・・・

純正インクに係わる陰謀説

以前から、プリンターはキャノン製を使っている、まぁ使用頻度はあまり高くは
無いが、無いと困る、スキャナーはそれなりに使っている。
印刷品質も満足していて、十分綺麗で納得だ。

使っていたのはMP950、10年は使っていたと思うが、最近故障してしまった。

しかし、故障の感じが「妙」で、液晶にインク系のエラー番号が表示され、先に進
まない。

まぁ、10年は使ったし、修理して使うのも無理そうなので、型落ちの同じような
複合機「MG7730」に買い換えた。(型落ちは、最新型に比べても、性能は申
し分無いレベルで、それでいて値段が凄く安くなっている)

今回問題と思う違和感は、何故故障したかだ・・・
最近、純正インクは高杉なので、互換インクを使っていたのだが、どうも、それが
原因ではないかと疑っている。

内部のフォームウェアーで互換インクと、純正インクを見分けていて、互換インク
の利用限度(多分設定されている)を超えると、エラー番号を表示して、本体を利
用できないようにするプログラムが仕組まれているのではと思っている。
※互換インクを数回使って同じような壊れ方をした話を知り合いから聞くことが出
来た。

写真画質でも、汎用カラー印刷でも、印刷を比べて、互換インクの品質が、純正イ
ンクより著しく劣るとは考えにくい。

昔、ブラウン管TVが主流の時代に、回路図を見ながら修理をしていて、70Vか
かる部分に耐圧限度が75Vのトランジスタを使っていた、これは、数年で壊れる
ように誘導する為の作戦で、承知の事実だった。
※たかだか数万円の製品の場合3年くらいで買い換えてもらわないと、メーカーは
やっていけないと言うのが言い分らしいが、理解はできても納得はいかない。

——
消耗品のインクを高くして、本体の価格を安くするビジネスモデルはレックスマー
クが始めたものと思うが、まぁそれを否定する事も難しい背景があるにはあると思う
が納得はいかない。
・日本の工業製品の品質は高く、本体が壊れにくくなっている。
・開発には多額の投資をしており、本体価格に乗せて売りたいが、市場には受け入れ
られない状況になっている。(他メーカーとの競争もあるし、本体価格をギリギリま
で下げる必要がある)
・本体は、一度購入すれば、買い替えが起こる頻度は少ないので、継続的に利益を
得る方法が必要となる。(消耗品のインクで儲ける、そうしないと開発チームの維持
が難しい)
・基本的な性能は、すでに十分熟成しており、性能と価格の住み分けが難しくなって
いる。

ただ、純正インクの値段が、とてつもなく高い。

互換インクはかなり安いが、本体にロックがかかる事を考えると、「純正やむなし」
と言えるかもしれない・・・

インクには、チップが内臓されており、リバースエンジニアリング(完全なリバース
エンジニアリングは難しい)されても、間欠的に通信する特殊な暗号通信を装備して
いれば、互換インクを見分ける事も可能なのだと思う。
純正品のカートリッジを利用する場合で、リセットしても、リセットの回数が記録さ
れていて、それを読み出せれば、互換インクの識別に使う事が出来る。

逆説的に、互換インクメーカーに、チップの通信プロトコルに関して、少しだけ情報
をリークしておき、ある程度互換インクを作りやすくする事で、互換インクメーカー
をコントロールしておけば、互換インクを使うユーザーは、必ず本体が故障するので、
買い替え頻度が上がり、本体の買い替え需要も見込めるものと思われるが・・・
ただ、このモデルはあくまでも、想像にすぎず、厳密な証拠は無い、これが本当かど
うかは、本体内部ファームのソースコードを精査する必要があるが、それは実現しな
いだろう。

—–
壊れた、MP750は、暇な時にでも分解して内部を見て見ようと思う。

ロシアの板金動画が心地よい~

昨日は、R8C/M120ANで、USBチェッカーを作っていたのだが、フレキが、
ポロッと取れてしまい、著しく、気分が低下した。

—–

そこで、この動画。

「Arthur tussik」さんのYouTubeチャネル

以前に見つけて、気に入って、チャネル登録していたのだが、かなりのペースで、新作
が上がる感じ。
アナウンスは、ロシア語なので、意味不明ではあるが、クシャクシャの車が蘇る様は気
分も高まり、観ていて、気分爽快なのだ!
※動画は数倍速で編集されているので、長くもなく短くもなくでエンターティメントと
呼ぶにふさわしい創りになっている、最近のは英語の字幕もある。

この、「Arthur tussik」さんの板金テク、観ていていつも関心する。
ある時は、叩いて、ある時は、引っ張って、またある時は、切り貼りして。

日本では、(多分)これは廃車だろうって感じのクシャクシャな状態から、見事に復元
する技術は必見、観ていて楽しい!
日本にも、同じような技術をもった人はいると思うが、工賃や、中古価格の兼ね合い、
車検制度による弊害など、このような職人は少ないのだと思う。

それにしても、何であんなにクシャクシャになるの!?、それでもエンジンとかは無事
だから不思議・・・

色々な車種、壊れ方の復元動画が沢山あるので、暇な時にでも、覗いてみたら、良いと
思います。

スバルフォレスター修理
この車両は、転がったんだろうと思えますが、日本では、ここまで壊れたら、「廃車」
するしか選択肢は無いでしょうね、どんなに修理費をディスカウントしても、同程度の
中古車がそれより安く買えるでしょうから・・
※直して売れる価格なら修理するでしょうけど、日本では「事故車」に対して偏見が
あるので、少し安い程度では販売は難しいのかも・・
※「部品価格が非常に高い」のと、中古部品のネットワークが特殊なのも、修理を難し
くするのかも・・

LEDライト購入と、中華クオリティー再び~

LEDライトは、色々持ってるけど、凄く明るいのは持って無かった・・
それと、18650リチウムイオン電池で使うタイプが欲しかったのだけど、アマゾンで、以下の物を見つけて、購入してみたー

WOLFTEETH 4005N ズーム機能付き ズーム 超明るい LED 1200Lm LED 懐中電灯 ハンディライト ハンドライト  フラッシュライト 【2×18650電池 USB充電器】 ブラック

以下のようなセット内容・・・
Light18650

2200mAだけど、リチウムイオン電池が2本付いて、充電器も付いてるので、1988円は、お得かなと思って買った~

ライトは、凄く明るく、ズーム機能があったりで、値段の割に(ライトだけだと1178円)納得の物だったが・・・

がしかし・・・

流石な中華クオリティー、充電器は偽者だった・・・

そもそも、この充電器、充電ランプも無いし、かなり怪しい物だったが・・・

「USB充電器」とあるので、素直に、付属のケーブルを繋いでみたが、電池が熱くなり、USBアダプターの保護回路が働いたようだった。
中がどうなってるのか気になって、分解してみると、(予想はしてたけど・・)単なる電池ボックスで、丸ミニプラグに「直」で繋がってるだけだった(怒)
多分、専用の充電アダプターを繋げる物なのだけど、肝心の充電アダプターは入っていないので、普通の人は、そのままUSBに繋げると思う。

まぁ、中華とはそんな物だなとも思い、先日購入した、リチウムイオン充電モジュール(190円)を繋いで、充電できるようにしてみた。

HiLetgo 5V 1A 18650 リチウムバッテリー チャージボード Micro USB チャージモジュール プロテクト [並行輸入品]
参考回路

まぁ、これも中華なんだけどね・・・

IMG_0791s

・充電電流は1Aに設定されており、PCのUSBからの給電では駄目で、1A以上の電流が流せる、アダプターからの給電が必要。
・いくつかのリチウム電池を充電してみたが、問題なく充電出来る、1Aだと、充電ICはかなり熱くなるが、まぁ問題ないレベルと思うが、ケースに入れる場合には、基板の放熱を考慮した方が良いだろう~
・このモジュールには、他に、電池を外部と分離するFETスイッチが付いているようで、設定された電圧よりリチウムイオン電池の電圧が下がると、OFFになる機構が付いているので、過放電の保護にも。
TP4056 (A Standalone Linear Li-lon Battery Charger with Thermal)
DW01A (One Cell Lithium-ion/Polymer Battery Protection)

「電池ボックスの憂鬱」
充電する場合、意外と盲点になりやすいのが、「電池ボックスの仕様」だ!
上記の充電モジュールは、1Aの電流を流す事が出来るものだけど、良く売られている電池ボックスでは、接触力が弱く、接触抵抗が不安定なので、
1Aの電流を、安定して流す事は出来ない。(接触抵抗が安定せず、充電電圧が変動してしまい、正しい充電が行えない場合がある)
今回、付属の「電池ボックス」は、バネのテンションがそこそこ強く、1Aでも、ギリギリ使えそうではある。

OrangePi と 中華クオリティーとは

安価なマイコンボードと言えば、RaspberryPi が有名です、最近は、より高性能な「2」が出て
応用範囲もさらに広がり、躍進を続けています。

IMG_0766s
同じようなコンセプトの、中華ボードも色々出ていますが、その中で、「Orange Pi」は、WiFi
や Serial ATA インターフェースが付いてるものもあり、魅力的なボードです。
1ヶ月前くらいに、「Orange Pi PLUS」(Wifi、Serial ATA 付き)を注文して、昨日ようやく
配達されました。

早速、ウキウキしながら、開封。

Orange Pi PLUS は、シリアルATAのインターフェースがあるので、電源供給には、良くある
マイクロUSBコネクターでは無く、DCプラグで行います。

配送物には、ボードとDCプラグ、USBケーブルが同梱されており、このケーブルを使えば
専用ACアダプターが無くても、USBプラグから電源を供給する事ができ、便利です。
※一応「2A」を要求しています。

早速、iPad の、2.5AクラスのACアダプターに接続して通電してみますが、ピクリともし
ません。
色々試すと、電源を繋いだとたんに、アダプターの保護回路が働いているようです・・
家にある、より電流容量の大きいアダプターなどで試しますが、同じように保護回路が働いて
いるようで、全く動作しません・・・

DCプラグの大きさが、丁度同じACアダプター(ポータブル・ブルーレイ・ドライブ用)が
あったので、付属してきた変換ケーブルの極性を調べてみます。
変換ケーブルの電圧を測ると、外が+で、中が-、自分の持ってるACアダプターは、外が-
で、中が+、残念、使えない・・

ヤレヤレ、「初期不良」なのかーと思い、やりとりとか面倒だなぁーと思いつつ、一応、テスタ
ーで、ボードの電源のショートをチェックしてみます。
とりあえず、ショートしている訳では無いようです・・

テスターをあてていると、ふと、DCジャックの極性が気になりました。
ボードの配線パターンを観ると、どう考えても、DCプラグの外は-で、中が+であるハズです
!?
そこで、裏に実装されていたレギュレーターらしきICの、確実に正しいGNDを調べてみます。
※AMS1117
すると、やはり、外が-で、中が+である事が確定しました。
ええって思い、何度も確認しましたが、外が-で、中が+!
そこで、先ほどのACアダプターを接続して電源を投入すると、LEDが点灯して、ボードに正常
に電源が入る事が確認できました。

と、ゆー事は、この付属のケーブルは、極性が逆です。
IMG_0764s
なんとゆー、恐ろしい事でしょうか・・・、中華クオリティー怖い・・・、最低です。
逆の電圧を何度も加えたので、ボードに損傷があるかもしれません・・・

SDカードにOSを入れて、立ち上げてみたら、一応起動するようで、一安心ですが。
※インサーネットが無反応なのが気になります・・・

「中華クオリティー」って???、凄く恐ろしい体験でした。

MacBook Pro を買う

以前に、Mac Mini を購入して、iPhone のソフトでも作ろうと思い色々やっていたけど、ある程度「俺俺フレームワーク」が動くようになってからは、Windows 環境に移って、放置していた。

ノートPCを新規に購入する時も、MacAir13 とかで悩んだけど、画面の解像度が低いのと、ビデオデバイスが、インテル内蔵でショボイので、敬遠して、NVIDIA のビデオデバイス内蔵で、薄くて軽い、ASUSのUltraBookを購入した。

知り合いに、「今時、Windows」などと言われて、「Mac が一番だと思ってるやつ」の心の狭さに、引いたー。

そんで、最近、仕事で Android のソフト開発をするようになったんだけど、Windows では、開発出来ない状況を経験だった、(みんな Mac を使っていた)。
これは、NDKで開発しているのだけど、C++ のソース数が異常に多くて(350ファイルくらいある)、Windows(cygwin) では、コマンドラインで受け付けるバッファがオーバーフローしてしまい、リンク出来ない。
※情けないぞ!

仕方無いので会社では Mac を使っていたが、たまたま、Mac のホームページを観にいったら、最近出た、インテルの新しい CPU を使い、Retina ディスプレイで、光学ドライブが無く、薄型で、軽い(1.57キロ)「MacBook Pro」が目に止まり、興味をそそられた。
会社で使っているのも Mac なので、ビデオデバイスが、インテルでショボイけど、ここらで、MacBook も欲しいなぁーと思い、ポチってしまった!
メモリーは、折角だから 16GB とかにしておいたが、かなりの高額な物になってしまったが仕方無い・・・

買って使ってみると、思いの他快適な事に少し驚いたが、何もかも Mac で完結する訳でも無いので、悪くは無いよねーって、少し強がってみる〜www

そんで良かったと思う事などー

・タッチパッドの操作性が凄く良い!
※UltraBook も少し見習うべき!
※このくらい操作性が良いと、普通の操作ではマウスは必要無いなぁー

・電池が凄く持つ!
※これは新しいインテルの CPU も貢献しているのかも。

・電池で動作させていても、電源を繋いでいる時とあまり変わらない操作性。
※よく出来ている〜

・基本 unix なんで、MinGW とかから違和感無く使え、ターミナル上で、emacs も普通に動く。

駄目なとこは・・・

・Windows にあって Mac に無いフリーソフトが結構あって、多少辛いとこもある。

・やはりシングルボタン系では厳しい場面がある。

・値段が少し高い。
※確かに、細かい部分の作り込みなど、非常に良く考えられていて、素晴らしい完成度なのだが、UltraBook とかの同列機から考えると、2割くらい割高だから、当たり前とも言えるか・・・

・ビデオデバイスが選べず、インテル内蔵のショボイまんま
※これは全体の構成を考えると、仕方無い部分もある、セカンダリーのデバイスを乗せると、電気も食うし、色々と考えなければならない事が多くある、セカンダリーのビデオデバイスを必要とする人も凄く少ないから、まぁしょうがないな・・・

そんなこんなで、結構快適に使ってますーwww

MacBook Pro 13 retina

次は、Windows で作っていた、「俺俺フレームワーク」を Mac に対応したので、次のブログで紹介したいと思います。

PCオーディオ(その2)

さて、部品が揃ったので早速組み立てです。

今度は、以前の失敗で懲りて、全部ソケットを使います、「直」に載せると、余分な工程が無くて、作業が速いのですが、前回のように壊すと、どうする事もできずに、作り直しですww
ソケットを使った事で、ソケットと変換基板下のスペースを有効活用できます。

とりあえず、丁度良い大きさのユニバーサル基板があったので、それにPCM2704を標準的な回路で組んで、PCに接続して、認識する事を確認しました。
※オーディオを再生させて、信号が正常な事をオシロスコープで確認しました。

次に、CS8416関係ですが、SSOPでも幅が狭くて、秋月の変換基板ではパッドの部分が不足していたのでダイセン電子の変換基板を使います、ただ、この基板の横幅は、600ミルでは無く、通常の28PINソケットが使えません。
一般的なソケットでは無く、ヘッダーピンにしたので、基板下のスペースをさらに有効に使えます、PLLのフィルターは、このスペースに配置しました。

・オーディオマニアが陥る霊感商法
USB に繋いだオーディオ機器は音が悪いとされます、それを改善する為、1本数万円の高価なケーブル(霊感商法と何ら変わらないと思います)まで売っています、確かに、電源ラインには、PCで発生したスイッチングノイズが乗っており、これらが音質に与える影響はあるかと思いますし、USB一口では、500mAの電流しか取れませんから、別に電源を取りたいと考えるのでしょうが、設計してみると、ヘッドホンアンプと、USBデバイス、D/Aなど諸々で、500mAあれば十分ですし、可聴範囲のノイズは聞こえない程度に取り除けば良い事です。
USB の信号は差動のデジタル信号で通信を行なっており、ケーブルの品質がある程度あれば、値段の差による音の違いは無いと思われます、ブラインドテストをすれば、ハッキリすると思いますが、数万円のケーブルと、ダイソーで買える100円のケーブルに何の違いもありません、デジタルデータは、価格の大小に関係無く、完璧に転送できますし、USBオーディオの仕様や仕組み、その他必要な知識も無い人が、ジッタの影響とか、欠損するデジタルデータとか、論理的裏付けの無い技術論は滑稽で仕方ありませんww
数万円のケーブルは抵抗が低くて、100円で売っているケーブルより優れていますが、何十メートルも伸ばす訳ではありませんし、デジタルデータは差動信号による半二重のパケット通信です、デジタルデータは欠損無く通信できますし、エラーコレクションもありますからデジタルデータの欠損は通常ありません、もしあるようなら、USBのクライアントとして認識できなくなります。
影響を与えるのは電源ラインだけですが、それも、500mA程度ですから、ある程度のゲージを使った銅線であれば問題無いレベルです。

しかしながら、それでも、人知の及ばない何かが作用して、月の満ち欠けだとか、微弱な電磁波とか、何か影響’を与えるかもしれませんが、「ダブルブラインドテスト」でもやって、それで80%以上の確からしさでも常にマークしない限り、そんな戯言を信用する訳にはいきません。

USB_AUDIO

・OP-AMPの電源は、+-12VのDC/DCを使っています。
・ヘッドホンアンプには、+-5VのDC/DCを使っています。
・DACには、低損失の5Vレギュレーター
※USBの電源は、通常5.2V程度ありますので、三端子レギュレーターで5V、及びロジック用などに3.3Vを生成しています、高周波のノイズを落とす為にフェライトビーズを入れています。
・とりあえずの実験用なので、とりあえず、ボリューム用二連の10Kを使っていますが、最終的にはデジタルボリュームに変えたいと思います。

さて、ネットにある色々な回路を観ると、多くの方が、非常に大きなコンデンサー(オーディオ用)を電源に入れていますが、果たしてそんな大きな容量が必要でしょうか?
※低ESRのコンデンサーは効果があると思います。

例えば、よく使う三端子レギュレーターは、入力側に0.1uF、出力側に10uF程度入れれば、十分なレギュレーションが得られるように設計されています、もちろん流れる電流のダイナミックレンジにより発生するリップルは変化しますが・・・
また、OP-AMPは電源の変動を出力に出さない為の工夫が色々施されていますから、多少のリップルが乗った場合でも、それが出力に現れる事は少ないのですから、大きなコンデンサを入れる意味はあまり無いと思います。

視聴しながら、テストする場合でも、大きな容量を入れた場合と、標準的な容量(データシート推奨の容量)を入れた場合で、ブラインドテストを行い、85%位以上の人が検知出来ないのなら、標準の容量で十分なハズです。
自分でテストするのでは、客観性に欠けますし、精神状態が変われば、結果も変わりかねません。
明らかに違う場合は別ですが、それは、何か根本的に間違っているとしか思えません。

測定器を使って、「大きな容量のコンデンサを入れるとリップルが少なくなる」と言う人もいますが、多分検知できる程のレベルでは無いと思います。

よって、コンデンサーの容量は、適切な値にする事が最も適切で、最大の効果を得る早道だと考えます。

今回の試作では、電解コンデンサーは低ESR品の100uFが二個で、残りは0.1uF~47uFの積層セラミックコンデンサーです。
ボーカロイドからクラシック、ロック、J-POPなど色々なジャンルの音を出してみましたが、現状でも十分な感じがしますが、これから、一応、測定を行い、それにより改修を行う必要はあります。
まぁ、測定を始める以前に音がまともでなかったら無駄ですからー

回路図に起こすのはこれからですーー

PCオーディオ(その1)

最近、自宅を離れ、渋谷に通って仕事をしていますがー、そこで支給されているPC、DELL製のそこそこ高速なヤツです。
※Corei7の2.8GHzとか

作業は共同作業なのですが、周りの雑音を聞きたく無い時は、イヤホンで音楽を聞きます、iPhoneから聞いても良いのですがー、気晴らしに観るYouTubeとかニコニコの動画はPCで観るので、差し直すのはメンドイしでPCで音楽も聞きたいのですがー、「音」が最悪ですー、DELLに限らず、メーカー製のPCでも、フロントパネルに出ているイヤホンジャック、かなり劣悪の品質と言わざるをえません、PCの電源ノイズがモロに乗っているし、長時間の視聴には耐え難いものがあります。

ならば、USBのオーディオインターフェースでヘッドホンアンプ付属の適当なやつをと思ったのですがー、安いやつは、チープな音しか出ないし、コンパクトで、高音質なやつは値段も高いと言う事で、色々考えているうちに、「自分で作ればいいんじゃね?」
と言う、いつものパターンに突入しましたww

丁度、秋月で、TI製のUSBオーディオインターフェース(PCM2704)を売りだしたので、1個買っていそいそと試作してみましたー

PCM2704は、ヘッドホンを鳴らす為のアンプも内蔵しており、このチップだけで、ヘッドホン出力が提供出来るものです、しかし、内蔵アンプは単一電源で動作する、簡易的な物で、音も期待するまでもなく、それなりの音しか出ませんし、出力も小さく、とても、自分が要求するようなレベルの物では無い事が直ぐに判りましたー
色々回路をいじっているうちに、誤配線をしてしまい、あっとゆーまに燃やして、お亡くなりになりましたー、半導体独特の燃えた匂いを嗅いだ時は、何ともいえない、気分です・・・・・・
※虚しいやら、ムカツクやら

PCM2704 試作
PCM2704 試作

※使える部品は再利用の為取り外している

最初は、1000円くらいで、そこそこ納得のいく音が出ればイイくらいに思ってましたがー、「自分のミスによる大きな損失」が次のやつを「ちゃんと」作るモチベーションに変わりましたー

そこで、ネットを探してみると、DAI(デジタルオーディオインターフェース)、D/Aコンバーターの製作例は多くて、みなさんハンパ無い投資をしている人もいますww
自分は、「まともな音」が聞ければ良いので、自分の考える範囲で、部品をセレクトして、発注してしまいました。

PCM2704(TEXAS INSTRUMENTS)
※USBからオーディオデータを取り出すのは、とりあえず、この石です、最大48KHz16ビットと最低限のものですがー、探しても、市販されているデバイスで、入手可能な物は、ほとんど無く、とりあえず、このデバイスで「良し」としました。
TENOR社にTE7022Lと言うデバイスがあり、96KHz/24Bits が可能なようですが、入手先を見つけられませんでした。
USBオーディオの標準デバイスとして、192KHz/24Bitsをサポートするのは、自分で組むしかなさそうです。(USB2.0をサポートした、デバイス
を備えた、マイクロプロセッサとFPGAが必要な感じです)

CS8416(CIRRUS LOGIC)
※PCM2704はアナログ出力の他に、S/PDIF信号も出力します、CS8416は、その信号をデコードして、D/Aコンバーターに必要なクロックと、データ信号を出力します、PLL回路や、オーバーサンプリングに必要なロジックも内蔵していて、最大192KHz、24ビットを扱え、外付け部品も少ない優れものです。
S/PDIF入力は、何系統かありますから、USB、光、COXIALなどを備えて切り替えが出来れば、D/Aコンバーター付きヘッドホンアンプとして使えます。

PCM1798(BURR-BROWN/TEXAS INSTRUMENTS)
※バーブラウン社は、デジタルオーディオ関係のデバイスの製造で有名な会社ですが、今はTIの傘下となっています。
このD/Aコンバーターは、192KHzのサンプリングで24ビット出力が可能な物です、ファミリーとして、さらに高性能なPCM1794と言う、最高ランクのD/Aがあり、マニアの間では、それを使うのが一般的のようですが、コストが倍以上しますし、PCM1794の性能を引き出すには、周辺回路にもかなりコストをかけないと、意味が無いので、今回は見送る事としました、データシートを読む限り、このデバイスでも、相当優れた性能を出せる事がわかります。

OPA2604(BURR-BROWN/TEXAS INSTRUMENTS)
このOP-AMPも、バーブラウン製です、高速、ローノイズ、低歪の高性能アンプです、スルーレートがなんと25V/usもあります。
秋月で300円ですが、それを調べる前にDigiKeyで370円で沢山買ってしまいました・・・(かなり痛いです・・)

TPA6120(TEXAS INSTRUMENTS)
ヘッドホンアンプは、まともな物を作ろうと思うと、意外と難しいです、色々と各社からICは出ていますが、どれもこれも、チープな物ばかりで、「本物」がありません、「ベスト」は、ディスクリートで組むべきでしょうが、スペースとコストを考えると、それも無理です、そんな時、見つけました、良さそうなのが・・
電流帰還型で超高速(1600V/us)、非常に大きなドライブ能力(低インピーダンス)、低ノイズ、オフセット電圧も小さく、+-両電源なので、カップリングコンデンサも必要ありません。
値段も600円程度と、まさに理想的。

これら部品と諸々で合計で5000円程度。

続く~

SH7125 モータードライバー試作に向けて・・・

ちょっと前からブラシレスモーターのドライバーを実験している、以前(何十年前)に大学時代マイクロマウスをやっていた頃、DCサーボモーターの制御回路を作った事があり(全てアナログ回路)その時の知識が未だに大体使えるが、三相モーターの制御はDCモーターより複雑で、ある程度の精度で、一定速度の運転をするくらいならそこそこ簡単だが、速度とトルクを高精度で、しかもデジタル制御するには、色々と新規に開拓する事も多い。
まぁ、とは言っても、昔のように1MHzで動く8ビットマイコン(6502)とかでやっていた頃とは雲泥の性能差があり、コストも安く、デバイスの入手も楽になった為、昔のような苦労は少ない。

今回の仕事、電動バイク用のコントローラーや電源管理など、全体のパッケージの開発依頼があり、開発費はもらえないが、趣味の延長とこれから色々応用も出来そうと思って勉強のつもりでとりかかった。

最初に、AVRで 簡単な実験を行って、ブラシレスモーターの「肝」を「触り」だけ実験してみた、とりあえず、回転する事は出来たので、本格的に汎用性のあるドライブ回路を実験する為、部品集めと試作回路など作り始めた。

↑ATTINY861 を使った実験回路、手持ちの貧相な部品で作った為、パワーMOS-FETが死んでしまい、もう使えない・・・


↑ラジコン飛行機用のブラシレスモーター、安いし実験には便利!
※クワッドローターのヘリコプターを作ろうと思って4個も購入したww

最初は専用コントローラーを使う事を考えて、部品を探したが、擬似的な正弦波による制御チップがほとんどで、「回すだけなら」出来るが本格的なベクトル制御には向かないものが殆どだった。
ATTINY861も、PWMが3チャネルあるとか、デッドタイムの設定が可能とか、PLLを使って高いPWM周波数が可能だとか、ブラシレスモーターを意識した構成なのだが、ちょっと物足りない、そこで、色々探したらSH7125が適格である事が判った、50MHzで動き(実質的には40MHz)積和演算も高速だし、三相モーターに必要なPWMの構成も出来る。
※以前に秋月で買っていたので、早速テストしてみる・・・

で、早速実験し始めたのだが・・・
※SH2は、以前にSH2Aのデータロガーで KPIT の gcc 環境を使っている為、これを利用すれば簡単と思っていたが、意外と手こずってる・・・

・フラッシュROMの書き換え回数が100回まで保障 —> 少なすぎて、実用的では無い。

そこで、WEBをグルグルしてたら、デバッグ・モニターを公開しているサイトがあったので早速ダウンロードして、書き込み使ってみる。
RAM用にプログラムを作り、動かしてみるが思った通りに動かない・・・

・まず最初に引っかかったのが、「gccアセンブラ」
gccのオプションでSH2のタイプを指定しているが(-m2)これで指定しても、アセンブラレベルでは、SH2に無いニーモニックも普通にアセンブル出来てしまい(エラーが出ない)、結果、未定義命令で止まる・・・
これに気が付くまでに数時間かかった、上記のデバッガー、逆アセンブラで気が付いた。
mov.l r0,@r1+
↑この命令(ディストネーションのオートインクリメント)はSH2には無い・・・
mov.l r0,@r1
add #4,r1
にする事で回避、要は、gccの場合、アセンブラソースは極力使わないようにした方が無難なようだが、これは仕様では無くバグなのかもしれない・・・

次にはまったのは、デバッガーのバグ・・・
モトローラーのSフォーマットを食わせるのだが、ケツのデータがダウンロードされていない事が判明・・・
ホスト側のプログラム(objload.c)を見ると、Sフォーマットの最大アドレスを見つける部分に問題があるようで、そこを修正。

ついでに、逆アセンブラで、PC相対でデータを取得する部分、ワードアクセスでもロングでデータを持ってきているようなので、そこも修正、右に表示される取得データがワードアクセス命令でも正しく表示されるようになった。
※これらの修正は作者のゲストブックにコメントをしておいた。

次にタイマー割り込みを使う作ってみたが、思った通りに動作しない、とりあえず、ポーリングで動かしてみるが、全く駄目・・・
こんな簡単な部分で???
良く良くハードウェアーマニュアルを観ると・・・、初期状態では、クロックが供給されない設定のようだ・・・、これを設定、ポーリングでは動作するようになった、でも割り込みでは動作しない、割り込みを「許可」にした途端、何か別の割り込みが動いているようでそこで止まる・・・
現状ではここまで、まだまだ遠いなぁ・・・

なんでこんなとこでハマるのか・・・
まだまだ精進が必要だ・・・

——
最近、ARMの元気が良すぎる~
SHは昔から随分お世話になっている、SH3でボードを起こした事もある、それに純国産のRISCで、光っている部分も多いと思う、でもビジネスはとことんだらしない・・・、あれだけ良い部分を持っていてもARMの数の力に段々弱っている感じが観てとれる・・

開発環境もかなり弱い。
一応登録すればフリーなツールが入手出来るが(KPITのgcc)、何で登録制なのだろうか?
これでは厳密にはフリーでは無い、そしてgccもSH版はメンテナンスをしていないのではないのか・・、ルネサスはSH専用のコンパイラを外販しているが、価格が高く、オプティマイズの性能が良くても、使う気になれない(コスト比を考えると使えない)、gccとは桁違いに性能が良いようである、また、KPITのエクリプスにしろ統合環境ベースでプログラムを作ると、専用のランタイムライブラリーが勝手にリンクされてしまうし、コマンドラインでmakeとgcc、emacsで作りたいのに、それを阻害するしで、自分の好みの環境が提供されていない。
ARM だと、gccを使って幸せになれるツールチェインが沢山あるし、C++もboostも問題無く使える、しかし、SHではどうか?

そもそも、組み込み用で、gcc以外のコンパイラでまともにC++のソースコードをコンパイル出来る物はほんの一握りでしか無い事を考えると、一部のベンチマークで性能が良くても買う気にはなれないし、性能を出したければ、アセンブラで最適化すれば良いだけの話だと思える。
デバイスの値段もARMはもの凄く安くなっているし、種類も爆発的に多いし、こんな調子で、生き延びていけるのだろうかSH・・

オープンソースのEDAツールKiCAD

データロガーのソフトの完成度が上がってくると、ハードも整理して、プリント基板製作の準備も進めなければならないー

以前(10年以上も昔)には、EDAツールとして、アドバンストスケマティックを使っていた、それに、数十万円の投資も行った事がある。
※オートルーターとしてNuroRoutoも導入していた。
現在OSがWindows7になり(OS-X)、以前に買ったこのツールも動作させる事が難しい(無理やりインストールしても動かない)、とはいえ、Windows2000(NT4.0)をインストしたマシンを起こして、それにインストして使うのもそれはそれで大変だし、このプロテルのツール、自分のバージョンはバグだらけで、不安定、かなり神経をすり減らす代物だった、今更高いお金を払ってバージョンアップする気もおきない(基板を作る仕事が減った事も要因)。

そこで、オープンソースとかフリーで使えるEDAのツールを色々試して評価していた。

google 先生に聞いた色々なリンクを巡り、日本語の説明や解説を読み、本家のページから最新版をダウンロードして、ちょこちょこ試してみたが・・・
なかなか「ベスト」な選択が見つからないでいた。

※プロテルで養ったワークフローを元に、以下のような目安をポイントとしていた。
(1)回路図(スケマティック)とPCB(基板のトラック編集)、部品管理などが一貫している事
(2)バックアノテーションが出来る事(PCBで追加したトラックなどを回路に反映させる機能)
※これは、まぁ無くても・・
(3)オートルーターがある事
※できれば・・
(4)ミリ系の部品とインチ系の部品を上手く扱える事
(5)基板の大きさに制限が無い事(少ない事)
(6)4層基板程度までは出来る事(6層とかならさらに良い)
(7)デザインルールチェックが出来る事
(8)ガーバーデータ(フォトプロッタの為の描画命令コード)、ネットリスト、部品リストなど、基板屋さんが受け付けてくれるデータを出せる事
(9)フリーで使える
(10)バグフィックスとバージョンアップに期待ができる

かなり要求があるが、今は、こんな要求に答えてくれるソフトが入手できる(良い時代だ)

結果としてKiCADがもっとも良い選択なのではと思った。

だけど、「先人」たちも熟慮したであろう「どれが一番良いの?」を、一応これからEDAを始める人への参照として、他のソフトの評価などを書き添えておきたい。(断っておきますが、詳細に調査したわけではなく、簡単な回路を作って、少しの時間だけソフトを使っての評価なので、必ずしも適切とは言えないかもしれない事を念頭において欲しいと思います、また、評価したバージョン(時期)も重要で、時間が経って機能が追加されたりすれば操作性は変わるので、評価もおのずと違って見えます)

(1) BSch3v 「水魚堂の回路図エディタ」
・回路を描くには、申し分ないアプリで、使い方を見なくても、マウスをつっいていれば使い方が何とか判るような感じ、メニューとかも日本語なのでとっつきやすい。
・PCBのエディターもあるようだが、使っていない(オートルーターとかは無いようだ)
・ネットリストは出るので、PCBだけは別ツールで行うのもパスとしては「アリ」かもしれない。
・Windows版が主流だが、移植版もあるようだ
・オープンソースでGPL

(2)EAGLE Light
・これはフリーでは無いが、大きさなど制限された「ライト」版をフリーで使えるもの、小規模なPCBしか作らないのであれば、これも選択枠としてはアリかもしれない、当然ライセンスを買って無制限バージョンを使う事もアリかもしれないが(数百ドル~、趣味のレベルでこのコストを払えるか疑問)・・
・さすがに、売っているだけはあり、大変良く作ってあり、機能も豊富で、これだけの機能があればかなり大きな物でも困る事は少ないと思える。
・EAGLE Light に慣れ、もっと大きな規模に移りたいと思った場合に、今までのノウハウを捨てて、別ソフトに移行するのか、無制限版を買うのかなど考えると、良く出来ていてもうかつに手を出さない方が良いと思える。(自分の考え)
・Lightで痛いのは回路図が「1枚」だけしか使えない点

(3)TinyCADFreePCB
・日本語の説明やメニューを日本語にするなど、多くのリンクがあり、日本では、かなり多くの人が使っている感じで、HowToも豊富な感じ
・ともにフリーで使え、制限もほぼ無いが、FreePCBにはオートルーターの機能は無い
・別々のソフトなので、「連携」は少し弱いかもしれない
・操作性もある程度スッキリしていて、違和感も少なく、少し慣れれば、問題なく使いこなせると思われる。
・Windows版、オープンソースでGPL

—–

そしてダークホースのKiCADなのだが・・・

日本語での解説も少なく、評価している記事も割と古い版の物だった、最初ダウンロードして起動してみたが、そもそも回路図エディターすら満足に使う事が出来なかった、それで、別のソフトの評価を行ったのだったが、全体の構成とか、機能など、捨てがたい魅力があり、再度挑戦。

「やはり、自分の最初の印象は間違った前提によるものだった」

回路図エディターで、負論理のラベルに「バー」が付けられないのがなぁとか、細かい部分でいきなり駄目だししたのだが、オープンソースでソースコードも公開されているので、気に入らなければ自分で作ればいいだけの話。
多国語対応で各国色々対応しているのだが、「日本語」リソースだけ無い?

自分の評価は「KiCad-2010-05-05-BZR2356-final」バージョンだが、(RC4だが、「KiCad-2011-01-25-BZR2754_RC4a」の版もある)
基本的な機能にアクセスするのが、「面倒」と思ったのだったが、このソフト、マウス+キーボードで両手で操作する事が前提のようだ、キーボードは機能ボタンとして働く(右ボタンでメニューを出してそれを選択する事でも出来るが・・)、それが理解できれば、かなり小気味よい操作性で、使いやすい!
部品ライブラリーの操作も、基本的な操作を覚えれば簡潔な事が判った。
※新規ライブラリーの作り方が少し独特で判らない部分であったが・・

この独特な操作性で、日本での評価が少ない(低い)のかもしれないが、考え方としてはむしろ「正統」なのだと思う、EDAは機能としては、複雑なので、機能ボタンを沢山用意して、回路図(又は部品、トラック)と機能ボタンとの間でマウスポインターを行き来するよりは、キーボードを機能ボタンとして働かせた方が断然使いやすい、ユーザーに機能とキーボードボタンの対比を覚えてもらうハードルがあるが、回転(R)、移動(M)など基本的なボタン操作だけでも覚えれば、もうそれでも十分な操作性でもある。

PCBにはオートプレース(まだ使い方が良く判らない部分がある)やオートルーターがありWEBベースのオートルーターの機能を呼び出す事も出来る(まだ試していない)し、部品とフットプリントのマネージメントを行う機能もあり、プロジェクトとして一貫した操作が出来るのが素晴らしい。

基板の3D表示(OpenGLを使う)も出来、機能満載である。

マルチプラットホーム、Linux版やOS-X版もあるようだ。(使っていないが・・)

これなら、ほぼ申し分ないと思う、これからもっと深く使って、順次評価も深くしていきたいが、とりあえず、これで出来そうな感じと印象を得た。
暇が出来たら、メニューを日本語化して、リソースを本家に送ってみたいと思う(英語のメールを書くハードルがあるけど・・)。
回路図で「バー(負論理の表記)」が付くようにするパッチも作りたい。