--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最近知りましたが、AVRはconstを変数名の前につけただけじゃROM上定数にしてくれないんですね。
H8とかは勝手にやってくれると知っていたので、AVRもそうだろうと思い込んでいました。
しかし、文化祭で使用したドットマトリクスのプログラムで定数の配列を作り
constをつけて宣言していましたが、どんどんRAMの容量が上がって行きました。
その時、やっとAVRはconstをつけてもRAM上に展開されてしまうことに気が付きました。

AVR wikiを覗いてみると、Getting Started Notesにちゃんと書いてあるんですね。
よく周辺機能の方の項目は覗いていましたが、そっちの方はちゃんと見ていませんでした。
といいますか、
「FLASH上定数ってなんだろう???」
って昔にスルーした覚えがあったりします。
今になってその意味を実感した感じです。
それだけ昔の私は無知であったという馬鹿らしい話なのですが・・・。

文化祭の方は、結局char型に1か0を入れて配列にしておくという馬鹿らしい仕様を改め、
int型に1行(16bit分)のデータをつめておいて、
ANDして1bitずつ抜き出して処理するという方法に変更したため、
SRAMが1KBなMEGA88でも十分な文字数は入れることができました。

文化祭が終わって、今度こそROM上に定数を置こうと調べてみました。
AVR WikiのFLASH上定数の項目を見てみましたが、
ちょっとわかりにくいのでもう少し調べてみることに。
実際のプログラムが載っていてわかりやすかったのはこちら。
マイコン講座/プログラムメモリ上定数 - 工研Wiki

実際のプログラムはこんな感じに。

#include ‹avr/pgmspace.h›
#define moji(number) pgm_read_word(&moji_[number])
const prog_uint16_t moji_[] = {
0x0000 //データ
};
a = moji(0);

まあこんな感じです。
defineしておけば、[ ]を( )に変えるだけで、通常の配列のように使えます。
これを利用し配列をROM上に置いたところRAMがものすごく空きました。
constを書いただけで勝手にやってくれれば便利なんですけどね・・・。
実際AVRを使っていても気づいていないことはまだまだ多くありそうです。
スポンサーサイト
AVR
2008/10/27  07:27    文化祭が終わって
やっと忙しかった文化祭が終わりました。
本日は片付けです。
更新ができなかったのは文化祭があったためですのでご了承を・・・。

文化祭では私のクラスはピンボールを出展していました。
私は主にLEDによる装飾関係を担当していました。
綺麗に光っていてよかったと思います。
パソコンとマイコンの通信がうまくいかなかったり、いろいろ問題はでましたが、
何とか乗り切れたようでよかったと思います。

HIDaspxのほうも1022aがすでに出ているようで・・・。
忙しくて更新できずまだ私のHIDaspxはver1014aですorz
更新スピードに驚かされるばかりですね。
できるだけ早く最新版のほうを試してみたいと思います。

ちなみに、今回の文化祭でちょっとデバッグで
びんずめさんのところにあるHIDaspxを使ったprintfを試してみました。
なかなか便利ですね!
ライタ一つでプログラムを書いたり、そのままパソコンに文字送信したりしてデバッグまでできてしまうと、本当に便利です。
もう少しそちらのほうも試してみたいと思います。
2008/10/19  01:11    WEBページの改装
WEBページが即席でしたので、やっとで改装しました。
本当は9月の下旬からやっていたんですが・・・。
ロボコンやら、いろいろでいつの間にかこんな時期に。

今度はちゃんとCSS使ってきれいにまとめてあります。たぶん・・・。
確認ブラウザはOpera9.6・Firefox3.0.2・IE6です。
HTMLもチェックサイトにて確認してあるのでたぶん大丈夫・・・かな?

だんだん、BLOGに書きなぐった内容もまとめていき、
WEBサイトの方へ移していけたらなと思います。

これからは、BLOGがTOPじゃなく、
WEBサイトがまずあって、その中にBLOGがあるような感じになればいいなと思います。
思うだけで終わりそうだけど・・・。

