アーカイブ

‘電子工作’ カテゴリーのアーカイブ

XMEGA-A4(6)

2010 年 4 月 18 日 コメントはありません

やっと本題。

内蔵発振器32MHzで動いてる状態で
ボーレートの設定値を計算すると
10進数で51。

とりあえず、送信レジスタに値を突っ込むだけのコードで実験。
一応、書いていいときはステータスを見て確認。
[code lang=”cpp”]
while(1)
{
if( USARTE0.STATUS & 0x20 )
USARTE0.DATA = 0x41;
};
[/code]
普通、こんなもんでも動くよね。
でも、化ける(爆
どうにも化ける。

イロイロやって、USARTのサンプルプログラム(AVR1307.zip)を参考にして
クロック設定からやり直し。

サンプルどおり内蔵2MHzで9600bpsを設定すると・・・
化けない。

うーん。

32MHzに戻して、もう一度考える。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

まさかね。

[code lang=”cpp”]
while(1)
{
while( !(USARTE0.STATUS & 0x20) );
USARTE0.DATA = 0x41;
};
[/code]
まあ、確かに・・・
こっちの書き方なら、その場でフラグ待ちしてその直後で書いてるから
次にフラグ見るときは、間違いなく動いてるのかも。

フラグの立つタイミングと送信レジスタの中身がなくなるタイミングが
重なって、まだ最後の数ビット残ってるところに書き込んでた・・・・のか?

この2つのコードにそれほど違いがあるようには思えない。
もしくは、最適化で何か起きてるのかも。
まあいいや。

そんな感じで。
解決。

とりあえず、ここまで出来たらあとは
LCD側の配線をしてしまわねば。

カテゴリー: Project, 電子工作 タグ:

XMEGA-A4(5)

2010 年 4 月 18 日 コメントはありません

USARTを動かすには、まずクロック周りをきちんと抑えないと
設定値の割り出しすら出来ない。

最近のCPUを使うにあたり、かならずといっていいほど躓くのが
クロック周りの設定。

各I/Oモジュールに供給できるクロック源が複数ある上に
そのモジュールと源振の間にPLLだのDLLだのプリスケーラーだのと
イロイロ通ってくるので、その辺の設定をよく読み解かないと
一体何Hzが選択されてるのかもわからない、というのが良くある。
しかも、分かりにくい。

気の利いたメーカーなら、その辺の設定値を算出するようなエクセルファイルがあったり
サンプルコードを用意してる。

XMEGAに至っては通常のI/Oポートではなく、
「どこかのビットをセットして何クロック以内に書き込め」とか
そんな制約が付いてる。
この場合、C言語で書いたんじゃ多分ダメだろう。

で、今回は。
ここまでに充分に時間があったにもかかわらず
実はドキュメントの詳細は殆ど読んでないという現実を鑑みて(爆
とりあえず、ATMELのサイトから
解説pdfとサンプルプログラム(AVR1003.zip)を取得。

コードを読む限り、問題はなさそうだったので
そのままリンクして、サンプルと同じように呼び出し。

とりあえず、クロック周りは解決。
内蔵32MHzで動いてるようだ。

でわ。
やっと本題。

・・・・つづく(ぉぃっ

カテゴリー: Project, 電子工作 タグ:

XMEGA-A4(4)

2010 年 4 月 17 日 コメントはありません

ライターに認識してもらえることが分かったが
肝心の書き込むモノがない(獏

つーことで。
とりあえず、LEDの点滅点灯プログラム。
その前に、LEDを物理的に追加。

AVRStudioを立ち上げて、プロジェクトを作成。
この時点でGCCを選べるのはありがたい話。

つーか、もう7年ぐらいメジャーアップデートされてないけど
どうなってんだろうね。
昔はGCCのサポートなんて、おまけか裏技か、ってぐらいで
しまいにゃVer3.8じゃないと・・・なんて話まであったぐらい。
それがまあ、いつのまにか正式サポートのようで。

ついで、デバイスごとのヘッダファイルをインクルード・・・すると
怒られる。
io.hの中でコンパイルオプションにしたがって自動的に個別の定義を読み込むような
しかけになってる。
・・・・まあ、この辺はWinAVRの仕様か。

で、めでたく書き込み完了。
ちょっと、AVRDragonの認識とターゲットの電源投入のタイミングが問題に。
AVRDragonに接続してからターゲットの電源を入れないとダメみたい。

ポートの動作は、大丈夫そう。

じゃあ次は・・・
USARTかな。
最低限、デバイス→PC方向だけでも確認しないと。

・・・・・・・・つづく(ゐ

カテゴリー: Project, 電子工作 タグ:

XMEGA-A4(3)

2010 年 4 月 13 日 コメントはありません

オシロスコープがあってよかったね。

とりあえず、波形を確認。
ちょっと、なんか波打ってるけど、電源なんてそんなもん~~

・・・・・・なんて思って、見逃してたら。

結局、その波が原因だった○| ̄|_

1msでみて、結構ノコギリ?な感じだったので
「とりあえず、これを何とかしてみよう」と、電解コンデンサをちょっと追加したら・・・

・・・・・動いてますがな○| ̄|_

そりゃ、まあ、これがCLK線とかに乗ってきたら・・・・たしかに安定しないかも。
たぶん、プログラミングのモードに入れてないんだな・・・。

波形的にも、だいぶゆるくなったみたいだし。

これで、ハード的なところは、ひとまず解決かな。

カテゴリー: Project, 電子工作 タグ:

XMEGA-A4(2)

2010 年 4 月 13 日 コメントはありません

PDIなライターが手元にないことに気づいた。

・・・・・

とりあえず、どこかからかAVRISPmkIIを借りる段取りをつけたのだが。

よくよく調べると、AVRStudioの最新版にすれば、
AVRDragonがPDI対応できるようだ。

ついでだから、ヘッダーを取っ払って20ピンのBOXにしちまえ~

あーこれでPDIもISPもJTAGも、全部使えるようになるべ。

それはさておき。
一向に通信できない(縛
ファームウェアアップデートしないと、使えないのは分かりきってるのに。
USBデバイスとしては見えるのに、ツールからは接続できない。

うーんと悩んだ挙句、古いAVRStudioをアンインストールせずに最新版を入れたから?と
古いのをアンインストール、新版をインストール。
すると、USBドライバがどこからかインストールされたようす。

とりあえず、ファームをあげてみる。

・・・・・・・・・・・・・・・・・上がったがな○| ̄|_

じゃあ、基板と接続じゃ~

と、やったら。
またここで、何故かつまづく。

・・・・・・・つづく。

カテゴリー: Project, 電子工作 タグ:

XMEGA-A4(1)

2010 年 4 月 13 日 コメントはありません

場外乱闘すらそっちのけ(謎

外堀が埋まりまくってしまったので
そろそろまじめに回路図引かなきゃならんかの。

とりあえず、なんだろ。
CPUとして使ってみるってところからかな。

つーわけで。
この週末で回路図引いて部品集めて、配線したのですよ。
まあ、たかだか40数本なので。

構成は
MAXIMの昇圧DC/DCなICとSPIなシリアルFlashROM、あとは
中途半端にMIO-26という・・・ウチでいうところの「旧来の規格」。
その先には・・・aitendoなタッチスクリーンが付いた液晶YHY024006A。
これに先日買ったADS7843を繋ぐ。

なぜに電源が昇圧回路かといえば、電池駆動の予定があるので
その事前確認かな。

とりあえず、テスターチェックまで終わったのですが・・・

・・・・・・・つづく(ぉぃ

カテゴリー: Project, 電子工作 タグ:

やっと来た(4月3日付)

MOUSERから、やっと来ました。

リードタイム20週で発注したATxmega64A4 を
一度キャンセル。

改めてATmega32A4で発注しなおし。

つーか、1ヶ月まって「納期未定」に変わったので(あほ
思い切ってキャンセル。
というか、月末に請求が来てたら無理だろうと思ってたがその様子がなかったので。
「キャンセルしろ」と送ったら「キャンセルした」と返ってきたので

再発注。
つーか、ROM容量の小さいのなら在庫あるみたいだから、そっちにした。
あとは、タッチパネル用のA/Dコンバータと
バッテリ駆動用にDC/DCのICを。

とりあえず。
外堀は埋まりまくり~だな・・・

カテゴリー: 電子工作 タグ:

あまり突っ込みたくは無いのだが

これは現実であり、きっかけなのかもしれない。

AVRの資料で、とても有益な情報を提供してくれていた
とあるサイトが・・・

・・・・・

・・・・・なわけですよ。
あんぐり。

今現在、だれもまだネタにはしてないようだけど。

いまさら著作権利法とか万国著作権条約とか
そんなことは言いたくないんですけどね。

私は別に専門家でもないし、読んだ通りの知識しか持ってませんが
ちょっと調べてみた。

Web上で公開してる、たとえばマイコンのデータシート。
著作権者は当然、メーカーであるし、当然、著作権は保持してる。
じゃあ、その翻訳をした場合、その著作物はどう扱うのか。

法でいう、「同一性」はあるのか。
法でいう「創造性」はあるのか。
二次的著作物として認められるのか。

↓二次的著作物の定義
>十一 二次的著作物 著作物を翻訳し、編曲し、若しくは変形し、
>又は脚色し、映画化し、その他翻案することにより創作した著作物をいう。

二次的著作物なら、
原著作者はある程度の権利を有する(第二十八条)とあるが
その二次的著作物を原著作者に許可無く公開することは可能か。

著作権法第38条の条項は適用されるのか。

許可無く公開し、金銭を要求し、取得することは可能か。
その場合、原著作権者の権利として、
その金銭を二次的著作物の著作権者に要求することはできるか。

・・・・まあ、翻訳して有料で配布、までは
一般人はやらないでしょうけど。

サイトで何気なくpdfへのリンクをクリックし
pdfを開いて
それを保存してオフラインで見る
そんなこと、誰だって当たり前にやってるし
オンラインで開いたとしても、
どこにも保存せずに(=ダウンロードを伴わずに)閲覧できてるかなんて
誰にも証明できないとおもうのですがね。。。
プログラムはローカルで動いてるし、メモリはローカルしか見えないんだし。

少なくとも、自作のブラウザで全部メモリ上にしか置かないよ、としても
今の時代、OSがスワップファイルなりを作るのだから
それは保存なんじゃないの?

有志が善意で翻訳し無償公開してるのであれば
メーカーは何も言わないでしょう。
メーカーだって、その資料の公開で利益を得てるわけではないのだから。
むしろ、ローカライズのコストが浮くわけで、歓迎されるでしょう。

しかし、それを有料にして金取ります、と言った瞬間
メーカーだって黙ってないと思うけどな。

自分のホームページを勝手に書籍化されたようなもんじゃん。

検索すれば、いろんなところに、そのページへのリンクがある。
大勢の人が感謝しながら使ってたはずなのに。
私だって、その存在を知らなければ、AVRを使うことすら出来なかっただろうし。

そのページの存在と
pdfの作成者には、本当に感謝している。
どんな事情にしろ
今回の方針変更は
残念で仕方が無い。

カテゴリー: JUNK, 電子工作 タグ:

EOS40D タイマーリモコン(5)

2010 年 3 月 28 日 コメントはありません

とりあえず、フォント。

8×8ドットにしたら、結構小さいな~

ここに至るまでに

プログラム本体を消失しかけた。
makeファイルの記述がまずいらしく、たまに.CPPファイルが消されるw

フォントとそのポインタをフラッシュメモリに置く指定をしたが
何故かポインタの配列だけ、PROGMEMで指定するとエラーになる。
仕方ないので、とりあえずconstだけにして回避。

とりあえず、フォントは出たけど。
文字が小さいのとひらがなが入ってない感じがするので
他のフォントをとりあえず探してこないとダメかな。

表示自体はまあ、
倍サイズに変換することは出来るので・・・Rom512byteと引き換えに。

・・・・・作ってみたw

1時間ちょっと。
こんなことすら「いつか来た道」。
昔は、自分でテーブル作ったけど
今は、プログラムで生成する方法をちゃんとみつけた。

・・・・・成長してるぢゃん、をれw

それにしても
AVRはFlashROMにデータを置くと
ソレをいちいち指定しないと、まともに実行されない。

アセンブリの時も苦労したけど
C言語を使ってても、それ以上に苦労する。

いわゆる、メモリ環境に余裕があって、
すべてをRAMに展開して実行するような環境に由来する
開発環境、高級言語の思想は
メモリの少ないマイコンには不相応な部分がある。

定数も変数も、全部RAMに置きたがる。

そんなことしたら、スタックすら取れないって。

今回も、RAMに展開したらメモリオーバーで暴走してた。
仕方が無いのでFONTの変換と一緒に2倍化のテーブルを吐かせて
ROMに置いている。

この問題は、AVRのアーキテクチャに由来するのも分かる。
コードとデータが別の空間にあるんだから、それを指定しないと
正しくアクセスできない。

だからこそ、マイコンのプログラムは
細部までコントロールできる、アセンブリ言語が使われる。
とはいえ、それがまず機種依存なので、開発現場では嫌われる。
というか、組める人間がどんどん減ってて、汎用の高級言語に移行しつつある。

・・・・・・現実的には
言語なんて問わないんだけどね。
考え方、作り方、構造、その辺をきちっとしてれば
何で作っても作れるわけで。
マイコンなんて、周りの回路の都合で組み方は変わってくるし。

そんな感じで。

つづく・・

カテゴリー: Project, 電子工作 タグ:

EOS40D タイマーリモコン(4)

2010 年 3 月 23 日 コメントはありません

ハードウェアが完成して
ぐだぐだなソフトウェア編へ突入ですが。

ありていにいうと
タイマー割り込みで30秒置きにシャッター切るのは
出来上がってます。

あとは、これを可変にして、入力で変えられるようにするだけ・・・
・・・・ですが。

その前にLCDを動かなさいといけないわけで。

なんか、4月入るまで、あまり時間が取れない・・・・予定。

とりあえず、またもやフォントなのよ。
このLCD用にフォント変換してやんないと
使えん。

はぁ・・・

それにしても、みんなどうやって写真撮ってるんだろw

カテゴリー: Project, 電子工作 タグ: