「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



マイコン用のJVM、uJっていうのがあるみたい。
http://dmitry.co/index.php?p=./04.Thoughts/11.%20uJ%20-%20a%20micro%20JVM

マイコン用に小さく作ってあるようで、ATmega64、
Atmega128とか、dsPICとかで動くみたい。

速度もまぁそれなりに出るっぽいようなこと書いて
あって、ガベージコレクタまでちゃんと実装されて
いるみたい。

javaのコードはマイコンのflashメモリに入れておく
みたい。テストボードの映像を見るとSDカードの
スロットがあるんだけど、そっちにプログラムを入れて
おくわけじゃないのか…。
ちなみにこのコードって言うのは中間コードの
ことなのかな?

なかなかの力作なんだけど、ちょっと試してみるには
心理的な壁が高いかな。

http://ja.wikipedia.org/wiki/Write_once,_run_anywhere
そもそもjavaのwirte once,run everywhereって
いう考え方には今でも違和感感じるところ。
write everywhere,run onceとか言われるよな。
バージョンころころ変わって。


ゲーグラの更新が最近めちゃくちゃ速い。
http://www.nicovideo.jp/watch/1350310501
http://www.nicovideo.jp/watch/sm19129275

2つ目の方には第56回(旧ゲーグラ第144回最終回)
って書いてあって、「えぇ?最終回なの?」と
あせってしまったんだけど、旧ゲーグラの方で
次回案内として堀井雄二氏が挙げられていたから
ちゃんと締めておこうということみたい。んで、
新ゲーグラはまだまだ続くみたい。よかった。


http://www.sankeibiz.jp/business/news/121010/bsb1210101001000-n1.htm
シャープの助っ人として挙げられている鴻海、
なんともな社風の会社だな。厳しそうだな。




コメント ( 0 )




パラパラっとトラ技11月号を眺める。今月は
基板を作るのがメインなのかな?後半のサンプル
プログラムは結局マルツの拡張I/F基板を
買わないと動かせないしなぁ。

それにしても、このUSB-シリアル変換のPL2303SA
ってチップは単体で手に入らないのかなぁ?
Digi-KeyにもRSにも見当たらない。

外付けモジュールになる↓
http://www.marutsu.co.jp/shohin_137791/
これを買うか、全部の部品が揃った部品セット↓
http://www.marutsu.co.jp/shohin_137786/
買うかなんだろうけどなぁ。

外付けモジュールだと、本誌を読むと書き込み時
に電源保護のためにナントカカントカで電源線を
USB給電にしないといかんとか書いてあって面倒。

部品セットの方が良さそうみたい。要らない部品が
付いてるっぽいのがちょっとイヤなのと、脚は
ピンヘッダで下から生やすんじゃなく、上から
ピンソケットにした方が遣いやすいだろうと
思うんだけどな。


そういえば、この間秋月でふと目に留まって
買ってきたこれ↓
http://akizukidenshi.com/catalog/g/gM-04134/

DC5Vから±12Vを作れる両電源ユニット。
オペアンプ用電源として便利かなと思って。

ちなみに5V電源とはアイソレートされててそれも
便利っぽい感じ。

さすがにちっちゃいから42mAとかチビットしか
取れないのと、負荷が小さすぎると逆に電圧が
跳ね上がっちゃうみたい。まぁ、15kΩより小さな
付加をかければいいだけなので、気をつければよし。

1個持っておくと便利っぽいな。今度何かに使おう。


http://akizukidenshi.com/catalog/g/gM-06127/
秋月カメラ祭り。このスーパーインポーズの画面
って、ユーザ文字も書けるのかな?書けないみたい
だな。まぁそりゃそうか。



コメント ( 0 )




この間、MEGA164のISP書き込みできない状態のゾンビ
を作ってしまった
ので、HVPPでfuseとかリセット掛けたい
ところなんだけど、何かいいものはないかと調べてみた。


とりあえずこれ。有名どころ。Arduinoシールド形状
のHVPP/HVSP対応「HV Rescue Shield」。
http://mightyohm.com/blog/2008/09/arduino-based-avr-high-voltage-programmer/
以前tokoyaさんに教えていただいたんだな。

これがちょっと進化してプリント基板で出てるみたい。
http://mightyohm.com/blog/products/hv-rescue-shield-2-x/
8ピン、2ピン、28ピンに対応してるみたい。

TINY2313はしょっちゅう動かなくなるから、これ1個
手元にほしいところなんだけど、これには40ピンの
ことは触れられてない…


んで、もしこれを買ったらMEGA164に使えるのかなぁ?
と調べてみる。

28ピンも40ピンも、HVPP用の端子は同じ名前になって
いるから、ピンの繋ぎ方だけ換えれば使えるんじゃね?
と思って、代表してMEGA164(40ピン)とMEGA168(28ピン)
のデータシート開いて、HVPPモードの入り方と読み書きの
シーケンスを比べてみる…。

なんか全然違うじゃん。ガックシ。