それと、改装にあわせてTopページとバナー以外がすべてディレクトリを使った階層構造に変更したので、
今までAVR_ICONSのページなどに直リンクしていたリンクは全部切れることになります。
そちらの方をご了承ください。
いないと思いますが、ブックマークする方はWEBサイトのTopページでお願いします。
リンクが切れちゃ困りますからね。


あぁ・・・最近忙しい・・・。
ドライブ行きたいなぁ・・・。でも一人じゃつまらない。
誰か一緒に行きませんか? > この記事読んだ友人よ
最近も、部活の友人をドライブに誘ったら、
「疲れたから寝る~」って言われて断られてしまった。orz
私が今一番望むのは、精神的なリフレッシュなのかもしれませんね。


~追記~

早速自分で、FirefoxにてPWMのページのテーブルが崩れてることを発見。
そのうち修正します・・・。
λ...
WEB
前に後日書くと言っていた、詳細な誤動作の調査を行いました。

行ったのは、
・パスコンを抜いて、元の状態に戻す。
・不都合の再現を行う。
・USBのコネクタの根元から、VCCピンまでの電圧降下を調べる。
・PD5でのプルアップを行い、症状の発生の有無を調べる。
です。

先に記述しておきますが、今回は測定を行うにあたり、
測定に便利なのでPCのUSBコネクタからUSB-HUBを接続し、接続を行いました。
USB-HUBを接続したから誤動作が起きているのでは?と思う方もいるかもしれませんが、
PCのUSBコネクタに接続したときも、発生します。
HUBは関係ないことをご理解の上、下記の文書をお読みください。

まず、パスコンを抜いて再現を行い、電圧の降下を調べてみました。
HIDaspx_VCC_電圧降下
USBのコネクタの根元から、VCCピンまで0.5mV電圧降下したようです。
0.5mVの電圧降下程度なら許容の範囲内ですね。
ちなみに、写真では一本単線がでていますが、パスコンにつながっていた線です。
ご心配なく。

USBコネクタの根元からとったGNDとVCCの電位差を調べてみました。
HIDaspx_VCCピン_電圧
電位差は5.012Vでした。
5.012Vなので大丈夫ですね。
心配でしたので、オシロスコープで、VCCピンを見てみました。
HIDaspx_VCC_オシロ
2分程度接続状態にし、ノイズを確認しましたが、ノイズは見られませんでした。
電源の関係は大丈夫そうですね・・・。

次にパスコンを抜いたまま、PD5でD-のプルアップの回路に変えてみました。
結果は、GOODです。改善が見られました。
接続も大丈夫なようです。


とりあえず、結果をまとめてみますと・・・
・電圧降下の可能性は、薄いと思われる。
・ノイズも関係なさそう?
・D-のプルアップをPD5にすることによって改善。
という感じです。

そうなると、通信関係でしょうか?
USBの通信の開始時にうまく開始できなかった?

パスコンなしでD-のプルアップをPD5にしたら大丈夫。
しかし、D-のプルアップをVCCのときもパスコンを入れたら大丈夫。
関係はいったい何なんでしょうか?

とりあえず、言えることはPD5のプルアップのシステムに変わってから、
このような現象の発生は見られなくなった、ということです。
PD5のプルアップを考案したkugaさんに感謝ですね。
多少不鮮明なことはありますが、少しずつ疑問は解消できた気がします。

また時間があれば、もう少し詳しくできればと思います。
ほかに要検証なことがあればコメントに書き残していただければと思います。


~追記~(08/10/16 20:42)

これは可能性であり、私の考えですが、
ライタの電源投入時、マイコンが起動し始め、
一気に電流が流れ、電圧降下が瞬間的に発生したとも考えられます。
よって、正常に起動できず、USBの通信に影響が発生した?
これだと、パスコンを近くにつけることで電圧降下の問題は改善が考えられますし、
PD5のプルアップもマイコンがしっかりと正常に起動してから
USB通信の開始となりますので正常に動作するというわけです。

これが今考えられる正常に動作した条件を2つともクリアする原因かもしれません。
単なる私の考えなので、事実は異なるかもしれません・・・。


