[管理者用]

イゼルローン日誌
宇宙・・・それは人類に残された最後の観光地である

戻る 
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年

2012年01月
1月31日 ・というところで、富士通さんのFM3。さて、ぶった切り、ぶった切りしていって、シンプルにしてみたけど、とりあえず予定通りの動作はしている。
・とりあえず初期化部分だけ切り出してきたら、今度はいきなりハングアップ。なかなかわからなくて調べていったら、細かいところで色々。なかなか大変だな。

1月30日 ・そんなところで、ルネサスのSmartAnalog。とりあえずサンプルでいただいた環境でも何とかなるだろうというのは見えてきたかな。

1月29日 ・なんだか嫌な感じの地震が続く。やはり144/430あたりのハンディを1台持っておいた方がいいのかも知れないな。電話もメールも使えない状態になっても、アマチュア無線なら繋がるからな。そういえば、開局数が増加したとか言ってたっけ。

1月28日 ・ある程度「まともに動かない状態」に近づいたので一息。


1月27日 ・さて、とりあえずハードウェア的には問題が無いことはわかった。あとは、gccでもっとシンプルなものを作っていくことだけど、これはまだうまくいかない。
・とりあえず、まともに動いたサンプルに、gcc版で埋め込んだシリアルポート出力を組み込んで、初期化部分までを動かして様子を見る。割込み処理でのSETUPパケットへの応答などをやめてしまうなどしてみると、何とハングアップ。これはNVICの始末を間違えているのか、余計な割込みが入ってペンディング状態になって、無限割込みになっているのか。

1月26日 ・さて、とにかく動かさなくてはということだ。同じシリーズの別プロセッサ用のサンプルを元に色々と弄ってみるけども、やっぱりなかなか言うことをきかない。
・両者が殆ど同じようでいて微妙に違っていて、しかも、あるタイプのものには存在するけど、別のタイプのものには存在しないなどというものもあってややこしい。ネックで見ていてもややこしい。とりあえずレジスタだの内部構成を比較していても、だいたい同じようなので、デフォルトのままでも良さそうなのだけどな。と、一箇所ちょっとだけ変なところがあった。
・このレジスタは存在するのか、しないのか。するとしたら、デフォルト値ではまずい。そういえば、「無い」とも読めないなということで設定しなおしてみたら、なんと動き出した。結局これか。


1月25日 ・USBバスアナライザ登場。とりあえず動かしてみるけど、結局SETUPパケットに無応答。全く何の応答もしていない。ファームウェアが全く何もできていなくても、エンドポイントバッファに入ってACK返すなり、入らないならNAK応答したりしそうなものだけど、無応答ということは、USBコントローラがまともに動いていないという以外にはない。一応バスリセットだけは認識できているということは、ピン設定だけはあっているということなのか。やっぱりクロックまわりか。

1月24日 ・分からない。とりあえず別デバイス用のではどうなのかな?と思ってコンバータでSレコードフォーマットを出力させて書き込んでみたけど全く動かない。
・一応上位互換みたいなもので、特に弄らなければそれなりに動きそうなものだけども、びくともしない。やっぱり駄目かな。

1月23日 ・シリアルポートにデータが出せるようになったので、USBの割り込みステータスを表示させてみる。が、バスリセット以外は結局何も入っていないことが判明。
・一応USBを接続すると「不明なデバイス」扱いにはなるので、D+のプルアップONは上手くいっているはずなのだが。これはもう少し調べてやらないと駄目だな。

1月22日 ・調べていくのだが、なかなか言うことを聞かない。ピン設定を見直したりしていく。結局最後に気付いたのが、分周器のレジスタのアドレスを間違えていたということ。とりあえず、メッセージ出力はできるようになった。これである程度情報は取れるだろう。

1月21日 ・とりあえず、割込み関係を修復。とりあえず、割込みは入ったらしい。とりあえずここまでは良いが、これ以上やろうとすると、一体データがどうなっているのかチェックしたいところ。やっぱりシリアルポートにデータ出力くらいさせたほうがいいな。
・ということで、シリアルポートを動かすことに。これがまたなかなか言うことを聞かない。

