Wanderlst

作成ログ

今後、どうでもいい日記風にまとめます。各エフェクタのページはページを分けて開発記をのせていきます。

過去の記事

2008.10.31 ATNGW100にLCD追加してみた

すんません、またもやエフェクタとは関係のない工作ネタです。

ATNGW100は安いうえに、LCD用にまとめてヘッダピンが出ているので、これでフォトフレームでも作ろうかとLCDに接続できる基板作ってみました。液晶は、恒例のPSP液晶です。

ただ、ATMEL標準のBSPについているLinuxカーネルソースでは、AV32依存部のパッチにバグがありすぎて、LCDピンをONにすると起動できないというバグに見舞われるので、ATMELからBuildrootをとってきて、ソース修正して一式コンパイル。

Buildrootからビルドすると、rootからのファイルシステムも自動で構築してくれるので、BSP使うよりはるかに簡単です。ちなみに、Buildrootの中に、PRBoom(フリーのDOOM)も入ってますw

ただ、液晶はあっさり映ったんだけど、なぜかLANが認識しているのにネットワークに接続できない。原因追跡中。

2008.8.1 minamiさんの疑問より

AVRでつまづいてに書かれていた疑問より

>でもwhile文中のforとPORTBの位置を逆にすると、点灯したまま変化しない・・・・。

たぶんコンパイラの最適化がかかってるんだろうと。

てなわけで、コード吐き出して検証。

その1

  long i;
  DDRB = 0b00001111;
  while(1)
  {
    for(i=0;i<20000;i++)
      ;
    PORTB ^= 0b00001111;
  }

結果

  long i;
  DDRB = 0b00001111;
  while(1)
  {
    for(i=0;i<20000;i++)
6a: 01 96 adiw r24, 0x01 ; 1
6c: a1 1d adc r26, r1
6e: b1 1d adc r27, r1
70: 80 32 cpi r24, 0x20 ; 32
72: 3e e4 ldi r19, 0x4E ; 78
74: 93 07 cpc r25, r19
76: 30 e0 ldi r19, 0x00 ; 0
78: a3 07 cpc r26, r19
7a: 30 e0 ldi r19, 0x00 ; 0
7c: b3 07 cpc r27, r19
7e: ac f3 brlt .-22 ; 0x6a <main+0x10>
      ;
    PORTB ^= 0b00001111;
80: 88 b3 in r24, 0x18 ; 24
82: 82 27 eor r24, r18
84: 88 bb out 0x18, r24 ; 24
86: 80 e0 ldi r24, 0x00 ; 0
88: 90 e0 ldi r25, 0x00 ; 0
8a: a0 e0 ldi r26, 0x00 ; 0
8c: b0 e0 ldi r27, 0x00 ; 0
8e: f0 cf rjmp .-32 ; 0x70 <main+0x16>

別に各段変わっていません。ソースどおりに吐き出してくれています。

その2

  long i;
  DDRB = 0b00001111;
  while(1)
  {
    PORTB ^= 0b00001111;
    for(i=0;i<20000;i++)
      ;
  }

結果

  long i;
  DDRB = 0b00001111;
  while(1)
  {
    PORTB ^= 0b00001111;
5e: 9f e0 ldi r25, 0x0F ; 15
60: 88 b3 in r24, 0x18 ; 24
62: 89 27 eor r24, r25
64: 88 bb out 0x18, r24 ; 24
66: fc cf rjmp .-8 ; 0x60 <main+0x6>

見事にfor文以降が削除されています。コンパイラが、こんな意味ないfor文いらねと最適化してるんでしょう。

対策としては、2種類あって、

1.for文の中にNOPをいれる

2.long i を volatile long i に変更する

の2種類ですが、やるとしたら1番でしょうか。

つまり、

    for(i=0;i<20000;i++)
     _NOP() ;

こうすれば万事解決です。minamiさん、お試しあれ。

2008.1.9 MINICUBE2

今回はつい魔が差して…というわけじゃありません。V850の評価目的に、MINUCUBE2を購入しました。それでも1万円。他社の純正オンチップデバッガに比べると非常に安い。これなら評価だけでも買おうという気になります。数年前からNECが78KやV850の宣伝をよく見ます。気合い入れているのでしょうか。むしろ、小さくて安いのはこちらとしても非常にありがたいです。

何に使う予定かはまだ秘密ですが、AVRではちとつらい用途に、V850にTOPPERS載っけて使おうかと。気に入ればそのまま使う予定です。

そして、現物はあけてびっくり。ちっこ!!

そして、つくりは安っぽい…とおもっていたら、基板はちゃんと作られています。安っぽく思えるのは、ケースのせいでしょうか。ケースは簡単にはずれました。

表面。簡単な回路で作ってあるのかと思っていたら…。

裏面には、V850が載っていました。学生の教育用も意識しているのだと思いますが、1万で販売して赤字にならんのかなー。チップが売れれはそれでいいのかな?自作世界だと数年前まであんまり馴染みがなかった78Kですが、昔から色々な製品で78K使っているのをみます。

学生時代はMASMが使えるのもあって、V40をメインで使っていました。学校でもV25で実験してましたしね。V810を買おうとしたときはありましたが、当時はコンパイラとかが有償で高くて手が出なかったと記憶しています。(チップも数個単位では買えなかったですし。今はエエ時代だw)

去年のインターフェース5月、6月号でV850の特集やっていたのですが、私は使わないだろうと思って買ってませんでした。買っておけばよかったと今更後悔(汗

2008.1.7 AVR用のOS

いつもAVRでソース書くときは、OSなど使わず1からごり押しだったわけですが、TOPPERSとか使っちゃうと、便利で元に戻れませんw

ただ、8bitでも動作するようにと書かれては居ますが、TOPPERSを外部メモリのないAVRやPICで動作させるのはちょっとつらいモノがあります。何かイイの無いかなぁと検索中。

2007.12.27 年の瀬

もうじき今年も終わろうとしています。今年はほとんど更新が無かったのですが、来年はもうちょっと頻度高く更新しようかと思います。せめて、1ヶ月に1個はエフェクタ作ろうかと(去年のシャケさんの抱負みたいだw

今年はデジタルな年でした。作るエフェクタと言えば、デジタルエフェクタとかやデジタル周辺機器とかで、アナログペダルは両手で数えるぐらいしか作った記憶がありません(汗)
ついでにと作っておいた基板ばっかりたまっていく一方です。ピック先輩の自作教室もほったらかしだし…(滝汗

はい、すみません。

近いうちに、Cat's Tail の最終版とか、 メトロノームとかその他色々公開できるかと。 オペアンプも比較すると言って買い込んだままですし…。あ。メトロノームと言っても、市販されている普通のじゃないですよ。エフェクタボードに常備できるようなヤツ。

あと、手間取りすぎているリングモジュレータとか、Tomionangerとか、充電機能付PJとか、デジタルディレイとか…。上げていくときりがありませんorz

来年はもっとがんばるぞー。

2007.11.19 ET2007, takerockさんライブとその後

事情でブログを削除してしまい、どうしようかとも思ったのですが、代替え案を考えています。まあ、最悪ここに書けばいいカナなんて事もおもってるので、それはそれで。

ET2007は、仕事の都合でKDDIのブースが主目的でしたので、展示会を見た後は、信号処理仲間で呑み会。

翌日は秋葉原とかぶらぶらしながら、takerockさんのライブを見に行ってました。どのバンドも色々と出演や演奏には色々工夫がありまして、かなり参考になった面もありました。

いやー、いいですね。