~追記2~(08/10/16 21:44)

senshuさんのページにて、このようなコメントをいただきました。

>PD5のプルアップは、RESET(BODを含む)時にUSB通信を再接続する工夫です。

>つまり、電源が不安定な時に機能する仕掛けです。PD5で効果がある、というのは
瞬間的に電圧が低下することがあるのだと思います。

>多少大きめ(10uF以上)の電解コンデンサを実装した回路にISPコネクタを繋いでも
似た現象が起きる可能性があります。

>これらを状況を総合して考えると、原因は明らかだと思いますよ。

PD5への接続にはUSBの再接続を行う事も可能にしていたのですね。
これで原因はほぼ追記のほうで記述した内容の可能性が高くなりました。
断定はできませんが、PD5でのプルアップにて
ほぼ今回の誤作動が解決されていたと言ってもいいと思います。
これで一安心ができそうです。
2008/10/13  22:12    一日遅れで大会結果報告
とうとう大会が終わりました。
長いようで短かった半月でしたね。

結果から言いますと、私のチームが初戦敗退。
もう一つのうちの学校のチームがベスト4でした。
初戦敗退といいましても、しっかりと完走し、
あと8,9秒位速ければという結構接戦でした。
まぁ相手も速かったのでくじでの当たりが悪かったのかもしれません。

結局全国大会に出場はならず悔しいですが、
私の製作した回路は何一つ問題なく動作したのでそっちの方では満足です。
これで少々荷が下りました。

大会の技術的な感想ですが、
機構は思いつかなかったような機構が多々見れてよかったです。
まぁ機構班じゃないので設計などはしませんが・・・。
回路に関しては、まぁ例年に比べるとだんだん技術も上がってきているようです。
プロポのコントローラーをそのまま利用するナンセンスな学校も減ってきているように思いました。
昔のリレー多様に比べると、FETを使用したHブリッジが増えてきているようです。
ここからちょっとした私の個人的な意見が多く含まれます。いやな方はスルーしてください。
他の学校の回路を見ていると、たまに汚い?ぐちゃぐちゃ?ような回路が目についたりします。
たぶん、外装を被せて隠したり、動けばいいから回路はぐちゃぐちゃしていてもよい
という意識なのかもしれません。
ぐちゃぐちゃな回路って・・・なんといいますか、いやですよね・・・。
私は回路に美?綺麗さ?まで求める傾向が強い(自称ですが)ようなので、どうしても気になってしまいました。
綺麗な回路にこだわるのはうちの部の尊敬する先輩方の影響かもしれません。

でも綺麗な回路はやっぱりいいですよね!


これからの予定ですが、
・文化祭が近づいてきたので、文化祭の準備
・秋月液晶を動かす
・HIDaspxの動作試験協力
・ロボコンで友人がやってくれたWiiクラシックコントローラとAVRの接続のやり方の習得
・ロボカップの出場願いが友人から来たので新型ロボカップロボットの製作
・irukaさんが開発した、ATtiny2313を利用したUSB-COMの動作試験協力
・WEBページの改装終了
溜まりに溜まったレポート