1月20日 ・昨年に引き続き、利用しているベンジンなカイロ。昨日うっかり落下して水没。慌てて引き上げたものの、触媒部分はびしょぬれ。中綿も濡れている気がする。もう駄目かなと昨晩から放置しておいた。
・で、今朝方見てみると、この超乾燥な空気のおかげか、乾くのが早い。中綿はちょっと触れたら結構乾いていて、ベンジン臭がしている状態。触媒の方もすっかり乾いている様子。とりあえずダメモトで点火してみたらいつものように赤くなり発熱開始。発熱量も水没前と変わらないようだ。
・とりあえず、割込み部分まで書いたので動かしてみた。D+のプルアップイネーブルがされたので、一応デバイス接続は認識されたようだけども、LEDが弱点灯。これは割り込みの多重発生かと思っていろいろ調べてみるけどどうも話がおかしい。
・よく見たら、回路上OFF状態でも弱点灯してしまうことが分かった。そういえば、そんなこと言われてたな。ということで、割り込みの多重発生どころか、全く入っていないということだった。
・さて、全く入らないなら話は簡単だろう。ということで、ざっと眺めて気がついた。NVIC部分でイネーブルし忘れている。入るはずが無いよなぁ。タイマ割込みの方は忘れずに処理を入れていて、ちゃんと動いているのに、USBの時は忘れているのだから我ながら情けない。

1月19日 ・やっと必要なレジスタの定義などもできてきたので、USBの初期化部分の記述。果たして上手くいくのかわからないけども、まずは書く。
・Cortex-M3での割込みはとりあえず通常の関数と区別無く、単にベクタテーブルにアドレスだけ設定しておけば良いというのは楽だけども、やっぱりまだ感覚的に慣れないな。考えてみたら、ブート部分だの割り込みのエントリだの割込みコントローラの始末なんていう基礎部分はIDE等の自動コード生成にお任せしていたからな。

1月18日 ・それにしてもUSBコントローラ周りが結構面倒だな。ある程度分かってきたけども。
・一応次の予定。計画が上手くいくのかどうか分からないままとにかく走っている状態なので、何をどうしたものか。

1月17日 ・いいかげん移植&修正が面倒になってきたので、元の開発環境でリターゲットしてやろうと思ったら、IDEの中に対象デバイスが無いということに気付く。
・どうせコアは一緒だろうから、一応やってみれば良いのだろうけど、こういうイレギュラーなやり方というのはやはり推奨されそうにない。やっぱりこっちで頑張るしかないのか。



1月16日 ・USB関連レジスタの定義ファイルを作成。とにかくレジスタが多いな。マニュアルを見ると、最低限必要な応答は自動でやってくれるようなので、USBコントローラの起動だけうまくいけば、SET_ADDRESSなどには応答してくれるのだろうか。
・なんとなくミシンで巾着を作っていたのだけど、縫い目が気になって、ルーペで眺めたら案の定。上糸が強すぎて下糸が表に出てしまっている。ダイヤルで調整しても、調整しきれないようなのでこれは下糸を調整するしかない。ボビンケースのネジを1/4回転くらいずつ締めながら縫い目をチェックして調整。縫う布を変えたり、重ねて厚みを変えたりしたけど、うまくいったようだ。

1月15日 ・とりあえず、USB用のPLL初期化部分を、マニュアルとつき合わせながら記述。クロックをピンに出すっていうわけにもいかないようなので、良く分からないけど、一応makeは通った。
・アナログな時代から使っていたビデオデッキが不調でテープ巻き込み現象多発。これはもう破棄かな。

1月14日 ・レジスタリストで必要なものをマニュアルから拾い出しながら順次作成。
・そういえば、ビットフィールドでアクセスすることもあるよなということで、ビットフィールドも作成。なんだかややこしいことになったけど、structと#defineの併用で何とか対応
・ビットのエンディアンも気になるので、試しに記述して-Sオプションを付けてアセンブリ言語ファイルを吐かせてチェック。とりあえずOK。

1月13日 ・とりあえず割り込みは動いた。次はクロックだな。とにかくブート直後からスクラッチで書くので、PLLだの何だののセットアップなども手作業。
・まず、今の状態はどうなのかということでマニュアルを眺めると4MHzで動いているはずということになる。タイマの設定値とLEDの点滅周期を見ると、なるほど4MHz程度にはなっているようだ。
・さて、PLLなどのセットアップをするにはレジスタ設定が必要。これまた、PSoCなどと違って自動生成されない。全部手作業でレジスタリストを作らないといけないのだな。

