1 / 212

Mega2560もどき基板


またもArduino互換基板を製作。今度はMega2560もどき。

製作の経緯は、こうだ。熊大ロボコン部は、制御に使うCPU基板を何にするか悩んでいた。実力が足りないので、はやりのSTM32やLPCのボードを買ってきても、プログラムに苦労する。慣れているのはArduinoだが、ATMega328のArduino,例えばkumaduinoでは、I/Oの数が足りない。
続きを読む… »

AVRプログラム・ライタ

AVRProg on Kumaduino

ロボコン部ではArduinoをATmega328Pで自作し使用しているが、ファームウェアの書き込みは私がしている。 部員たちも自分で書き込めるようになりたいというのでAVRプログラム書込み器を紹介し作らせようと思うのだが適当なものがみつからない。

自分で使用しているのはChan氏のUSB-SPIブリッジで、大変気に入っているのだが、部員にこのまま作ってとは言いにくい。 kumaduinoの元となったmetaboardを使ったプロジェクトでAVRprogという書込み機があったのでこれを作ってみた。
続きを読む… »

AVR Camera TFT LCD Develope Board その後

メールで送られてきたソースプログラムを見ると(たぶん)中国語のコメントだらけ。まず、このコメントを削らないといじる気にならないので、エディタで全部削除。WinAVRでコンパイルすると、目立つエラーも無くすんなりとhexファイルができた。

これをAVRSPで書き込むと、LCDに初期化中を示すメッセージを表示したところで進まない。ソースと一緒にあったhexファイルだとちゃんと起動する。でも、最初に書き込まれていたプログラムとは少し動作が違うようだ。起動時の画像は表示されないし、動作も若干もっさりしている。

自分でコンパイルしたhexファイルと動作するhexファイルを比較するとサイズが違う。コンパイルした環境が違うらしい。使えそうなコンパイル環境がないか探してみたがみつからない。

仕方がないので、ソースをいじってみることにする。とりあえず、delay.cにあった、如何にも最適化で消えそうなdelay_us関数

void delay_us(unsigned int time){     while (time--);} 

を、消えないように書き換えてみた。

void delay_us(unsigned int time){     while (time--) asm volatile("nop");} 

で、これでできたhexファイルを書き込んだら、あっさり動いた。ちゃんちゃん。

使っているのが WinAVRで、F_CPU値もちゃんと定義してあるのだから、<util/delay.h>の _delay_us()を使えばいいのにとか思う。
まだまだだな。中国人

ダイセンの基板

買ったままだと 穴開け後

ダイセン電子工業からプラケースにぴったりサイズのユニバーサル基板を購入。基板はTK-55×57でケースはタカチのHA-1593K。AVRライタをきれいに収めようという算段。

回路はHIDaspxを入れてみようと思っていたのだけど、dsPICへの書き込みやSPIブリッジとしても使いたいのでまたもChanさんの汎用SPIブリッジを作ることにする。

ダイセン電子工業は,購入の仕方が分かりにくいが、注文書を送ると、送料500円と代引き手数料500円で代引きですぐに送ってくれて、案外買いやすい。

ATtiny2313

熊本大学のソーラーカー用に ATtiny2313で速度計を作成。学生は自転車用の速度計を使うつもりだったらしいが、取り付けに難があるし、表示も小さな液晶なので、モータコントローラから出力される36パルス/回転の信号をATtiny2313あたりで処理し7セグLEDに表示させた方がスマートだろうけれど、その辺のことが得意な学生がいなかったので自分で作ってしまった。

時速123Km !? 背面にはDINレール 取り付け金具 中身

小人さんたち

最近、AVRとPythonをよく使っていて楽しい。役に立つ小人さんたちという感じ。

使っているAVRは ATtiny2313とATmega644P。100円と550円(秋月電子価格) のやつだ。ATtinyを90個使うプロジェクトをやっていて、ATmega644Pも使っている。

開発環境のWinAVR(AVR用gcc+ライブラリ) も使いやすいし、プログラマのavrsp(chanさん作)も使いやすい。平行してH8のプログラムもいじっているのでmake 一発でプログラム書き込みまでできるAVRの使いやすさが際立つ。

