電音の工場ブログ

当ブログは…

自作エフェクターシンセサイザ製作のネタや開発覚え書きなど、筆者の電音活動を記録しています。お探しの記事が見つからない方は、検索カテゴリ一覧をご利用ください。

スパマーが来訪すると、ときどきコメントをはてなユーザのみに絞ったり開放したりすることがあります。

2007-06-06

MIDIモニタ機能

|  MIDIモニタ機能 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  MIDIモニタ機能 - 電音の工場ブログ  MIDIモニタ機能 - 電音の工場ブログ のブックマークコメント

3月に作業して以来ずっと放置していたADuC7026版MIDI2CV2実験基板であるが、ハンダ付けしたフォトカプラを生かす/活かすべくUART周りを(ようやく)記述してみた。MIDI受信周りがあっさりと動いた(ように見える)。

UART受信割り込みでバファリングして、ポーリングから受信値を引っ張ってMIDIパーサに送り込んで整形して共用体に値セットして、そいつを見てメッセージを起こしてLCDに表示

という基礎実験をクリア。

といっても「さん、ハイッ」ペダルで試しただけなのでなんともいえないのだけれど、結果を受けて今後は、メッセージの生成部とかヒストリバッファとかを書かなくては。ロータリエンコーダUI処理とか。システムエクスクルーシブはどのように表示させようかしら。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070606

2007-03-19

ADuC7026版 進捗

|  ADuC7026版 進捗 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  ADuC7026版 進捗 - 電音の工場ブログ  ADuC7026版 進捗 - 電音の工場ブログ のブックマークコメント

前回(id:Chuck:20070122:p1)からほんのちょびっと進捗。

写真は撮っていないけれど、DIN 5P のコネクタ*1を取り付けた。もちろんフォトカプラ(TLP552)とその周辺も実装してADuC7026基板(のソケット)に接続。だが、まだテストしていない。

そもそもこいつの割り込みってどうやって書くんだ?

慌てて資料を読んで勉強して、IRQで飛んできた先にディスパッチャを置いて、該当フラグを見て自作のサービスルーチンを呼べばいいとわかった。前回のLCDテストの裏でLEDピカピカ(タイマ割り込み版)を行うコードを書いてみた。うまくいったのだけど、結局この週末はこれしかできなかった。

なお、いろいろな(GPLな)コードをつまんできており、当初のフレームワーク(id:Chuck:20070110:p1)のお作法から さっそく外れている*2。困ったものだ>自分。

次はUART(MIDI)の受信まわりを割り込みで。しかしソフトウェアの構造をどのようにするか*3決めなくては。1月に電車内検討したときから進んでいない。

ちなみに開発環境は KEILにGNUARMを使ったものを使用している。ペリフェラル周りの設定がとても便利*4なのだけれど、コードサイズが大きくなるとシミュレータ部分は制限から使えなくなると思われる。制限のない魅力的な開発環境(組込みプログラミングにEclipseを使う(2))が紹介されているけれども、腰が重いのと懐が寒いのとでなかなか乗り換えられない。

*1:基板直付け DIN 5Pコネクタについては id:Chuck:20070120:p1 で在り処を教わり、マルツ電波から通販しました。

*2:割り込みISRの名前は一意にしておいて実ハンドラをattachするとかのあたり。

*3UART割り込み→MIDI parse→MIDIメッセージの機能ごとバッファ⇔出力リソースとの通信方法、出力リソースのコンフィグ方法など…

*4:レジスタを設定するとボーレートがいくつになるか出てくる、とか。

RJBRJB2007/03/19 22:3532kHzの外部水晶は実装されましたでしょうか?

ChuckChuck2007/03/20 06:54いえ、まだなのです。いまだに内蔵RCの32768Hzでやっています。
ところで、31.25kHzを作るべくfractional dividerと格闘して定数を出しましたが(CD=0, DL=40, M=1, N=91)、昨年RJBさんが作られた ADuC7026でのMIDI受信回路の定数(CD=0, DL=41, M=1, N=39)の方が誤差が小さかったため、サクっと利用させていただくことにしました。

ChuckChuck2007/03/26 09:1332768Hzの水晶を入手できました!

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070319

2007-01-22

進捗

|  進捗 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  進捗 - 電音の工場ブログ  進捗 - 電音の工場ブログ のブックマークコメント