HVPPのリセットするプログラムを自分で書くのは
ちょっと避けたいなぁ…


んで、次に白羽の矢が立つのはやっぱAVR Dragon。
色々情報を探っていると、どうやらちょっとした
ことで火を吐くからDragonなんじゃね?っていう
ウワサが。壊れちゃうのは困るな。

そしたら、
http://handa40rou.blog123.fc2.com/blog-category-8.html
こんなプロテクターって言うのを作ってしまった
人がいるみたい。ほう。
これ使うと、各本数のピンのICでも保護されるって
ことなのかな?ISP端子(もしくはDebug Wire)だけ?
どんなときにどんな原因で壊れるのかがよくわかんない…


壊れず、永く使えて、色んなチップに対応している
HVPP(とHVSP)対応のリセッターはないものかなぁ?



コメント ( 0 )




色々あったものの、とりあえず期待したような信号
を出力できるDDSファンクションジェネレータが出来た
みたい。

100hzと200hzのsin波を出力して、位相を90度にした
もの。



拡大図。



んで、この周波数比1:2の波形のまま位相を45度に
設定してリサージュ図形を描かせてみたのがこれ。



http://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%B5%E3%82%B8%E3%83%A5%E3%83%BC%E5%9B%B3%E5%BD%A2
合ってるみたい。ok。


ココに辿り着くまでに、色々紆余曲折。

位相の設定は、入力値に掛け算使って処理させるか、
それとも定数テーブルにしようかと迷って結局
定数テーブルにしたんだけど、いざ位相の角度を
入力してみると、なぜか指定値の4倍の位相ずれ
が生じちゃう。

AVRでプログラムメモリ(.cseg)上の定数データに
アクセスするときにズレが起こるときっていうと、
大体SRAM(アドレス値そのまま)とFLASH(word単位
なので2倍したアドレス値)あたりが絡んでいる
だろうと思ってそっちから見ていったら、全然
原因がわからない…

改めてソフトウェアシミュレーションをじっくりと
やり直してみる。

緻密にソフトウェアシミュレーションをやり直して
みると、各変数も考えたとおりの値を示しているし、
テーブルからの読み出し値も間違えない。

じゃぁシミュレータと実機で計算結果が異なってる
ってことか?と思って、わかんなくなったので食事
をかねて外出。

自転車漕ぎながらアレコレ考えてると、ふと思いついた。
定数テーブルに仕込んであるデータの値(レンジ)が
間違ってるんじゃない?と。

んで、改めてそっち系から調べなおしてみたら、
サクッと見つかった。角度の指定レンジが2ビット
ズレてた。なんだ…なんだよ…。

つまんない間違えでハマルと、「あそこは大丈夫なはず、
こっちも大丈夫なはず…」みたいに思い込みでなかなか
先に進まなかったりするんだよな。


MEGA644用で動いたんだけど、メモリは8KBちょっとしか
使ってないので、MEGA164に鋳直して(タグを少々修正)
MEGA164チップに載せ換えしておこう。

あと、波だけでなく「任意の図」も表示出来るように
図データ作成ツールが作ってあるので、x-y表示で
図を描いてみよう。


とりあえず一段落。買ったままの本をちょっとずつ
消化しよう。



コメント ( 0 )




相変わらずMEGA164のDDSファンクションジェネレータ。

回路周りは大体よさげとして、ソフト周りで1個残って
いた課題。位相がうまく保たれないって件について
プログラムを弄りなおしてみる。

位相の角度をコマンド入力したら、2ch側の位相を
1ch側に対してオフセットつけるという計算処理。

んで、しばらく考える。指定した角度を、プログラム中
で使用している内部変数(もしくはレジスタ)で扱って
いる情報フォーマットに変換する計算処理をモヤモヤと。


最初、入力した角度から角速度に、角速度から位相情報
にと換算していかないといかんのだろうとか思って、
落書き帳であれこれ式書いたり、あーじゃないこーじゃない
と考えていた。
また割り算が必要になるんじゃね?とか考え始めちゃって、
クロック数的に厳しいんだよな…とか。

だけど、よく考えたら角速度(の積分値)じゃなくて
角度そのままが位相なんジャン!とかマヌケな自分の
脳みそを改めて認識して一安心。


内部では、1波形360度を1024点で表現し、これに
小数部20ビットを付加した情報で扱っているので、
1024を360で割った値を整数部12ビット、小数部
20ビットの計32ビット(4バイト)でテーブル化
すればok。

まぁテーブル化しなくても、掛け算ライブラリ使って
「1度」に相当する位相角(定数値)に入力値を
掛ければ求まるんだけど、メモリはいっぱい余ってるし、
処理クロックも少なくて済むから、定数テーブルで
済ますことに。


とりあえずこんな感じでプログラムは直した。
アセンブルしてみたら、8KBにも至らない状態。
MEGA164でも50%使ってない。

さて、IDEのソフトウェアシミュレータで想定どおり
動くかどうか見てみよう。



コメント ( 0 )



« 前ページ 次ページ »