最初の段階で、SH7125Fデバッグモニターを見つけて、使わせてもらっていました。ある程度判ってくると、高機能なデバッグは必要無く、プログラムをダウンロードして実行出来るだけで十分です。そこで、Sフォーマットのロードと、実行など機能を制限したモニターを作成してみました。上で動作させるサンプルです、参考にして下さい。hira3件のコメントちょっと前からブラシレスモーターのドライバーを実験している、以前(何十年前)に大学時代マイクロマウスをやっていた頃、DCサーボモーターの制御回路を作った事があり(全てアナログ回路)その時の知識が未だに大体使えるが、三相モーターの制御はDCモーターより複雑で、ある程度の精度で、一定速度の運転をするくらいならそこそこ簡単だが、速度とトルクを高精度で、しかもデジタル制御するには、色々と新規に開拓する事も多い。言っても、昔のように1MHzで動く8ビットマイコン(6502)とかでやっていた頃とは雲泥の性能差があり、コストも安く、デバイスの入手も楽になった為、昔のような苦労は少ない。今回の仕事、電動バイク用のコントローラーや電源管理など、全体のパッケージの開発依頼があり、開発費はもらえないが、趣味の延長とこれから色々応用も出来そうと思って勉強のつもりでとりかかった。簡単な実験を行って、ブラシレスモーターの「肝」を「触り」だけ実験してみた、とりあえず、回転する事は出来たので、本格的に汎用性のあるドライブ回路を実験する為、部品集めと試作回路など作り始めた。↑ラジコン飛行機用のブラシレスモーター、安いし実験には便利!※クワッドローターのヘリコプターを作ろうと思って4個も購入したww最初は専用コントローラーを使う事を考えて、部品を探したが、擬似的な正弦波による制御チップがほとんどで、「回すだけなら」出来るが本格的なベクトル制御には向かないものが殆どだった。ATTINY861も、PWMが3チャネルあるとか、デッドタイムの設定が可能とか、PLLを使って高いPWM周波数が可能だとか、ブラシレスモーターを意識した構成なのだが、ちょっと物足りない、そこで、色々探したらSH7125が適格である事が判った、50MHzで動き(実質的には40MHz)積和演算も高速だし、三相モーターに必要なPWMの構成も出来る。少なすぎて、実用的では無い。そこで、WEBをグルグルしてたら、デバッグ・モニターを公開しているサイトがあったので早速ダウンロードして、書き込み使ってみる。止まる・・・これに気が付くまでに数時間かかった、上記のデバッガー、逆アセンブラで気が付いた。次にはまったのは、デバッガーのバグ・・・モトローラーのSフォーマットを食わせるのだが、ケツのデータがダウンロードされていない事が判明・・・ホスト側のプログラム(objload.c)を見ると、Sフォーマットの最大アドレスを見つける部分に問題があるようで、そこを修正。ついでに、逆アセンブラで、PC相対でデータを取得する部分、ワードアクセスでもロングでデータを持ってきているようなので、そこも修正、右に表示される取得データがワードアクセス命令でも正しく表示されるようになった。※これらの修正は作者のゲストブックにコメントをしておいた。開発環境もかなり弱い。一応登録すればフリーなツールが入手出来るが(KPITのgcc)、何で登録制なのだろうか?これでは厳密にはフリーでは無い、そしてgccもSH版はメンテナンスをしていないのではないのか・・、ルネサスはSH専用のコンパイラを外販しているが、価格が高く、オプティマイズの性能が良くても、使う気になれない(コスト比を考えると使えない)、gccとは桁違いに性能が良いようである、また、KPITのエクリプスにしろ統合環境ベースでプログラムを作ると、専用のランタイムライブラリーが勝手にリンクされてしまうし、コマンドラインでmakeとgcc、emacsで作りたいのに、それを阻害するしで、自分の好みの環境が提供されていない。gccを使って幸せになれるツールチェインが沢山あるし、C++もboostも問題無く使える、しかし、SHではどうか?そもそも、組み込み用で、gcc以外のコンパイラでまともにC++のソースコードをコンパイル出来る物はほんの一握りでしか無い事を考えると、一部のベンチマークで性能が良くても買う気にはなれないし、性能を出したければ、アセンブラで最適化すれば良いだけの話だと思える。hiraコメントするATMEGA版データロガーだが、基本的なとこは大体出来て、図面入力とアートワークやらないと駄目なんだがー、多少気になってる部分をチョイチョイ作っていた。データロガーではあまり使わないのだが、ファイル選択関係を実装していて、FatFSでは、小さいマイコンでも可能なような配慮が沢山あっていたれりつくせりだ。ファイル選択はしなくても、ファイルサイズを観たりするくらいはあっても良い、そこで、ディレクトリーを移動したり、選択してファイルサイズを表示したり出来るように一通り作ったが、2バイトコードをどうするかが問題となっていて(データロガーが作るファイルは半角文字なので本来関係無いのだが)実験の過程では、2バイトコード(漢字など)はメッシュの箱として表示していた、だけど、あまりに見た目が悪いし文字化けしてるみたいで痛い、そこで、漢字の表示は出来ないものかとちょっと考えてみた。※MP3のデコーダーを載せて音楽再生をする目的もある、その場合はどうしても漢字の表示は必須だ!とりあえず、現状では、6×12ピクセルの半角文字を表示している、そこで12×12の漢字フォント(蕨12)をネットでゲットした。(他にも色々あるようだが、とりあえず・・)次に、Shift-JISのコードページに並べるとどのくらいの容量になるのかBDFファイルを読み込むツールを作って検証した。※Shift-JISは漢字コードを効率良く並べられ、コードからビットマップの位置を特定するのが簡単で良い。容量は、「138キロ」、うーーんこれでは、1MBitsのEEPROMに入らない・・、秋月で売っているシリアルのEEPROMに収めようと思ったのだが無理がある。ツールを作ったのだからと、漢字のビットマップファイルをSDカードに入れて、SDカードから読みながら表示させてみた。結果は思ったより上々で、多少もたつくが、漢字の入ったファイル名を表示出来るようになった。この「ファイラー」では、横128ピクセルより長くなるファイル名は自動でスクロールするようにしてあるが、スクロールを始めると、かなり重く、スピードが遅くなっている(処理落ち)そこで、キャッシュバッファを設けて速度を改善してみた。これで、普通に表示出来ている。画面は液晶でもゲームシステムと同じ同期式としてプログラムを作っている、画面の更新周期は33.3Hz(3/100Hz)で、必ずこのレートで全画面を更新している為、点滅や移動がこのフレームレートで毎回行われている。・フレームバッファを全面クリア・オブジェクトをフレームバッファに描画(各シーンタスク毎)・時間同期こんな順番で、グルグル動いている、液晶の反応が多少鈍い為、速い速度でオブジェクトを動かすとかすれるのだが・・しかし、ファイラーのような構成で、この仕組みに当てはめると、ファイル名を保持しておくバッファなども必要になってしまう、そこで、ファイラーでは、フレームバッファの消去をやめて、ボタンが押されて状況に変化が起こったら画面を書きかえるようにした、その為、ファイル選択では、表示負荷により動作が遅くなっているが、まぁこれは仕方無い・・それでもロングファイル名が表示出来るのはありがたい。-----以前にPNGファイルから液晶用のビットマップを作成するツールにBDFファイルの変換を組み込んだ。今回、BDFファイルの読み込みでは、12×12ピクセル、JISコードとして機能する、コード体系が違う場合とか、ピクセルが違う場合はソースコードを修正する必要があるが、このツールのソースコードもアップしてある。hiraコメントするATMEGA版データロガーだが、KiCADの評価はひとまず終えて(現在のバージョンで何とかなりそうだ)、ケースを完成させた、それに伴い回路も少し改造した。ビ板」が結構使える事が判った、これは、アクリルサンデー株式会社が販売しているフォーレックス@と言う材料で、軽く、加工が簡単(カッターで切れる)なのが主な特徴、ただ、それなりに柔らかい(爪で強く押せば傷がつく)ので傷が付きやすく、剛性が求められるようなところには使えない。それでも、構造を工夫すれば、ある程度は頑丈に作れるし、気軽に作れる点で、試作とかには非常に優れた材料だと思う。今思えば、建築関係の人が、モデルを作る時とかに良く使っているのではと思う。今回は3mm厚の板を、基板に合わせて、カットして専用接着剤で張り付け、ヤスリで加工した。※ボスに2.6mmのナットを埋め込んでいる。※ボスが4か所だと、少し弱いので、急きょ横にネジを二か所追加してみた。※角をヤスリで丸く仕上げた。※液晶の穴は、同じ厚み(3mm)のアクリル板を加工、淵にフライスで「ツバ」を着け、段差をなくした。いきあたりばったりで、原寸合わせで図面も作っていないが、それなりな物が出来た感じ。以前(10年以上も昔)には、EDAツールとして、アドバンストスケマティックを使っていた、それに、数十万円の投資も行った事がある。※オートルーターとしてNuroRoutoも導入していた。現在OSがWindows7になり(OS-X)、以前に買ったこのツールも動作させる事が難しい(無理やりインストールしても動かない)、とはいえ、Windows2000(NT4.0)をインストしたマシンを起こして、それにインストして使うのもそれはそれで大変だし、このプロテルのツール、自分のバージョンはバグだらけで、不安定、かなり神経をすり減らす代物だった、今更高いお金を払ってバージョンアップする気もおきない(基板を作る仕事が減った事も要因)。そこで、オープンソースとかフリーで使えるEDAのツールを色々試して評価していた。先生に聞いた色々なリンクを巡り、日本語の説明や解説を読み、本家のページから最新版をダウンロードして、ちょこちょこ試してみたが・・・なかなか「ベスト」な選択が見つからないでいた。※プロテルで養ったワークフローを元に、以下のような目安をポイントとしていた。※できれば・・(4)ミリ系の部品とインチ系の部品を上手く扱える事(5)基板の大きさに制限が無い事(少ない事)(6)4層基板程度までは出来る事(6層とかならさらに良い)(7)デザインルールチェックが出来る事(8)ガーバーデータ(フォトプロッタの為の描画命令コード)、ネットリスト、部品リストなど、基板屋さんが受け付けてくれるデータを出せる事(9)フリーで使える(10)バグフィックスとバージョンアップに期待ができるかなり要求があるが、今は、こんな要求に答えてくれるソフトが入手できる(良い時代だ)結果としてKiCADがもっとも良い選択なのではと思った。「先人」たちも熟慮したであろう「どれが一番良いの?」を、一応これからEDAを始める人への参照として、他のソフトの評価などを書き添えておきたい。・回路を描くには、申し分ないアプリで、使い方を見なくても、マウスをつっいていれば使い方が何とか判るような感じ、メニューとかも日本語なのでとっつきやすい。・PCBのエディターもあるようだが、使っていない(オートルーターとかは無いようだ)・ネットリストは出るので、PCBだけは別ツールで行うのもパスとしては「アリ」かもしれない。・さすがに、売っているだけはあり、大変良く作ってあり、機能も豊富で、これだけの機能があればかなり大きな物でも困る事は少ないと思える。慣れ、もっと大きな規模に移りたいと思った場合に、今までのノウハウを捨てて、別ソフトに移行するのか、無制限版を買うのかなど考えると、良く出来ていてもうかつに手を出さない方が良いと思える。(自分の考え)・Lightで痛いのは回路図が「1枚」だけしか使えない点(3)TinyCAD、FreePCB・日本語の説明やメニューを日本語にするなど、多くのリンクがあり、日本では、かなり多くの人が使っている感じで、HowToも豊富な感じ・ともにフリーで使え、制限もほぼ無いが、FreePCBにはオートルーターの機能は無い・別々のソフトなので、「連携」は少し弱いかもしれない・操作性もある程度スッキリしていて、違和感も少なく、少し慣れれば、問題なく使いこなせると思われる。日本語での解説も少なく、評価している記事も割と古い版の物だった、最初ダウンロードして起動してみたが、そもそも回路図エディターすら満足に使う事が出来なかった、それで、別のソフトの評価を行ったのだったが、全体の構成とか、機能など、捨てがたい魅力があり、再度挑戦。回路図エディターで、負論理のラベルに「バー」が付けられないのがなぁとか、細かい部分でいきなり駄目だししたのだが、オープンソースでソースコードも公開されているので、気に入らなければ自分で作ればいいだけの話。多国語対応で各国色々対応しているのだが、「日本語」リソースだけ無い?自分の評価は「KiCad-2010-05-05-BZR2356-final」バージョンだが、(RC4だが、「KiCad-2011-01-25-BZR2754_RC4a」の版もある)基本的な機能にアクセスするのが、「面倒」と思ったのだったが、このソフト、マウス+キーボードで両手で操作する事が前提のようだ、キーボードは機能ボタンとして働く(右ボタンでメニューを出してそれを選択する事でも出来るが・・)、それが理解できれば、かなり小気味よい操作性で、使いやすい!部品ライブラリーの操作も、基本的な操作を覚えれば簡潔な事が判った。※新規ライブラリーの作り方が少し独特で判らない部分であったが・・この独特な操作性で、日本での評価が少ない(低い)のかもしれないが、考え方としてはむしろ「正統」なのだと思う、EDAは機能としては、複雑なので、機能ボタンを沢山用意して、回路図(又は部品、トラック)と機能ボタンとの間でマウスポインターを行き来するよりは、キーボードを機能ボタンとして働かせた方が断然使いやすい、ユーザーに機能とキーボードボタンの対比を覚えてもらうハードルがあるが、回転(R)、移動(M)など基本的なボタン操作だけでも覚えれば、もうそれでも十分な操作性でもある。PCBにはオートプレース(まだ使い方が良く判らない部分がある)やオートルーターがありWEBベースのオートルーターの機能を呼び出す事も出来る(まだ試していない)し、部品とフットプリントのマネージメントを行う機能もあり、プロジェクトとして一貫した操作が出来るのが素晴らしい。基板の3D表示(OpenGLを使う)も出来、機能満載である。マルチプラットホーム、Linux版やOS-X版もあるようだ。(使っていないが・・)これなら、ほぼ申し分ないと思う、これからもっと深く使って、順次評価も深くしていきたいが、とりあえず、これで出来そうな感じと印象を得た。暇が出来たら、メニューを日本語化して、リソースを本家に送ってみたいと思う(英語のメールを書くハードルがあるけど・・)。回路図で「バー(負論理の表記)」が付くようにするパッチも作りたい。