といった感じです。
なんというスタック量Σ(゚Д゚;
やること満載ですね。
とりあえず、緊急性が高いWEBページの改装を速めに終わらせながら、
HIDaspxの動作試験を並行して行って行きたいと思います。


ちなみに、今回の大会の放送予定ですが、
2008年11月16日(日)午後1時5分~午後1時59分 NHK総合テレビ
でやるそうです。
関東甲信越の方は今回私も参加した関東甲信越大会が見れると思います。
そのほかの方は、その地域で行われた地区大会が見れると思います。
先に言っておきますが、私はテレビに映る3人にはもちろん含まれていませんので、
たぶん映りません。というか映っててほしくないです。
2008/10/12  00:21    大会前日
タイトルが大会前日ですが、更新が大会当日なのは気にしない方向で・・・。

本日は、大会の準備日です。
明日の午後から実際にロボコンの大会がはじまります。
今日を振り返って思うのは、多忙な一日だと思いました。

回路班のプログラムはほぼ完成していましたので、ずっと機構班のお手伝いでした。

真っ先にサイズ計測にロボットを持って行ったところ、見事にミスが発覚!
実は飛び出してはいけない場所にまでロボットの一部が飛び出していたのが原因です。
時間という壁に追いかけられ、問題に突き当たった時、
挟まれた人間は通常は出しえないようなアイディアが思いつき、回避できたりします。
今回もそんな感じでとっさにみんなで話し合い、解決策を見出し問題を解決しました。
このスリルがロボコンのある意味醍醐味な気もしなくもないです。
(問題であるのに醍醐味ってのも変だけれど・・・)

明日は本番。
精一杯がんばりたいと思います。
立ちくらみには負けないぞ!

PS
本日の一枚
破断
アルミの角材が見事に破断。
2008/10/10  10:48    ロボット発送前日の徹夜
ずっとHIDaspxの記事ばかりでしたので今回は至って平凡な内容。

ロボコンの大会が土日と迫り、本日がロボットの発送日となりました。
なので最後の調整で昨日は学校に留まることに・・・。
いつもは22時までしか活動は許可されていませんが、昨日は特例で夜遅くまで活動できるのです。

結果的に帰宅は5時になりました。
だんだん空も明るくなり始めていて、この朝帰りが大会間近の実感を与えてくれます。
とにかく眠いですが、本日も平日で学校があるため、授業に望むこの頃です。

まったく話は変わりますが、
窓から見える青空を見ていると、どこかにドライブに行ってみたくなりますね。
だんだん紅葉がみれる季節になってきたので、前に行った滝をまた見に行きたいなと思います。

授業中の眠気覚ましの記事でした。
2008/10/09  21:46    [HIDaspx]デバイス動作報告
HIDaspxの未報告デバイスの報告です。
情報だけありました、MEGA8とtiny45についても動作を確認してみました。

tiny45_1tiny45_2
まずはtiny45です。-rコマンド、-rpコマンド、書き込みを行ってみました。
どれも正常に動作しています。

mega8
次にMEGA8です。-rコマンド、-rpコマンドを行ってみました。
こちらも正常に動作しているようです。

だんだんと動作報告で動作が確認されているデバイスが増えてきているので
信頼性は高くなってきているようですね。

ただmega・tinyシリーズよりも前の旧型のデバイスでの動作不良の報告もあるそうです。
まぁ、最近はほとんどmegaとtinyに移行しているようなので心配はいりませんが、
どうしても旧型AVRを使いたい人は、改善?を待つしかないのかもしれませんね。

追記 : この問題が発覚後すぐに修正が行われ、旧型のAVRにも書き込めるようになったようです!

megaとtinyデバイスへの読み書きはほぼ大丈夫そうなので、十分使い物になると思います。
自分の持っているデバイスが動作確認されているか気になる方は、senshuさんのページにてご確認ください。
また、動作確認されていないデバイスをお持ちの方はぜひ動作確認の方へもご協力お願いします。
AVR
2008/10/09  18:43    HIDaspxのご認識についての考察
今回のご認識ですが、結論から言いますとパスコンの位置によるものです。
パスコンはできるだけICの近くにつけるべきものなのですが、
今回は私のミスにより少々遠くなってしまったのが不安定の原因となったようです。
変更前
上の画像の赤丸の位置に、0.1uFのセラミックコンデンサ・10uFのタンタルコンデンサが付いています。
太めの配線で配線していたので、この位置で大丈夫だと思ったのですが、
やはり不安定だったようです。
変更後
なので、2枚目の画像の赤丸の位置にパスコンを追加しました。
すぐ近くにマイコンのVCCがあるので、これで安心です。

senshuさんが指摘したように、
高速動作でノイズがVCCに乗ったのが予想よりも大きく影響を及ぼしたようです。
詳しくは調べて見ないとわかりませんが・・・。

とにかく言える事は、HIDaspxは予想よりも電源の不安定さに敏感なのかもしれません。
しかし、しっかりとパスコンを適切な位置につければ大丈夫なので、心配無用です。
私は5V動作なので、レギュレータをつけてはいませんが、
3.3Vレギュレータをつけて動作させている方はしっかりとコンデンサをつけないと、
私と同じ症状に悩まされる可能性があります。
電源の安定化はしっかりと行うべきだと思います。

私が経験した不安定によるご認識の問題の考察は以上です。
本日irukaさんのWEBページにてhidaspx-1009が公開されました。
HIDaspxをお持ちの方はぜひ書き換えて見てください。
多くの問題が解決されているようです。
これからもHIDaspxに期待ですね(´・ω・)+
AVR
2008/10/09  00:08    HIDaspxの製作No2 - 誤動作解決
前回の記事での誤認識ですが、
senshuさんのアドバイスにて解決いたしました。
原因はパスコンの位置によるものでした。
VCCのピンより少しばかり離れすぎてしまっていたようです。
VCCピンのできるだけ近くに配置することにより改善することができました。

アドバイスをいただいた皆さんに感謝すると共に、
HIDaspxの進展に期待したいと思います。


おまけ。
ATtiny45の動作報告はあるようでしたが、
一応、同じシリーズのメモリの容量違いのATtiny85でも確認してみました。
ATtiny85
上記の画像ではrコマンドだけしか行っていませんが、
そのほかに、プログラムの読み出しや、書き込みなどでも大丈夫なようです。
一応、蛇足でしたがATtiny85の動作報告でした。
AVR
2008/10/08  16:11    HIDaspxの製作
先日宣言していたHIDaspxを製作してみました。
今回は簡単な私的な感想も踏まえながら考察して見たいと思います。

製作風景の写真も今回は撮影してみましたのでまずはそちらの方をどうぞ。

HIDaspx1
今回製作に使用する部品です。
本当は最初から撮ればよかったのですが、撮り忘れたので表面につく部品が付いた状態から撮影してあります。

HIDaspx2
上の基板を裏から撮った写真です。

HIDaspx3
チップ部品を半田付けした状態です。まだこの時点ではきれいですね・・・。

HIDaspx4
ツェナーダイオードを半田付けした状態です。
本当は表面実装のダイオードがいいのですが、買ってなかったので、
今回は普通のツェナーダイオードを裏面につけました。

HIDaspx5
USB関係の配線をまず行ったところです。この辺から気持ち悪くなってきましたね・・・。

HIDaspx6
すべての配線をし終わったところです。とても気持ち悪いですね・・・。

とりあえずこんな感じで私は製作しています。
出来上がった写真がこちら。
HIDaspx7
左から、HIDasp(新型)、HIDaspx1つ目、HIDaspx2つ目、HIDasp(旧型)です。

HIDapsxを使ってみての感想ですが、結論から言いますと、とてもいいと思います。
上記でなぜ2つHIDaspxがあるかというのは後で述べるとします。
最初、比較のためにHIDaspの新型と、もう一つHIDaspxを製作することにしました。
製作してみて、つかって見て思ったのは、高速化がなされているため、とても早く感じました。

何回か使用していると、問題?も見えてきました。

以下の内容は解決済みです。詳しくは「HIDaspxの製作No2 - 誤動作解決」の記事をごらんください。

USBポートに挿したとき、不明なデバイスまたは、USBデバイスが正常に動作していませんと表示されることがたまに発生しました。
何回か抜き差しをすると、直ることがあります。
このような問題が発生したため、自分の回路の配線の接触不良によるものの可能性も踏まえ、
もう一つHIDapsxを製作してみました。

実際に2つ目も製作し動作を確認しましたが、やはり時々うまくPCで認識しないということがあるようです。
2つ同じものを製作し、部活内の友人たちのPCに挿して確認を何回も行ったため、
まったくもって言い切ることはできませんが、PCによる認識不良はプログラムによる問題かも知れません。

蛇足ですが、瓶詰さんの新型HIDaspは動作不良は何回も試しましたがありませんでした。

とりあえず、今のところはこの動作不良以外に不満や動作不良はまったく見られません。
速度も十分だと思いますので、これからの改良による更なる性能向上を期待したいと思います。


ついでに千秋ゼミさんのページにて、HIDaspxの動作デバイスの動作確認済みリストが掲載されていましたが、
まだ動作確認を行われていなかった、ATMEGA8515にて動作確認を行ってみました。
MEGA8515
ちゃんと動作をしているようです。
実際はこのほかにヒューズビットの読み出し、書き換え、プログラムの書き込みなどを行って見ましたが、大丈夫なようです。

HIDaspxは今もとても早い更新頻度でプログラムの改良が行われています。
私はみなさんのようにそこまで深いプログラムの知識がないため、改良に参加することはできないかもしれませんが、動作確認など誰でもできそうなことで、協力できるところに関しては協力して行きたいと思います。
これからライターを製作しようと思っている方はぜひ製作してみてください。

~追記~
動作不良のスクリーンショットを掲載しました。 → 解決済み
HIDaspx_not_workingHIDaspx_not_working2
デバイスマネージャーで確認しても不明なデバイスとして認識されていることがわかります。

正常動作
正常動作時。

~追記2~
急ぎで書いた文章だったので、不適切だと思う自らの表現を修正しました。
日本語ってほんと難しい・・・。

~追記3~
誤認識の解決により記事の問題の文章を打ち消し文章に変換しました。
文章の削除の考えましたが、このような問題に直面し、失敗の事実の隠蔽のような修正はいやなので、打消し文での修正としました。
解決の方法などについては「HIDaspxの製作No2 - 誤動作解決」の記事をごらんください。


参考ページなど。
HIDasp - 瓶詰堂さん
HIDaspx - 千秋ゼミ senshuさん
HIDasp高速化 - irukaさん
プログラムライタ と ライティングソフト - kumanさん
AVR
2008/10/04  23:42    通販サイト一覧更新
AVRマイコンが購入できる通販サイト一覧を更新しました。
一覧に新しく、Arduinoが購入できるスイッチサイエンスを追加しました。
最近の検索ワードを見てみると、Arduinoでこのサイトへいらっしゃる方も前に比べると多くなったように思います。
なので、今回はこちらのお店も追加することにしました。
またArduino関係のお店がありましたらそちらも掲載していけたらと考えています。
これからもっとArduinoの需要は増えて行くと思うので、このようにArduinoを販売してくれるお店がもっと増えるといいですね。
最近出たArduino nanoあたりはほしいですね。
あの大きさにすべてが入っていると考えるととても洗練されています。
ブレッドボードでも使用可能なようなので、ちょっとしたセンサの確認などにも使用できそうです。
Arduinoのこれからに期待ですね。(´・ω・)+
AVR
2008/10/01  23:48    HIDasp製作No3
最近になってとっても知名度も上がり、盛んになってきたHIDaspですが、
びんずめ堂さんの方で回路+プログラムが改良されて公開されました。
また、そこから派生したHIDaspxというHIDaspを素としたライタも別の方々が製作しておられます。
なので今回は改良されたHIDaspの方を製作してみました。
HIDasp0.2.1
上が昔製作したHIDaspの2号機で、下が今回製作したHIDaspの3号機です。
外見はほとんど変化はないですが、ちゃんと最新の回路・プログラムにしてあります。
前回はATtiny2313のICソケットの中の空き空間に非チップの抵抗とダイオードを内臓していましたが、
今回は抵抗はすべてチップ抵抗に、ダイオードは基板の半田面に実装を行ったため、
ICソケットをなくすことができました。
また、ピンヘッダは1*6に変更し、スイッチも電源はもちろんのこと、前回はジャンパにてマイコンへのUSBの5V供給の有無を変更していましたが、今回はそちらもスイッチで行えるように変更しました。
おかげで高さも低くなり、大きさも少しだけ小型化に成功しました。DIPのAVRならこの大きさが限界な気がします。

明日は忙しいので製作できないかもしれませんが、HIDaspxの方も作ってみたいと考えています。
AVR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。