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

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

RL78の開発は中断しています

RL78/G13系は、低価格で、高性能なマイコンで、R8CとRXの
中間を埋めるものとして期待して、始めたものの、以下の理由で、中断し
ている。

(1) 内臓データフラッシュのハードウェアー仕様などが公開されない。
(2) 内臓データフラッシュ操作ライブラリーは、gcc 環境では提供されな
い。

以上が、「中止」の主要因で、他にもある。
(3) 16ビットマイコン特有の、特殊な制限
(4) RX24Tの存在

(3) については、色々あるが、16ビットマイコンとは言っても、内部の
構成は8ビットマイコンと変わらず、リニアにアクセスできる領域は64
Kバイトとなっており、特別な命令により、広範囲にアクセスできる。
また、領域には特別な意味を持たせ、小さい空間を効率よくアクセスでき
るようにしているが、デバイス特有なもので、専用のコードになってしま
う。

(4) は、コストに関するものだ、RX24Tは、10個購入で@550円
なので、それでもRL78/G13に比べるとコスト高だが、32ビット
マイコンで、80MHz動作、256Kのフラッシュ、16KのRAMと、
かなりCPが高いマイコンではある。
また、あまり多くのデバイスに手を広げるのはリソースの集中の観点から
も良くないと感じる。
当面、R8C、RXマイコンに集中する。

それでも、RL78のリソースは、一通りあり、基本的にハードウェアー
特有の部分は隠蔽してあるので、特別な事をしない限り困らないと思う。
また、R8CやRXのテンプレートライブラリーと共通性がある為、コー
ドの再利用は可能と思う。

GitHub のリポジトリーはそのまま残す。

-----
RX24TはCPが高いが、RTCが無い、CAN、イーサーネットが無
いなど、ハードウェアーを制限している(元々インバーター向けの製品な
ので・・)為、後付すると、RX62系や、RX63系など、より上位の
マイコンとコストは変わらなくなるので、使い方は多少微妙だが・・・

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 懐中電灯 ハンディライト ハンドライト  フラッシュライト 【2x18650電池 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・・