2010年4月27日火曜日

Make: Tokyo Meeting 05の出展内容を決定


Make: Tokyo Meeting 05での出展内容を決定しました。
最新の設計品からガラクタボックスで眠っていたものまでを取り揃えて出展します。

概要

CuBeatSystemsはMake: Tokyo Meeting 05に出展します。
入場は無料です。お気軽にお越しください。

 

日時

2010年5月22日(土)、23日(日)

 

場所

東京工業大学 大岡山キャンパス(東京都目黒区大岡山2-12-1)キャンパス情報

 

出展内容

  • B028 : LEDMTX 100 (展示と販売)
  • B037 : LEDMTX CLOCK (参考出展)
  • B041 : A tiny SD card module (展示と販売)
  • B046 : uMP3 player (参考出展)
  • B051 : WAV MODULE (展示と販売 *基板が間に合えば)

主催

共催
  • 東京工業大学
  • 多摩美術大学 情報デザイン学科

2010年4月25日日曜日

B041 : Tiny SD card moduleにブートローダを載せる(AVR109対応)

随分前に対応しようと思い立っていたAVR109にようやく対応させた。
以前やった時にうまく書けなかったのはボードのクロック精度が原因。

ここ数日モニタを実装していて、思った以上にRC内蔵クロックの精度が悪いことが分かった。
エコーバックのテストでやたらと文字が化ける。

データシートを見返してみると確かに。
あらら。


実験用途とは言え、オシレータは載せておきたかったところではある。
デモアプリケーション起動時に100[us]で割り込みを発生させるようにしてオシロスコープで観察し、モニタコマンドでOSCCALを調整できるようにした。
この状態でエコーバックテストをすると当然問題ない。

ブートローダの問題もきっとこれだろうと気付き早速試す。


ブートローダには2[KB]を割り当てた。
ワード先頭アドレスは0x0C00でmakefileで.textのベースアドレスを指定する時には0x1800となる。
AVRISP mkIIでブートローダを書き込む。

次にやるのはブートローダ経由で書き込むアプリケーション。

現在実装しているデモアプリケーションは既にフラッシュの大部分を使い切っている。今回はブートローダの動作を確認するだけなので、機能をザクザク削って6[KB]に収めたバージョンを作った。

後はavrdudeの書き込み機器指定をavr109としてポートにシリアルポートを指定するだけ。

#!/bin/sh

AVRDUDE=avrdude
MCU=atmega8
PORT=/dev/ttyUSB0
PROGRAMMER=avr109
TARGET=sdcmod

FLAGS="-p $MCU -P $PORT -c $PROGRAMMER"
WRITE_FLASH="-U flash:w:$TARGET.hex"

$AVRDUDE $FLAGS $WRITE_FLASH $WRITE_EEPROM

これで書き込みを実行。
べリファイまでの動作を確認した。

B041の場合FATの実装が入るのでブートローダの搭載はあまり現実的ではないかもしれない。
書き込んだアプリケーションはFATの実装+エコーバックの実装だが、6[KB]ギリギリ。

2010年4月17日土曜日

B051 : WAV MODULEの基板発注

今回はOlimexに発注。
同様の設計ルールでPCBCARTに頼んだ事があるが、正直8年くらい前のOlimexの品質に近かった。
Olimexは以前に比べて格段に品質が向上している。
製造環境や使用部材を更新しているのかもしれない。

今回は少し急いで出荷はFedExを指定。

2010年4月14日水曜日

B051 : WAV MODULEの電気図面の振り返りレビュー

ざっと引いた図面には大抵の場合「何かの穴」があります。
それらを見つけて修正する機会を与えるのが振り返りレビューです。
電気図面を引いた後に数日寝かせてこれを自分で行います。
印刷した電気図面に思いつく突っ込みをどんどん書いていきます。
通常であればこの時点でいくつもの疑問が出てきます。
基板を製造した後で見つかるバグの大部分はこういった地味な取り組みで取り除くことができます。

ポイントをまとめてみました。

ポイント
  • バラバラに集められたデータシートがあれば一カ所に集約しておく。
  • 振り返りは必ず日付を跨いで行う。(天気や場所などが違えばなお良い。気持ちが切り替わる。) 
  • 振り返りは複数回やると効果的。
  • 参照して良い技術文書はデータシートのみとする。
他にも色々あるかもしれませんが、今朝思いついたのはこのくらい。

2010年4月12日月曜日

B051 : WAV MODULEの設計

WAVファイルをチープな音で再生するためのモジュールとして設計。

外出先で3時間かけて配線したのが下記ボード。
家に帰って原寸大で印刷してみたらイマイチ盛り上がりに欠ける。
何か中途半端さを感じてしまう。
 そこでやるんだったらということで液晶表示機を追加する仕様に急きょ変更。
結局配線も初めからやり直しです。

2010年4月11日日曜日

Make: Tokyo Meeting 05

出展予定です。


間に合えば新設計品も展示します。
  • 開催日:2010年5月22日(土)、23日(日)
  • 会場:東京工業大学 大岡山キャンパス(東京都目黒区大岡山2-12-1)
  • 入場:無料
  • 交通:東急大井町線・目黒線「大岡山駅」徒歩1分
  • 主催:株式会社オライリー・ジャパン
  • 共催:東京工業大学、多摩美術大学 情報デザイン学科

2010年4月6日火曜日

Play WAV files on a micro SD card using Atmega8

SDカード上のWAVファイルを読み込んでPWMで音声を出力する実験。

サンプリング周波数をどこまで上げられるかの事前確認を兼ね、SDカードI/Oの様子をオシロで観察。
リングバッファによるFIFOを作り空きがあれば順次読み出しリクエストを発行する仕組み。


悪くはないが、これを調整したところで技術的な取り組みとしての魅力をあまり感じない。

もやもや考えていたらFreeRTOSで以下を試してみたくなる。

* SDカードからデータを読み出してFIFOに転送するタスク
* FIFOからデータを読み出してPWM値を設定するタスク
 
実現の可能性を探るために事前調査を開始。
現状の基板に搭載されているAtmega8では実用性に欠けるが事前調査なので良しとしよう。

まずはデバッグ環境のためにもシリアル通信とその他のタスクの平行動作だろうということで、
早速FreeRTOSをポーティングして10[ms]毎にシリアル通信をするプログラムを仕立てる。


シリアル送受信も割り込みベースで行われるのでタスク処理に時間的影響を与えない。
ふむふむ。

次はサンプリング周波数に応じた高精度タイマー割り込みタスクでの動作を確認したいところだ。

Play WAV files on a micro SD card using Atmega8

This is a my first YouTube movie.