id:Chuck:20070120:p1 で LCDからメッセージの出た ADuC7026版 MIDI-CV

その後、コンパイルを Thumb命令に替えて、その上でタイミングを調整して、LCDの写真を撮って、週末の作業は終了。

MIDI2CV2 board MIDI2CV2(LCD)

写真は0~255のループを回して、それをプログレスバー表示しているもの*1。この表示にLCDのCGRAMにカスタムキャラクタを置いて使っている。

なおこの写真撮影の後、電源逆接で壊したLCDからバックライトとベゼルと液晶パネルを移植。写真のバックライトなしモデルをバックライト付きに改造することができた。電源逆接で死ぬのはコントロール基板だけなのです。

プログラムコードの方は、まだ長いnopによるdelayが無駄にあるので、タイマ割込みを書いてそれで待ちをするように替えるかも。

今後はMIDIモニタとして機能を書いていく予定。

*1:本来ならADCを使ってとかロータリエンコーダを使ってとかやりたいところだが…

r0r0r0r02007/01/22 21:34>死ぬのはコントロール基板だけなのです
いくつものLCDを葬り去ったものだけが語れる漢の言葉ですね;-p

ChuckChuck2007/01/23 06:52ふっふっふのふ orz

2007-01-20

"Hello World"

|  "Hello World" - 電音の工場ブログ を含むブックマーク はてなブックマーク -  "Hello World" - 電音の工場ブログ  "Hello World" - 電音の工場ブログ のブックマークコメント

ADuC7026版のソフトウェアの構造をいろいろと考え中。雑誌インターフェースの組み込み系の特集を読んでOSではどんなことをやっているのかお勉強をしているところ。完成まで先は長そうである。

ところで、飛ばしたLCD(id:Chuck:20070114:p1)の代替が通販にて到着。

しかしいろいろやって動かない。あれこれ読んで動かない。導通チェッカであたって、配線間違い発覚。間違えていたのは電源の配線だけではなかった。列ごと間違えていたのだった orz

みなさまもお気をつけください。ともあれ"Hello World" が動きました。詳細は task:7:45 に。

まだカスタムキャラクタ周りの動作がおかしいのとタイミングがやっつけで無駄が多いため、細かい修正・修整が必要。タイミングチャートを見ながら追い込まねば…

LCD表示では無駄にnopやら空ループが多いので、CPUクロックが無駄になってしまう。ハードウェア割り込みから返ってきてLCDのループにつかまると何もできなくなってしまうので、ハードウェア割り込みから戻る際にソフトウェア割り込みを発生させるようなディスパッチが必要になるかも。

それはさておき、次のステップはMIDIモニタかな。Thorsten KloseMIDI Mon(筆者作例はこちら)の見た目を踏襲しようかな、と。


ということで、基板直付けのDIN 5Pコネクタ(ジャック)を探しているのですが、どなたか秋葉原で売っているお店をご存知の方がいらっしゃいましたら、教えてください。

RJBRJB2007/01/20 14:54LCD表示おめでとうございます。参考にさせていただきます。
そーいえば見かけませんね>基板直づけDINコネ。Chuckさんを真似てMIDI受信治具を作った時には、ジャンクのPCマザボから引っ剥がしました…

lumlum2007/01/20 21:38RSオンライン http://www.rswww.co.jp/ には 453-066 と言う品番でありますね。5個単位での販売で1個210円のようです。

analoganalog2007/01/20 23:15DINコネ、以前マルツにありましたよ。通販ページにもあるので今もあると思われます。

ChuckChuck2007/01/21 17:36みなさん、ありがとうございます。
随時公開したいのですが、トッ散らかっているのでどこかのタイミングを狙って公開しようと思います>RJBさん
lumさん、analogさんありがとうございます。RSにはやっぱりありますね。マルツは抜け落ちていました。以前どこかで買ってMIDI受信冶具にしたのですが、それ以降見つけられなくなっていたので助かりました。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070120

2007-01-16

おっとっと

|  おっとっと - 電音の工場ブログ を含むブックマーク はてなブックマーク -  おっとっと - 電音の工場ブログ  おっとっと - 電音の工場ブログ のブックマークコメント

今更ながらコレ↓を見てみた。