1月12日 ・ハードウェア割り込み処理の記述テスト。
・SysTick以外にもタイマがあるはずだなということで、CPUのマニュアルを眺めて、タイマを動かしてみる。256ms周期割込みにして、割り込みが入ったらLEDの状態を反転させることに。
・割り込み要求のクリアはタイマ自体の割込み要求クリアとNVIC側の割込み要求クリアがあるというころで、両方のクリアを入れておく。
・さて、動かしてみたら何も問題なくLEDが点滅。なるほど、これは簡単。優先度はとりあえず今回はあまり考えなくて良いはずだけど、とりあえずSVCとPendSVだけは下げておくかな。


1月11日 ・さて、やはり割込み処理が必要だな。そもそもベクタってどこに書くんだろう。そういえば、ARMの場合、ベクタテーブルの先頭にスタックの位置やら、リセットベクタが置かれていたなということで、眺めたら、結局startupファイルが最初にリンクされるようにして、.textセクションの先頭が0をいうのを前提に、ベクタテーブルを書くということをやっていた。
・ARMの場合、割込みに入ったときにLRレジスタの値を小細工して割込み処理と通常のサブルーチンリターンのどちらもBX LR命令で良いようにしているので、ベクタだけ正しくセットすればそれなりにうまくいくはず。
・ということで、とりあえずSVC命令によるソフト割込みで実験。ベクタテーブルにSVCの処理を書いて呼び出してみると上手くいった。さて、次はハードウェア割込みか。



1月10日 ・やはりCygwinな環境にしておいて欲しいということもあるのかな?ということで、続いてCygwinな環境も整備。以前はあれこれ引っ張ってきてゴチャゴチャやったような記憶があるのだけど、今はsetupを起動した後、必要なものを選んでやるとネット上から拾ってくるという構造になったらしい。とりあえず、「全部入れる!」ということで、まずダウンロードだけ。
・ちょっとダウンロード失敗で、再度やりなおしなどもしたけども、とりあえず全部引っ張ってきたので、今度はローカルディスクからのインストール。特に問題なし。
・PATHを通すのに.bashrcを書き換えてみたけど上手くいかない。これはどうも常識の部類らしくて、.bash_profileに書いておけば良いらしい。
・これもとりあえず動作。まずはここまで。

1月9日 ・どうやら、YAGARTOというシロモノでWindows下でもARMなビルドができるらしいということで、テスト用の仮想環境下なXPにインストール。ここには以前IARな環境も入れてあるので、相互に入れ替えすればいい。
・とりあえず、持ってきて環境構築。さて、サンプルは動くのかなということで、以前もらっていたサンプルのMakefileをちょっと弄ってmake。コマンドライン下で動かせるので、xyzzyからそのままmakeできるのは便利なところ。
・出来上がったファイルを書き込んでみたら特に問題なく動作。これはこれで良し。

1月8日 ・とりあえず、一週間経過で、世間的には3連休らしい。
・そうした世間とは関係なく、ちょっとgccによるARM開発環境構築が必要になってきた。いろいろ探してみると、相変わらずCygwinなのかな。


1月7日 ・ミシンの扱いもなれてきたとはいえ、やはり本体のボタンで動作ON/OFFというのがどうしてもいただけない。どうしてもボタン操作で片手を取られ、左手だけで布送りをサポートしなくてはならないのだけども、これがド初心者な自分にはなかなか上手くいかなくて、慌ててしまって曲がったりと言う具合。
・これはやっぱりフットコントローラが必須だ。横のコネクタ穴や、カタログなどを見ると、どうもφ3.5のモノラルプラグを使っているようだ。自作するのも簡単だろうけども、フットペダルのメカをこしらえるのがちょっと面倒なのと、やはり「オリジナル」を知っていたほうが良いだろうということで買いに行った。
・テスターで当たってみると、結局中身は20kΩのスライドボリュームが操作されるという仕掛けだった。更に本体の速度調整ボリュームと直列になるらしい。本体側を最大速度にしていると、10kΩ位になると動き出すという感じになっているようだ。
・さて、そんなフットコントローラを使ってみると、これが実に具合が良い。両手は布送りに注意していて、速度は足で自由自在。格子模様の境目部分に沿って真っ直ぐミシンがけしてみても、今までどうしても曲がってはみ出したりしたのが嘘のように簡単。やはりフットコントローラは必須アイテムだ。