このシステムのちょっとした実験用のプログラムをPython + pySerialで書いている。最初は Python勉強中ということで使い始めたのだがかなり使いやすい。classを使うとライブラリがしっくりくる感じ。

というわけで、PythonとAVRにかなり満足しているこのごろ。
ちなみにiPhoneとDS眼力トレーニングにも満足している。

AVRに書き込めない

ATtiny2313で温度計を作っているのだが、プログラムを書き込めない。オシロで調べると、MISOから信号が出ていない。プログラム書き込みモードになっていない感じ。

前に作ったATtiny2313の回路に試しに書いてみると、こちらは問題ない。そこでやっと気が付いた。ATtiny2313ではなく、AT90S2313を刺していた。

ATTiny2313のSOICも扱ってくれないか

最近、秋月電子の新製品に PICやR8Cの安いフラットパッケージ品がたくさん登場し、PIC使いやR8C使いの人が羨ましい。使用するCPUを転向するのは面倒なので、私としてはATTiny2313のSOICも秋月で扱って欲しいところだ。digikeyだと 10Mだけど255円で買える。

ATtiny2313の割り込み

今日は割り込みの実験。ドキュメントもちゃんとあり、すぐに使えた。

ATtiny2313のタイマー出力

ATtiny2313のタイマーを使う練習をする。タイマーの出力を端子に出して動作確認しようとするがなかなか望む波形が出てこない。タイマー出力を有効にするのにDDRxを設定しポートを出力にしなければいけないらしい。

ATtiny2313のプログラミング

夜、ATtiny2313のプログラミング。usartを使ってシリアルで通信できるようになる。初期設定のクロック1MHzで19200baudは無理そうだったのでfuse bitを書き換えてクロック8MHzに変更。avr-libcのprintfも試すが組み込むとROM容量の2Kbyteを超えてしまい動かない。でも120円のCPUなので贅沢は言わない。普通にgccでプログラムできるだけでも不思議。

あと割り込みとタイマーを覚えれば普通に使えるはず。

AVRライター

AVRライター

Strawberry LinuxからAVRライター届く。chan氏のCOMポート用AVRライタと互換品で前に手作りしたことがあるはずなのに見つからないので今回はキットを購入。980円と安価だし、プリント基板があるので簡単にできる。附属の6ピンケーブルも魅力的。

端子の配置図、スイッチの説明などをJWCADで書き両面テープで貼りつけて完成。適当なケースに入ればいいのだけれど。

AVRプログラマ

事務所に行くが休みボケ(?)で午前中は仕事にならず。午後すこしだけ仕事ができる。ATtiny26をちょっといじる。下の写真はAVRのプログラマ。chanさんのページにあるCOMポート接続のタイプ。制限はいろいろあるらしいがCで書いたプログラムをブレッドボード上のATtiny26に書き込んで動作できるのだから偉いと思う。プログラマには2.0mm×1.6mmのチップ抵抗を多用。半田付けも楽で使いやすい。チップLEDも2個使用。

AVRプログラマ(表) AVRプログラマ(裏) ATtiny26ブレッドボード上で動作

AT90S2313など購入

AVR買いました。AVRs

風邪が直った夢を見て目が醒める。風邪は直った、たぶん。秋月電子からの荷物を受け取る。WinAVRが面白そうだったのでATTINY26L, AT90S2313などを購入。たまにはPovrayでCGしたいなぁ。とか思う。何を描こう。夜、1週間ぶりにテニス。鼻水すすりつつゲーム。6-4で勝利。楽しい。


AVRASMのバグ?

天気が良い。日も長くひところより暖かくなった気がする。夜、AVRのプログラム。スイッチ周りのプログラムが快調で、一気に完成するかと思いきやはまる (涙)。どうもAVRASM Ver1.3のロケーションカウンタ周りのバグらしい。ChaNさんのサンプルプログラムにコメントがあったので存在は知っていたが引っかかっていなかったので忘れていた。ロケーションカウンタの計算が面倒。明日にでも計算用のPerlのプログラムを作ろう。

1 / 212