ADuC7019/ADuC702x シリコン・アノーマリ・シート

デザインウェーブ誌の付録基板の、少なくとも筆者が手にした基板にマウントされている石はこれに該当している。曰く、

ADCがイネーブルの場合において、P2.0 のピンが立ち下がりエッジでADCが再開始されちゃいますよ、P2.0が何に割り付けられていても(GPIOでもSOUTでもPLAO[5]でもCONV_startでも)。

ということで、ADuC7026版MIDI-CVCV-MIDI機能を入れよう*1とするときには、ちょいと工夫が必要なようだ。なんてことはない、A/D変換が終わったらADCをディセーブルにしてからuart送信すればいいだけのことである。もちろんuart送信中はA/D変換をしないようにする、というのも同時に必要。

ということで、忘れないようにログ。

ところで

DOS窓からmakeしていたGNU ARMでのrprintftestだけれど、Keilからbuildできるようになった。ディレクトリ構成も見直し、Keilと名前の当たる *.h ファイルの名前を変更。もうちょっと綺麗に整理したらSubversion*2に入れようっと。

*1:このときは P2.0をSOUTに割り付けてMIDI outに使用する。

*2:cvsからすっかり乗り換えました。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070116

2007-01-15

週末の進捗

|  週末の進捗 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  週末の進捗 - 電音の工場ブログ  週末の進捗 - 電音の工場ブログ のブックマークコメント

うーん…

[MIDI2CV2] ADuC7026版 MIDI-CVコンバータ

id:Chuck:20070114:p1 に書いたようにLCDを飛ばして終わった orz

しかしなんとか、Procyon ARMlib - C-Language Function Library for ARM Microcontrollers をベースに、GNU ARM でコードを書く目処は立ったので、まぁ、良しと。それにしてもあちこち書き換えちゃったので、オリジナルのディレクトリ構成に拘らなくてもいい気がしてきた。

Keil環境に移そうかしら。

それはそれとして timer.c を書かなくては…

[MIDI2CV] ATtiny2313版 Ver 1.5 ポルタメントコントロール検討

id:Chuck:20070106:p1 のあと、

Chuck 『(前略)時定数としては 1/(RC) なので変化感として良い感じになっていたりしないものかしら?』

などと甘っちょろいことを言っていた(id:Chuck:20070106#c1168222387)が、実際にVCOに繋いでくりくりしてみたところそうはうまい事いかず、変化感があまりにも急激で使い物にならない。やはり元がAカーブとなっていることに鑑みても、このフォトカプラなら分母に持ってこないといかんようだ。が、それをやりだすとポルタメントのフィルタのゲインも変わってピッチの安定が期待できなくなってしまう。PWMからのLED直接駆動を諦め、制御を直流にしてログ変換を入れて、というのもナンだしなぁ… コントロールチェンジからカーブを持たせてPWMを振ろうにも8bitではイマイチだし(RJBさんの仰るとおり)、なによりもうコードを弄りたくない。ポルタメントON/OFF切り替えも現状でもONすると少し音程が変わってしまうのが気持ち悪い。

ということで、しばしお蔵入りにすることに…

そのうち、サーボモータによる可変抵抗器の機械制御にて復活するかも(ほんとか?)。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070115

2007-01-14

またやった orz

|  またやった orz - 電音の工場ブログ を含むブックマーク はてなブックマーク -  またやった orz - 電音の工場ブログ  またやった orz - 電音の工場ブログ のブックマークコメント

ADuC7026版MIDI-CVを検討中に、またやってしまいました。

LCDの電源逆接続…

当然壊れた…

この週末の検討は終了。

geniegenie2007/01/14 10:19壊れてました~って交換してもらうのは・・・だ、ダメですよね。うぅむ、気を取り直して再チャレンジ!

gangan2007/01/14 20:59あらら残念。今週末は私も久しぶりに飛ばしてしまいました。といってもトランジスタ1個だけなので地味な話ですが。

ChuckChuck2007/01/14 21:275年で3個飛ばしました>秋月液晶。うち2個はここ半年のことで、まったくもって頭が悪いです…

2007-01-10

ADuC7026版

|  ADuC7026版 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  ADuC7026版 - 電音の工場ブログ  ADuC7026版 - 電音の工場ブログ のブックマークコメント

まだLEDをピカピカさせているだけだが、そろそろ動かすことも考えようと思う。フルスクラッチで組むのもいいのだけれど、なにせ筆者の記述は汚い。ミミズののたくったような、「なぜコレで動くのだ?」なコードとなること必至*1。人のコードで読む勉強を兼ねてライブラリを導入しようかと考え、見つけたのがコレ。

Procyon ARMlib - C-Language Function Library for ARM Microcontrollers

ADuC7026版についてはまだドライバが不十分なのだけれど、足りない分を書きながら勉強すればいいかな、と。実はAVR版のライブラリもあって、LCDドライバなどは流用できそうな感じ。LCDドライバを書く前に rprintf のサンプルでシリアル通信ができればいいかな。

ライセンスがGPLだけれど、いかがでしょう?>ganさん、genieさん

他になにかお勧めがあったら教えてください。

追記

ありゃ、スタートアップ(の一部?)はKEILから抜いているようだなぁ…

*1:ハードも綺麗とはいいがたい。

geniegenie2007/01/10 23:45>>ganさん、genieさん

おっと、こっちにふられてますよ~っ、ganさん! :)