1月6日 ・以前作っていたプロジェクトが新しい基板で動作するか否かのチェック。
・まず、どの仮想マシン下に作っていたのか思い出すので一苦労。検索利用で見つけたものの、ビルドしてみるとエラーになる。おかしい、以前は動いていたはずじゃないかと、大元のオリジナルに戻すとビルドOK。
・ビルドエラーをチェックして、ソースを見ると、確かにお説ごもっともで、やはり悪いのはこちらのソースコードにあることは間違いない。しばらく眺めたけどもあきらめて一つ前のバックアップ版に戻したら問題なし。あぁ、追加で手を入れようとしていたバージョンだったということか。


1月5日 ・昨年度上向いたので、自分へのお年玉ということで、ミシンを買う。近所のホームセンタで、15000円程度で売っていた低価格版だけど、一応コンピュータミシン。ポイントはこの手の低価格品よりずっと大きくて重いことと、今時流行りの水平釜ではなく、昔ながらのボビンを使う垂直釜という点。
・DVDマニュアルをほったらかしで、紙ベースのマニュアルを読みながら、捨てる予定の服を切って練習用の布地として使ってみる。なるほど、使いやすくなっているものだな。
・結構厚手のものも大丈夫そうだけど、革なんてどうなのだろう。iPadのケースでも作れると面白そうだけど。


1月4日 ・さて、評価ボードをVMware環境下で試そうとしたのだけど、USBがUSBシリアル変換アダプタに見えるためか、ホストOS側でドライバをインストールしないと「不明なデバイス」のままになってしまい、ホストから切り離してゲストOSjに接続できない。
・USBシリアルドライバを用意できれば良いのだろうと、infファイルの位置を指定してみたけどどうも気に入らないようで駄目。
・標準ドライバの無い、いわゆるベンダ定義デバイスならホストOS用ドライバが無くても良いということは、MiniProgなどの時に経験済み。ということは、直接VMwareのUSBの仮想化用のドライバを貼り付けてしまえば良いのではないだろうか。
・試しに”一覧から選択”を選んでVMware USBデバイスを指定してみると、ドライバがインストールされた。
・そのまま仮想なXPの方で「取り外し可能デバイス」の一覧に載ったので、メニュー接続してみたら無事ドライバを要求され、インストール完了。アプリケーションもちゃんと動いたので、これでOKということらしい。


1月3日 ・三日というのに、なんだか元旦気分にもならないという状況
・とりあえず、大掃除の続きで実験部屋を片付ける。前回何となく取っておいたけど、結局殆ど使うことも無く終わったものが多々。このあたりは勿体無い気もするけど、捨てるしかない。ということを繰り返し、とりあえず、奥行き75cmの衣装ケースが一つ空に。
・あとは周囲に広がるダンボールに入った諸々のものやら定位置不定な物を片付けないとな。

1月2日 ・なんだかだるい。マッサージ・・と思ったけど、どこもやっていないので、近所に出来ていた温泉にいって温まってくることに。この地域らしい茶褐色の天然温泉は露天のみだけども、なかなかいい具合。
・というところで、SmartAnalogとセンサの接続テスト。なんだかおかしいな。テスターであたってみると、妙に入力インピーダンスが低くなっている模様。
・いろいろやっていて気がついたのは、入力アンプが反転増幅回路になってしまっていたこと。非反転にしてみたら予定通りの動作。リファレンス電圧も個別に細かく指定できるのはありがたい。
・やってみたら、結構な高感度/低ノイズで増幅できているようだ。あとはフィルタでもかけてやればもう少し良い感じになるかもしれない。まぁ、フィルタのQは小さめとはいえ、無いよりずっとマシだろう。


1月1日 ・とりあえず謹賀新年
・実験回路を組むにはちょっと資材不足で昨晩からなんとなくサンプルを動かす程度で済ませていたのだけど、ちょっと手がありそうなので、実験してみることにする。
・いきなりお昼の地震。縦波が長かったので遠そうではあるけれども、案外ゆれている時間が長かった。嫌な記憶が浮かんだけど、結局これといった大きな被害は無かったよう。
・早々にUターン。高速/首都高ともすいていて、渋滞知らず。




前月 次月
エース