mbedで色んなことが簡単に出来るだろうことはわかったけど、遊びと勉強ばかりでは面白くないので、仕事に何か応用できないかと考えた。
そこでこの時にVB.netで作ったRS485通信のPC内シミュレータを、mbed LPC1114に移植できれば複数台の通信確認が取れるなと考えて、RS485通信トランシーバIC (TE)SN75176BP とブレッドボードその他を購入しやってみました。
今回は、3台分の機器側に成りすますシミュレータをブレッドボード上に配線します。 ブレッドボード上に1台ずつ、計3枚の普通のブレッドボードが必要。
- 購入部品 (LED、抵抗、配線材などは手持ち品を流用)
名称 型番 購入先 数量 単価(税抜) 普通のブレッドボード EIC-801 スイッチサイエンス 3枚 257円(税込) mbed対応マイコン LPC1114-FN28
生産中止(?)品秋月電子通商 3個 120円 RS485/RS422トランシーバIC (TE)SN75176BP 秋月電子通商 3個 80円 ディップSW 5P 秋月電子通商 3個 60円 タクトSW 各色 秋月電子通商 3個 10円
- 配線図
- 電源はトラ技ライタ経由USBから取る。
- ディップSWで局番(今回は1~3)設定可能とする。
- SN75176BPのDE端子は、機器1台なら3.3V印加しておくだけでOKだが、機器2台以上マルチドロップの場合は、マスタからのコマンドに返信するとき以外はバスを解放する必要があるため、マイコンのdp4を返信直前にHigh、返信後20msec後にLowとするソフト処理を行う。
- マイコン側は3.3Vなのでこのままで良いか不安もあったけど動いてるから大丈夫?
- マスタ側ソフトは、このディレイ時間20ms分の待ちが必要。
- この信号のHighの時に赤LEDを点灯させる。
- RS485バスラインのプルアップ抵抗(R5)、プルダウン抵抗(R6)の抵抗値は、実際の路線長で決める必要があると思うのだけど、今回はテストなので小さ目の抵抗を入れてみた。
- 生存確認用にLED1を点滅。 UARTポートと共に割り込みプログラムとする。
- プログラム
- 今回は、仕事の秘匿義務の兼ね合いもあるので非公開です。すみません。
- コーディング・デバグは、ある程度の段階でmbedオンラインコンパイラからエクスポートして、μVision4にて行いました。
- 配線状況
テストなのでヒドイ状態ですね。(汗) 下記動画の際には少しだけ整理しました。
- 動画
PLC側のテスト画面と共に映してみました。ボーレートは38,800bps。
機器1→機器2→機器3と通信先を切り替えてサイクリックに通信します。 機器側が受信し送信中に赤LEDが点灯します。 1回のコマンドで1点灯で、点滅回数分のコマンドを処理しています。
今後も仕事で通信案件が来た時には、こんな感じでシミュレータを作って事前テストするですね。 部品単価が安いので、USB/RS485コンバーターを買うよりずっと安価にできますし。
ここまでテストばっかりやってきたけど、そろそろ実際に動かす何かを作るかなあ。。
引き続き、mbedをいじってます。
先日入門したばかりでもとても便利と感じるmbedのオンラインコンパイラ。
オンライン上で先人の公開したライブラリやプロジェクトをさくっとインポート出来たり、自分のPC環境に依存しない、デバイス毎に異なる設定などは予め設定済みで、マイコンの種類を変えても少しの変更ですぐに移植できる、などなどとても良くできていて、私のような初級者には大変ありがたいものであります。
しかしですね、、やっぱりIDEでオフラインコンパイル、ステップ実行デバグをやりたいですね。 ということでmbedと先人の知恵を頼ってやってみました。
- 概要
トランジスタ技術2014年3月号には付録にトラ技ライタが付いてくる。 これをEIL-MDK(μVision4)でコンパイルしたバイナリをCMSIS-DAP経由でマイコンにロードするのと、デバグで使います。 UART(USBシリアル)は同時に使えなかったので(やり方がまずかった?)相変わらずFT232RLを繋げています。
もっと楽をしたい方は、素直にSwitchScienceでLPC1114のmbedボードを買ったほうが良いと思います。。たぶん。
→その後、UARTもCMSIS-DAPも同時に接続できるようになり、FT232RLは不要になりました。
- 接続図
左図ではUART(USBシリアル)用にFT232RLを入れていますが、これは不要になり右図のようにトラ技ライタ側のUARTポートからTx,Rxに繋ぎます。
- 現物
左図のブレッドボードの上段左側がトラ技ライタ。右側がLPC1114マイコンとUSBシリアルFT232RL。 右下のは次回テスト予定のRS485ドライバチップとディップSW。 右図はFT232RL無しの最終状態。
- μVision4でデバグポートにトラ技ライタを指定したところ。 速度は10MHzでも行ける。 μVision5では100KHzまでしか出なくて断念した。 →その後、トラ技のファームウエアではなく、このページのファームウエアに書き換えた後で、トラ技ライタをUSB接続した状態でこのページのUART最新ドライバをインストールしたところ、無事に全て使えるようになりました。 μVision側設定画面はこうなりました。 Windows8.1上のデバイス表示に、3つの接続が出現していればOK。 1つしか出ない場合は、USBドライバがインストール出来ていないです。
- 割り込みイベントが発生すると、デバグがここで止まってしまい再開不能でマイコンをリセットすることになる。
今のところ解決策がありません、どなたかご存じの方、Help me。もしかするとリアルタイムOS使っていないとだめなのかな? デバグしなければきちんと動くんだけど・・
→これもトラ技のファームから変えて、さらにnRESET配線1本をきちんと結線することでOKになりました。 nRESETを結線すると、LPC1114に付けたタクトSWでリセットできなくなるので、その際には毎回ライタからのnRESET結線を外してSWを押す、という操作が必要になります。
→上のほうの接続図のようにnRESET中間に1KΩの抵抗を入れることで、そのままリセットも効くようになりました。正しい回路ではないと思いますが、実用上は今のところ問題ありません。
参考:
- トラ技ARMライタを mbed interface にする(LPC1114FN28編)
まさにこれ!と思ってここのファームウエアを試してみましたが、UART(comポート)が出てこない、CMSIS-DAPが出てこない、という状態で断念。 PCがWindows8.1だからかなあ。。
→再度試したところ、下記ページにあるUARTドライバをインストールしたら全てOKになりました。
但し上のページの結線は、何かおかしいです。nRESETの配線が別のところへ行っている気がします。- μVision4でデバッグ!(mbed-MACRUM)
トラ技ライタでは無くファームウエアはここのものは使いませんが、作業の流れはこれが近いです。ファーム書き換え後のUARTドライバはここからダウンロードしてインストールします。 - Keil MDK-ARM v4 のダウンロード
このページのv4のリンクより。 ライセンスフリー版では32Kbの制約があります。v5は通信速度が出なかったです。→これも再度確認したら問題ありませんでした。 - mbedをIDEで使う(野良2-mbed)
μVision4のあたりが詳しいです。
- μVision4でデバッグ!(mbed-MACRUM)
- トラ技のページ
ファームウエアはここから「トラ技ARMライタ基板をCMSIS-DAP(デバッガ)として使うときのファームウェア」をダウロードして流し込みます。→当初はこれでやっていましたが、後で別のファームでOKになり不使用です。- トラ技2014-3月号
ここでまだ買えます。(マルツパーツ館) - 部品セットはここで買えます。(マルツパーツ館)
- トラ技2014-3月号
次回は、この時に仕事で作ったPC上のVB.NetなRS485シミュレータを、LPC1114マイコンに置き換えて通信してみるテストです。
先日出張終了間際に、妻の業務用パソコン[FMV-MG50K]のバックライトが突然消えました。(子供がゲームで遊んでいる最中。笑)
バックライトの点灯しない液晶を目を凝らしながら操作して、古い[TP-X22]へメール・ブラウザ環境を移行し、昨日引取り修理となりました。 購入は昨年の4月ですから保障期間内ですが、こんなに早く故障すると心配ですねえ。
3月までの優遇税制を使って経費で高性能デスクトップPCをいっちょ買おうかと思ったのですが、マシンが増えればそれだけ手間も増えるし万一の故障の確率も上がる、と躊躇してます。 自分で自分の首を絞めないように・・
5年間、安定稼働を続けていた、我が家のVMware ESXi 仮想化サーバー。 ところが去る2月15日に、マザーボードが突然死。
2日後に、中古で暫定版のマザーボードをどうにか探して買ってきて、何とか立ち上げました。
しかしその後、1週間に数回ほどサーバーが落ちる現象の原因がわからず。 単身赴任先から自宅に連絡して、家族にリセットしてもらっていました。
しかしこんなことを続けているわけにもいかないので、今後は構成を一気にシュリンクして、オーディオプレイヤーとしても使っているワンボードコンピューター、RaspberryPi3 へ移行することを決めました。断捨離です。
有難いことに、このサーバーで稼働中の、集まれ!塩ビ管スピーカーの経費でハード費用を支出いただけることとなり、1万円に収まる金額ですが有効に活用させていただくことにして、現在移行作業中です。どうもありがとうございます。
既に、なーお'nWEBと集まれ!塩ビ管スピーカーのWEBサイトは移行済み。WEBサーバーはApacheではなく軽量高速なnginx。 それでもハードのスペックが低いため、少しレスポンスが遅いですがどうぞご容赦を。 他のアーカイブサイトも今日中に移行完了の見込みです。 その後、メールサーバー移転に着手・・
それにしても、いくつものXOOPS Cubeサイトを動かしてしまうRasPiサーバー、恐るべき実力ですね。
(追伸)
運用開始後、サーバーダウンが頻発。再起動しても立ち上がらない。
php-fpmのログを見ると、
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
これは、子プロセスの設定がうまく行っていないということらしい。
参考:php-fpmのエラーにぶつかりながら設定の最適化を図る
/etc/php/7.0/fpm/pool.d/www.conf
; pm.max_children = 5 pm.max_children = 20 ; pm.start_servers = 2 pm.start_servers = 4 pm.min_spare_servers = 2 ; pm.max_spare_servers = 3 pm.max_spare_servers = 6
これで安定してくれることを願います。。
...
今年の3月に片chの音が出なくなったまま未修理で置いてあった MARANTZのPM14AS-ver2 の修理が上がって戻ってきました。 わぁい。
購入価格こそ安かったですが、定価の張る物だったので修理代がいくらになるか不安だったのですが、 パワー部品ではなくバランスボリウムの故障だったようで、15000円程度で済みました。 よかった。
修理内容
- バランスVR不良、交換
- メイン基板&基板HDAM分解半田修正実施
- 定格歪、F特、MAXパワー各測定実施
- その他動作点検 フロントシャーシ修正実施
部品交換だけでなく、これらのことをやってくれてこの値段なら、まあ納得です。
久しぶりに、FE103En-Sの「目玉おやじ」Super-Swanで聴いていますが、安物の代替デジタルアンプでは出なかった音の安定感・コリコリした中低域に、実力を再認識。 更に愛着が湧きました。
さて、次はPCサーバー周りの再構築と、デジタル伝送系の更新を計画します。
コニさんご使用のFirestone のBRAVOにするか、 JAVSのUDT-1にするか少し迷いますが、拡張性を考えて、UDT-1のほうにしようかな。 本当はもう少し安い製品が出るのを待ちたいんだけど。。
それより別の問題が発生、どうやらこの時から愛用してきた、SE-90PCIが壊れたっぽい。 win2000でもXPでも動作しない・・ マザーボードのほうがおかしいことを祈る。。 別のマザボでそのうち確認予定。
で、とりあえずJAVS nano/V あたりをお試しで買ってみようかと思ってる。 この値段で、クロック精度±1ppmのデジタル出力で、DC-61がレベル1ロックしてくれればかなり音質アップするはず、コストパフォーマンス高し。 SE-90PCIを超えるくらいの音は出るんじゃないかな。(デジタル出力限定だけど)
Android なスマフォ IS11CA。
出張時に持ち歩くとき、オーディオプレイヤーとして使い、できるだけ高音質で聴きたい。
ところが、IS11CAにインストール済みのオーディオプレイヤーでは、愛用してきた (SanDisk) SANSA e280 + RockBox で使えていた、WMA v9(VBR)フォーマットが再生できないことが判明。。
右往左往して試した結果、最後はRockBoxに緊急着陸した話のメモ。
標準のプレーヤーで再生できないなら、マーケットプレイスでもFreeなプレイヤーが沢山あるさ。 そう思ってあれこれインストールしては試してみたが、 ほとんどの「wma再生可能」と書かれたプレーヤーでも同様に再生できなかった。。
試した中で再生できたのは、こちらの記事にも書かれていたように、以下の2つだけだ。
- RockPlayer
- yxPlayer
いずれも音質はまあまあ、強いて挙げればRockPlayerの方が上か。
しかし、残念なことに、どちらも再生中にホーム画面や他の画面に遷移すると再生を中断してしまう。。 これじゃ使えないじゃん。
ネットを彷徨い、 まさかね、と思って 「RockBox Android」で検索してみたら、このページがひっかかった。
Android版Rockbox - 試行錯誤的知的生活blog
なんと、ファームウエアとして作られてきたRockBoxを、Androidのアプリにしてくれているとな! うっひょー。
インストールの前に、プログラムの入手。 方法は
- Rockboxのページからapkを手に入れる。
- 開発中のプログラムを自力でapkにコンパイルする
- 個人配布のapkを使ってみる(人柱用)
当然のように、-3の方法で「rockbox_110315_480x800_v110409.apk」を有り難くダウンロードさせていただくことにした。
microSDHCに.apkファイルをコピーし、別途インストール済みのファイルマネージャアプリ上でこのファイルを選択することで、無事にインストールできた。
起動すると、日本語が全部豆腐になっていて読めない。 上記ページにあるようにフォントをインストールすれば問題無くなった。(文字がちと小さすぎるけど、許容範囲) WMA-V9、VBRフォーマットも無事に再生できた。
フォントの変換が便利。 このページがわかりやすい。
で、肝心の音質は、聞きなれたRockBoxの音の匂いがする。 これですよ、これ。 まあ、ファームウエアそっくり入れ替えたわけではなく、Android上で動いていることもあって、e280の音質には敵わないのは仕方のないことろか。
そして、ページを遷移してもしっかり再生を継続することと、 電話の着信時には問題無く通話に切り替わり、通話終了で勝手に戻ってきてくれる点、3種類のウイジェットまで準備されている点など、予想以上に完成度が上がっていて嬉しい。
ということで、32GBのmicroSDHCをぽちっとしてしまったのである。
KORGのDAC,DC-DAC-10を買いました!
早速、サーバーの仮想ゲストWindowsXP pro-SP3にインストールし、 CDをDSD5.6Mbpsにリアルタイムアップサンプリングして聴いてみました。
元々、(Javs)X-DDC -(S/PDIF光)- (Accuphase)DC-61 で聴いていたので、それとの比較になります。 アンプは、(Marantz)PM-14SA-v2、及び、stereo誌付録の(Luxman)LXA-OT1(オペアンプ変更)で聴いてみました。
音出し当初は、PCM-44.1Khzで、ちょっと透明感・音場感が減った感じ。 高域のキツさはDC-61よりは軽減。 よくも悪くもあっさりしている気がした。
次に、DSD5.6Mbpsにリアルタイムアップサンプリングで。
PCが仮想PCなのでパワーが心配だったけど、20%程度で収まっている。 けれども、結構な頻度でプチプチノイズが入ってくる。 リソースの関係なのか、それとも仮想PCであることでのジッターノイズなのかは不明。
試しに、Windows7-proの実PCで聴いてみたが、こちらはCPUパワーも余裕があるので、ノイズはほとんど入らない。
さて肝心のDSDアップサンプリングの音はどうかというと、確かに清涼感漂う音に変化し、ボリウムを上げて長時間聴いても疲れない音だ。
DACチップに、(Cirrus Logic) CS4398 が使われている。この石は、(Marantz)のSACDプレーヤーSA-13やSA-15あたりでも使われているもので、何となく音の傾向が似通っているような気がしないでもない。まあそちらもしっかり聴いたことがあるわけではないので、そんな気がするという程度の話だけど。
低域は実に歪感の少ない音に変化した。 自作スピーカー「スター」の低域の傾向もあって、そのあたりが良く分かって、これはかなり好印象。
現時点では、PC - USBハブ(セルフパワー) - DC-DAC-10 という接続でUSBバスパワーで聴いている。
巷では、(Aurorasound) BusPower-Pro を電源として挟むと良くなるとの情報があるし、USBケーブルも手持ちのものを仮につないだだけなので、SUPRA USB2.0 ケーブルあたりを試してみようかとも思っている。
本当に満足できる音がでれば、DC-61を手放せるのだが・・ 思った以上にDC-61の音は透明感が高いということがわかってしまったので、ちとハードルが高くなったかも。
USBサウンドカード、(JAVS) nano/V を試しに買ってみました。
結論からいうと、既に所有していたUSBサウンドカード、(AudioTrack) PRODIGY CUBE に首の差で若干届かない程度の音でした。(光アウト+ASIO4ALL 限定比較)
実は、今日の今日まで、PRODIGY CUBEの音質はあまり高くないと思っていました。 その理由は、日頃使っていたノートPC (ThnkPad T42)にUSB接続して光アウト、AccuphaseのDC-61に入れた時、ジッターレベル1(±50ppm)でロックされず、レベル2(±1,000ppm)となりSFC(Sampling Frequency Converter:44.1KHz→48KHz)が働いて音が悪くなっていたからです。
ところが今日、試しに(ASUS)M2NPV-VMマザーで組んだPCにUSB接続してみたところ、なんとレベル1でロックしているではないですか!
これって、PCが悪かっただけって事だよね。。
それでは物は試しと、仕事で取引先から貸与していただいているLet's Note CF-Y8 から繋げてみたところ、こちらもレベル1でロックしました。 やっぱりT42が悪かったのか?
で、届いたばかりのnano/Vでも試してみたところ、Cubeと同じ結果。結論がでました。・・
冷静になってまとめておきます。
PC | T42 | Y8 | M2NPV-VM |
Chipset | i855PM | GM 965 Express | GeForce6150 +nForce430 |
サウンドカード | |||
Prodigy Cube | Level2 | Level1 | Level1 |
JAVS nano/V | Level2 | Level1 | Level1 |
Onkyo SE-90PCI(参考) | - | - | Level1 |
教訓としては、PCオーディオは繋げてみないとわからないんだ、ということ。 何か事前にわかる指標のようなものは無いのだろうか。
今後のオーディオPC選定が難しくなったなあ。
今週も東北方面出張中ですが、数ヶ月前に壊れたポータブルプレーヤー(iRiver iH120)の代替を探していたところ、安くて良さげなものが見つかったので思わず出張先のホテルへ配送にて、購入してしまいました。。
買ったのは、SanDiskのSansa e280。(amazon.com)購入時価格¥8,800。 価格.comのレビュー。
8GBのフラッシュメモリに、microSDカードの外挿しに対応した数少ないモデルです。 これでこの値段は、安いですね。
ホテルに帰って、早速開封。マニュアルも電子マニュアルのみで弁当箱くらいの箱の包装は至って簡素。
出張先なので、手持ちはWMA圧縮ファイルしかなかったので、非圧縮での実力は不明だが、 デフォのファームウエアの音は、amazonのレビューどおり正直言って期待はずれ。 イヤフォンは手持ちのsonyの往年の名機「E888SP」を使用。
そこで、巷で評判のフリーの(Linuxベース)ファームウエア、Rockbox-3.0を入れてみた。 買ったその日に、メーカー保証外にトライする自分が怖い。(笑)
リファレンスにしたのは、中帽の頃から聞き続けている、風の「海風」。 低域のキレと分離が見違えるほどよくなりクッキリスッキリ。 一方で高域はちょっとザラついた印象だが、まあ十分に我慢できるレベル。
その他に、デフォのファームでは使えなかった高容量のmicroSDHCが使えるとか、フォルダ選択での演奏、スリープ機能や電源断?再起動時のボリューム保持、microSD挿入時も無駄なデータベース構築時間がかからない、など、追加機能が盛りだくさんです。 ついでにゲームもできます。(笑)
また、Rockboxをインストしても、元のファームウエアを簡単に立ち上げられますので、安心です。 ビデオを見るときや写真を見るときなど、制約が多いのでデフォのファームを立ち上げる方が無難です。
このRockbox、APPLEのiPod(但し第5世代以前)や、iRiverのiH120などにもインストールできるので、興味のある人はぜひトライしてみると幸せになるかも。 但し、言うまでもありませんが全て自己責任で。
追記:設定によっては、弱音時に「ジジッ」という電子ノイズが入ることがありますね。 ちょっと気になるかも。 デフォのファームウエアでは聞こえなかった。。
設定を変更すれば気にならないレベルまで消えました。
一昨日の日記でPart1を書きました。
本日、主役の液晶TV(42Z8000)が到着しまして早速設置し自分でセットアップしました。
画面の大きさは、今までの32インチでは少々小さいと感じていましたが、42インチで十分です。
画質はグレアパネルのお陰もあって、とても綺麗です。 心配していた映り込みは、座る位置や角度によっては気になる場面もありますが、その場合はカーテンを閉めればあまり気にならなくなりました。
そして、AVアンプとの接続です。 スピーカーには仮に3D-subako+FE103Eを繋ぎ、 HDMIケーブルケーブルを繋ごうと思ったのですが、、 あれ? テレビにHDMI出力端子がないぞ?
テレビの説明書を読むと、 音声は光端子で接続して、 HDMIケーブルは連携用のためだけに繋ぐようです。 ということで、AVアンプ側がHDMI出力、テレビ側はHDMI入力に繋ぐことになるんですね。 普通に考えると反対に思うのですが、そうではないらしい。
そして、テレビ側の連携設定に加えて、AVアンプ側の設定も少々判り辛くて迷いましたが、なんとか連携できました。 テレビの電源ON/OFF連携と、音量調整の連動。
正直いってZ8000の内蔵スピーカーの音は良くなかったですが、3D-subakoから音を出すと臨場感が全然違います。 この状態でもハイビジョン映像の音楽番組を聴くのがかなり楽しみです。 デジタルアンプなので省エネで発熱も少ないのも良いですね。 これはやっぱり、音にもお金をかけるべきと思いました。
part3では、スピーカーの製作を行います。 設計もまだ先なので、10月になってしまうでしょう。
それから、LAN-HDDへの録画を試していますが、なぜか録画開始後数分でエラーになってしまいます。。 100Mbpsの有線LANなんだけどなあ。
(以下、テスト)
Kids FE103E