ARMlibって使ったことがないんですよ。DIY界にはメジャーなLPC2000/AT91SAM7/ADuC702Xをサポートしているようなので期待したいところです。スタートアップ・コードがKeil由来のものに傾いてしまうのは致し方ないんじゃないでしょうか。ARM社がKeilを買収した現在、Keilが公開しているソースはパブリック・ドメインと考えても咎められることはないと思います。ADuC7026にはeForthのインストールと酔漢さんのシンセサイザーのCコードに少し手を加えたものを試してみて、どちらも良い手応えが得られていますが、カオスLFOとかを実現しようとすると、ネックはフラッシュ・メモリーの容量になるかな。

gangan2007/01/10 23:55うーん、私マイコンしろうとなのにー。ADuCのパートちらっと読んでみましたが読みやすく書いてあっていい感じですね。これなら確かに書き足しもやりやすそうです。私も使ってみたいです。ご紹介ありがとうございます。マイコンでどうしても苦手なのは、UNIX ソフトウェアでは出てこない割り込み処理であります。AD/DA するなら避けて通れないので早く慣れたいです。

GPL て確か改変自由なかわりにそのコードも公開するときは GPL にするのよ。という縛りでしたよね。そうすると、GPL だというのは願ったりですね。(理解違いでしたらごめんなさい)

ChuckChuck2007/01/11 12:34GNU ARM 3.3.1 でこちょこちょやって(まだtimerドライバがないので抜いたりして)、rprintftest のコンパイルが通るところまで出来ました。時間を見つけてUART周りを試してみます。

ここまでで code が 3KBです。62KBあるのでまぁまぁいけるかもしれません。容量が足りなくなったら、データテーブルとかはI2C上のEEPROMに持つ手もありますね。

そうです、そうです>GPL。利用する分には願ったり叶ったりですね。

ChuckChuck2007/01/12 06:52rprintftestのコンパイルは通ったもののまだ動かないので、もう少し細かくやり始めました。

ChuckChuck2007/01/12 18:29rprintftest がうまくいきました。processor.c の PLLCON周りが外付け32.768kHzを期待した定数になっていました。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070110

2007-01-08

ADuC7026検討基板

ADuC7026版 着手

|  ADuC7026版 着手 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  ADuC7026版 着手 - 電音の工場ブログ  ADuC7026版 着手 - 電音の工場ブログ のブックマークコメント

ATtiny2313版が完了しているわけでもないのに ADuC7026版(id:Chuck:20061020:p1)に着手。デザインウェーブ誌 2006年3月号に付録していたADuC7026基板を利用しようというプロジェクトである。

旬な時期からもう1年近くも経過してすっかり忘れている。

まず付録基板を改修(g:ecrafts:id:Chuck:20060217#p1)した。オリジナルのままだと動作が不安定なことがある。パスコンを追加し、ひとつピンの足上げをして対GNDでコンデンサを追加。あっさり書いているが虫眼鏡で見ながら泣きながらやった。

それから基盤基板 :) いわゆるベースボードの製作に入った。現状の基板はこんな感じ↓。

ADuC7026 base board

