カテゴリー「趣味」の2件の記事

Firmataが動いたよ!

Electronicstoolbox  先週は「ArduinoGAINER化」して使うために、FirmataライブラリとProcessingを使ったテストを繰り返していました。その途中で自作の入出力ライブラリを作ったりと、なんとなくその目的に向けて前進していたのですが、週末に行った再追試で正常に動作していることを確認できました。これは自作Arduino(Severino V3R3: ATmega8使用)とDuemilanove 328の両方で動作確認できました。今までうまく動かなかった原因を整理するために、条件を整理して動作テストの環境を記録することで、正しく動かすための設定や操作を絞り込みました。確認項目は以下の通りです。

  • StandardFirmataを正しくコンパイルしているか?
  • Firmataは正しく動作しているか?
  • Processingを正しく使っているか?
  • Arduino用とProcessing用のFirmataライブラリのバージョンは合致しているか?
  • ProcessingArduinoオブジェクト生成時の通信回線は正しいか?
  • Processingのスケッチ実行時にArduinoはコマンド受け入れ可能になっているか?
  • ArduinoProcessingと通信できているか?
  • Processingのスケッチにバグはないか?

 ブレークスルーとなったのはUSBシリアル変換ケーブルを使って自作Arduinoと通信させてみたときでした。それまで自作Arduinoのテストは別のパソコンを使っていて、そのパソコンには(珍しく)シリアルポートが標準搭載されていたのです。だから通信は問題なくできていましたが、Arduino側 のDTRラインを利用した自動リセット回路が作動していました。これはブログ等でも書いた通り、リセット後の10数秒間はブートローダのデッドタイムに なっていて、書き込んだプログラムは動作していません。USBシリアル変換ケーブルを使ったときに、そのケーブルが短くてターゲットまで届かなかったの で、TXDとRXD(とGND)だけを延長したDSUBケーブルを使ったときに気付いたことで、リセットされなければProcessingFirmataのサンプルプログラムがそのまま動いたのです。この現象は自作ArduinoI/Oライブラリを製作するときにすでに気付いていたのですが、標準ライブラリのFirmataを是が非でも動かすための動機付けにはなっていませんでした。

Firmataexamine  結局のところ、ATmega8を使った旧世代のArduinoでは自動リセットを無効にすることと、Processingのスケッチ実行前に手動でリセットしておくことで、Firmataライブラリ(version2)を動かすことができました。Duemilanoveで は通信にUSBを使っており、回路内でFT232RLを使ってシリアル通信に変換しています。もちろんDTRラインによるリセット回路も内蔵しています。 この信号は基板上にジャンパーピンを挿入できるようになっていますが、デフォルトではパターンがショートしていることと、ピンホールがハンダで埋め殺しに なっているため、ちょっと工作するには勇気が要ります。そんなことを考えながら自作Arduinoの再追試を終えてDuemilanoveでテストをしてみると、なんの問題もなく動いてしまいました。以前はそう思わなかったのですが、Duemilanoveのブートローダはチューニングされているせいか、リセット後すぐにユーザープログラムが動いているようでした。つまりDTRラインでリセットがかかっても十分速い時間でFirmataが動いているということです。動作クロックに差はないことから、単純にブートローダの高速化が図られていると考えていいでしょう。...全文

| | コメント (0) | トラックバック (0)

知っておきたいJTAGの基礎知識

 申し込んでいたことを半分忘れかけていた特殊電子回路(略して特電)の「 知っておきたいJTAGの基礎知識 」という小冊子が、MITOUJTAGのカタログ一式と共に送られてきました。今のところ趣味から仕事へとJTAG関係の作業がちょっとだけできるようになり、CPLDからFPGAへと規模を拡大して、プロセッサ設計なんかをやってみたいと思っていたのですが、なかなか他の興味に気をとられてそちらの方面は最近ほとんど触っていません。よく使っていたのはXilinxのXC9500シリーズで、AlteraのMAX7000シリーズも少し触ったりしていました。最初はスケマチックで書いて、VHDLを覚えて使えるようになってからはもっぱらVHDLで設計をしていましたが、今自宅のメイン開発機のCPUが64bitだからなのか、Xilinx ISE Designe Suite 11がインストールできなくて諦めていたんだ、っていうことを思い出したくらいです。Quartus IIはまだ試していないんだけどね。

Nahitechjtag

 その「 知っておきたいJTAGの基礎知識 」は今のところ特電で販売されている訳ではなく、興味がある人に先着で送付するという形式で頂いたものです。JTAGについて調べてみればわかるけど、IEEEの規格になっているとはいえ、その詳細を調べることが意外と難しいのです。ましてデバイスのコンフィギュレーションやデバイステストについては、Xilinxなど一部のメーカーではバウンダリ情報が小さく書かれていたりするけど、ほとんど明かされていません。自分がJTAGCPLD/FPGAについて特電さんほど突っ込んだことをしようと思っていないにもかかわらず、その概要も良くわからないというのが現状なのです。もちろん、ネットサーフィンすればJTAGの使い方やダウンロードケーブルの自作方法などの情報を得ることはできますが、仕組みまではほとんど解説されていません。(知る必要がない、と言われてしまえばそれまでだけれど。)つまりJTAGは手段であって回路設計や論理設計がエンジニアやホビイストの領分なのであって、その仕組みはプロだけが(つまり特電さんみたいな人たちが)知っていればいいということなのでしょう。でも、トランジスタの仕組みがバンド理論などの詳細に説明がされているのに、物理的ではなく極めて人為的で論理的(だって同期シリアルだし)な仕組みがオープンでないのは変だと思います。 ...記事全文

| | コメント (0) | トラックバック (0)