まぁまぁな大きさなのにベークである。このサイズになるとガラエポは高価なのでベークにした。そのため何かと基板がたわむ。割らないようにしなくちゃ…

現状では電源とダウンロード用シリアルの配線をした程度で、写真にあるLCDやロータリエンコーダ(プッシュスイッチつき)は結線されていない。この3連休で "Hello World" ぐらいは出したかったのだが、そこまで時間が取れなかった。よって開発環境とソフトウェアの復習ができていない。サンプルをダウンロードしてLEDチカチカをしているところ。とりあえず10時間ぐらいは動いたので改修はうまくいっているのかな。

今後はMIDI I/FやI2C DACの追加などやることメジロオシ。UIも決めていないし… まぁ、少しずつやっていくしかありませんね。

ちなみに

黄緑色の基板は、その昔 現品.com で買ったDC/RS232C/RJ45/USBの載る変換基板。今もまだあるのかな? なお、RJ45がマウントされているのはシャレです。

ChuckChuck2007/01/09 04:0420時間経過。よしよし動いているぞ。

gangan2007/01/09 21:21ADuC7026使い方を覚えるの正月休みの課題の一つだったのですが未着手に終わりました。ネタがかぶってないかちょっとどきどき。

gangan2007/01/09 21:30(ネタかぶる?)と思ったら MIDI2CV なのですね。そ、それはかぶりません(よく読まないといけないですね)。ADuC だとメモリも処理速度も強力なのでかなりすごいものになりそうですね。

gangan2007/01/09 21:32↑ATTiny 版がすごくないという意味では決してありません。追試してみたいけど私の腕では厳しいかも、という意味でした。口数おおいなワシ。

geniegenie2007/01/09 21:55>20時間経過。よしよし動いているぞ。

どうも、おめでとうございますっ!:)

ADuC7026基板を存分に弄ぶ前なのに放置モードに移行中・・・とほほ。今年もどうぞよろしくお願いします。

ChuckChuck2007/01/10 06:38LEDチカチカは昨日の早朝(4:30)に再起動して動かしっぱなしにしています。
そうそう、旬を逃すととたんに「積んどく」になってしまいがちですよね。情報のまとめサイトも忽然と消えたりすることも多いし…
ADuC7026はパワフルなのでいろいろと応用できそう(検索するとRJBさんのFFTとか酔漢さんのシンセとか見つかります)ですが、当初の予定からあったMIDI-CVを組んでみようと思います。ATtiny2313版のCソースを流用して…、って2313版は7026版のお試しバージョンだったわけなのですが。

トラックバック - http://emusic.g.hatena.ne.jp/Chuck/20070108

2006-10-20

ADuC7026版 準備編

|  ADuC7026版 準備編 - 電音の工場ブログ を含むブックマーク はてなブックマーク -  ADuC7026版 準備編 - 電音の工場ブログ  ADuC7026版 準備編 - 電音の工場ブログ のブックマークコメント

前回(id:Chuck:20061005#p1)示した基板ではちょっと小さかろうと。試行錯誤するだろうから大きめにして、2階建てではなく部品を平たく配置できるように。

a new ADuC7026 base board 実はこんなに大きい蛇の目基板を買うのは初めて。
同サイズの両面スルーホールのガラエポ基板は、高くて買えなかった…

今は他の製作が詰まっているので、着手は年末年始休みかなぁ。

リョウリョウ2006/10/20 22:18松美庵BBSではありがとうございました。現在部品待ちの状態です( ^ω^)
かなりでかいユニバーサル基板ですね(;=ω=)!!
初めて見ました!!

狂雪狂雪2006/10/21 09:04松美庵さんの掲示板ではお世話になりました。
現在ギターアンプを製作中で手持ちの部品で何とかならないかと考えていました。

このような大きな基板に部品を配置するには目が回りそうです。

GreenThumbGreenThumb2006/10/22 02:04うほっでかい基板。このサイズになるとノイズ(回り込み)とかスキューとか気にしないといけなそうですね。

ChuckChuck2006/10/22 04:34スキュー!
付録基板が32.768kHz水晶からPLLで40MHzですが石の中だし、MIDI 32kHz、I2C 400kHzとシリアル伝送、LCDも遅いです。気を遣うのは電源のインピーダンスとデジアナGND分離ぐらいかなぁ。