新たにATmega128を購入
新しいATmega128が届きました。
前回の購入同様にロボットファクトリーにて購入しました。
BTC068って言うのが正確な商品名です。
で、早速、以前から困っていたAVRDUDEでの書き込みをテストしたいところなのですが、付属していたBTC068のマニュアルをみて気が付いたことが。
以前購入したものに付属していたマニュアルから改定されていました。
以前のは第1版、今回のは第3版です。
第2版の修正内容は「PCBリビジョンアップに伴う回路図変更・メモリマップ修正」
第3版の修正内容は「GCC Developer Liteのバージョンアップに伴う更新 サンプルプログラムのボーレートを115.2Kbpsに変更」
回路図変更という言葉が気になって、回路図を見比べましたが、違いが良くわかりませんでした・・・。
メモリマップ修正という言葉の意味も良くわかりませんが、ブートプログラムエリアのアドレスが変更されています。仕様が変わったのか誤植を直しただけなのか分かりませんが、きになります・・・。
結局、何も分かりません。(笑)
で、二つのBTC068を見比べてみました。

左が古いほう、右が新しいほう。
いろいろ違っていますね〜。
JPの半だの盛り方が気になりましたが、どちらのボードもジャンパされて(導通)いるようです。
外部RAM用のJP2もジャンパされています。マニュアルにはジャンパしていないって書いてあるんだけど・・・。
で、本題のAVRDUDEの書き込みをやってみました。

オッケーです!!
でも、DeviceSignatureがやっぱり0でした。ふ〜ん、そういうもんなんだって感じ・・・。
原因はBTC068が壊れていたということになります。
なんで壊れたんだろう。その原因はわからず。
また、何らかのタイミングで壊れる可能性があるわけで、だいぶ心配です。が、なんとも手が打てない(時期をみて、ボードを作り直すぐらいしか・・・)ので様子見とします。
いろいろ助言くださいました、キラさん、SISOさん、まつしろさん、ありがとうございました。また情報がありましたら、ここで報告します。
話は変わりまして、今回のBTC068の購入と一緒にDSR581のフリーホーンを6個購入しました。
6個じゃ、ぜんぜん足りませんが、様子見用というか評価用というか、貧乏性というか・・・。
なかなか良い感じですが、取り付けはかなりきつきつです。で、今度は取り外そうとしたのですが、かたいかたい。おりゃおりゃとやっていたら

サーボケースの裏蓋が壊れてしまいました。
フリーホーンを一度取り付けたら、外さないほうが無難ですね。
そういえば、以前SISOさんがDSR581の裏蓋は強度が足りないって言ってました。その通りでした。
ちなみに、コイズミさんに教えていただいたファイナルメタルギアですが、残念ならが在庫がなくなってしまったようです。試作品だったからな〜。また売り出すことを願います。
さらに話は変わりまして(今日は気分が良いので日記をいっぱい書いちゃいます)
こないだ、100円ショップに行ったら水平等を図る水平機が売っていたので購入しました。100円ですが、しっかりと縦横斜めの3通りに気泡が浮かんでいるやつで、以前からほしいなあと思いながらもホームセンターでは千円以上したので買わずにいました。(今までは子供のボールを机の上で転がして水平を確認していました。)
以前のように何回もボールを転がさなくて、一発で水平が確認できる様になりました。すばらしい100円です。
さっそく、モーション作成に使用している机の水平度を確認したところ、水平でした。
なんとなく、水平じゃないほうがうれしかったのにな・・・。
前回の購入同様にロボットファクトリーにて購入しました。
BTC068って言うのが正確な商品名です。
で、早速、以前から困っていたAVRDUDEでの書き込みをテストしたいところなのですが、付属していたBTC068のマニュアルをみて気が付いたことが。
以前購入したものに付属していたマニュアルから改定されていました。
以前のは第1版、今回のは第3版です。
第2版の修正内容は「PCBリビジョンアップに伴う回路図変更・メモリマップ修正」
第3版の修正内容は「GCC Developer Liteのバージョンアップに伴う更新 サンプルプログラムのボーレートを115.2Kbpsに変更」
回路図変更という言葉が気になって、回路図を見比べましたが、違いが良くわかりませんでした・・・。
メモリマップ修正という言葉の意味も良くわかりませんが、ブートプログラムエリアのアドレスが変更されています。仕様が変わったのか誤植を直しただけなのか分かりませんが、きになります・・・。
結局、何も分かりません。(笑)
で、二つのBTC068を見比べてみました。

左が古いほう、右が新しいほう。
いろいろ違っていますね〜。
JPの半だの盛り方が気になりましたが、どちらのボードもジャンパされて(導通)いるようです。
外部RAM用のJP2もジャンパされています。マニュアルにはジャンパしていないって書いてあるんだけど・・・。
で、本題のAVRDUDEの書き込みをやってみました。

オッケーです!!
でも、DeviceSignatureがやっぱり0でした。ふ〜ん、そういうもんなんだって感じ・・・。
原因はBTC068が壊れていたということになります。
なんで壊れたんだろう。その原因はわからず。
また、何らかのタイミングで壊れる可能性があるわけで、だいぶ心配です。が、なんとも手が打てない(時期をみて、ボードを作り直すぐらいしか・・・)ので様子見とします。
いろいろ助言くださいました、キラさん、SISOさん、まつしろさん、ありがとうございました。また情報がありましたら、ここで報告します。
話は変わりまして、今回のBTC068の購入と一緒にDSR581のフリーホーンを6個購入しました。
6個じゃ、ぜんぜん足りませんが、様子見用というか評価用というか、貧乏性というか・・・。
なかなか良い感じですが、取り付けはかなりきつきつです。で、今度は取り外そうとしたのですが、かたいかたい。おりゃおりゃとやっていたら

サーボケースの裏蓋が壊れてしまいました。
フリーホーンを一度取り付けたら、外さないほうが無難ですね。
そういえば、以前SISOさんがDSR581の裏蓋は強度が足りないって言ってました。その通りでした。
ちなみに、コイズミさんに教えていただいたファイナルメタルギアですが、残念ならが在庫がなくなってしまったようです。試作品だったからな〜。また売り出すことを願います。
さらに話は変わりまして(今日は気分が良いので日記をいっぱい書いちゃいます)
こないだ、100円ショップに行ったら水平等を図る水平機が売っていたので購入しました。100円ですが、しっかりと縦横斜めの3通りに気泡が浮かんでいるやつで、以前からほしいなあと思いながらもホームセンターでは千円以上したので買わずにいました。(今までは子供のボールを机の上で転がして水平を確認していました。)
以前のように何回もボールを転がさなくて、一発で水平が確認できる様になりました。すばらしい100円です。
さっそく、モーション作成に使用している机の水平度を確認したところ、水平でした。
なんとなく、水平じゃないほうがうれしかったのにな・・・。
ATmega128の書き込みに失敗
最近はどうにもうまいこといかないHIDEです。スランプです。
さて、ATmega128のROM領域の使い方もなんとなく分かってきたところ
なのですが、ここにきていきなり、ATmega128の書き込みができなく
なってしまっています。
正確には最後のベリファイで失敗しているようです。
表示されるメッセージは
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude: verification error; content mismatch
プログラムが原因かと思い、ベステクのサンプルとかを書き込んでも
みましたが症状は一緒でした。
考えられる原因として
1、ロボット内の断線(テスタであたったけど問題なさそう)
2、PCとロボット間の断線(断線なら、ベリファイまで到着しないきがしてます。)
3、CPUの故障(原因が思い当たらない。書き込み回数はたぶん100程度、100000回までOKなはず)
4、電圧の低下(テスタであたったけど問題なさそう)
5、パソコンの故障
うーーん、こまった。
情報お待ちしておりま〜す。(他力本願)
さて、ATmega128のROM領域の使い方もなんとなく分かってきたところ
なのですが、ここにきていきなり、ATmega128の書き込みができなく
なってしまっています。
正確には最後のベリファイで失敗しているようです。
表示されるメッセージは
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude: verification error; content mismatch
プログラムが原因かと思い、ベステクのサンプルとかを書き込んでも
みましたが症状は一緒でした。
考えられる原因として
1、ロボット内の断線(テスタであたったけど問題なさそう)
2、PCとロボット間の断線(断線なら、ベリファイまで到着しないきがしてます。)
3、CPUの故障(原因が思い当たらない。書き込み回数はたぶん100程度、100000回までOKなはず)
4、電圧の低下(テスタであたったけど問題なさそう)
5、パソコンの故障
うーーん、こまった。
情報お待ちしておりま〜す。(他力本願)
ATmega128の文字列の記憶領域
ロボファイト4の大会前にはいろいろなことが起こりました。
たいていはブログでここぞとばかりに報告しておりますが、
ひとつ報告していなかった内容をここで改めて報告します。
数日前からコンパイルが通らなくなってしまいました。
プログラムを修正していないのに・・・。
コンパイルエラーはこんな感じ。(GCC)
address 0x80124d of test1.exe section .bss is not within region data
なにを言っているのか、そもそもエラーなのかどうかも僕には理解できませんでしたが、どうやらbssが足りないと言っているみたいでした。
bssっていうのは初期化されていない変数領域なんですって。なんのこっちゃです。
とりあえずRAMが不足しているんだろうと思い、大会時にはモーションデータ領域を削るだけ削って(領域確保しているだけで、データは入っていないので、削るのは簡単(笑))コンパイルを通しました。
当然、色々な、「はてな」がありました。
1、プログラムを変更していないのになんで最近コンパイルが通らなくなったのか?
2、M16Cの時はconst宣言でROM領域が使えた気がするのに、ATmega128はおばかなのか?
大会も終わり、落ち着いてきたので調べてみました。
で、わかったこと。
まず、ATmega128ではconst宣言してもRAM領域に確保されるため、ROM領域が使いたい場合はそれなりの作法でデータにアクセスが必要だそうな。めんどくさいな〜。
でも、以前はコンパイルが通ったのに、同じプログラムでコンパイルが通らなくなったのはなぜか??
こたえはここに書いてありました。
要するに、コンパイラの最適化が同じデータを圧縮してくれていたようです。今回の場合、同じデータとは、モーション作成を開始する前のモーションデータ(すべて0です)を指します。
ですからモーション作成をするにつれて、RAMが食いつぶされていき、簡単にあふれたのでした。
もやもやが晴れて、すっきり。
でも、ROM領域を使用するようにプログラムを修正しないといけないです・・・
たいていはブログでここぞとばかりに報告しておりますが、
ひとつ報告していなかった内容をここで改めて報告します。
数日前からコンパイルが通らなくなってしまいました。
プログラムを修正していないのに・・・。
コンパイルエラーはこんな感じ。(GCC)
address 0x80124d of test1.exe section .bss is not within region data
なにを言っているのか、そもそもエラーなのかどうかも僕には理解できませんでしたが、どうやらbssが足りないと言っているみたいでした。
bssっていうのは初期化されていない変数領域なんですって。なんのこっちゃです。
とりあえずRAMが不足しているんだろうと思い、大会時にはモーションデータ領域を削るだけ削って(領域確保しているだけで、データは入っていないので、削るのは簡単(笑))コンパイルを通しました。
当然、色々な、「はてな」がありました。
1、プログラムを変更していないのになんで最近コンパイルが通らなくなったのか?
2、M16Cの時はconst宣言でROM領域が使えた気がするのに、ATmega128はおばかなのか?
大会も終わり、落ち着いてきたので調べてみました。
で、わかったこと。
まず、ATmega128ではconst宣言してもRAM領域に確保されるため、ROM領域が使いたい場合はそれなりの作法でデータにアクセスが必要だそうな。めんどくさいな〜。
でも、以前はコンパイルが通ったのに、同じプログラムでコンパイルが通らなくなったのはなぜか??
こたえはここに書いてありました。
要するに、コンパイラの最適化が同じデータを圧縮してくれていたようです。今回の場合、同じデータとは、モーション作成を開始する前のモーションデータ(すべて0です)を指します。
ですからモーション作成をするにつれて、RAMが食いつぶされていき、簡単にあふれたのでした。
もやもやが晴れて、すっきり。
でも、ROM領域を使用するようにプログラムを修正しないといけないです・・・
ロボファイト4に行ってきました
昨日は26:30ごろまでコーネリアスの調整をしていました。
直立しているときの前後の体のゆれが収まらないので、足首ピッチ軸のサーボ2つを581から5801に変更しましたが、あまり効果が無かったです。
あとは適当にパンチモーションを作成し、一応の体裁をととのえて、最低限で作業を終了しました。
会場の位置と、電車の時刻を調べて就寝。
6:30頃の電車に乗って移動すれば、現地に9:30到着する。
3時間半ぐらいしか練れないよ〜・・・・
今朝は不思議としぜんに目が覚めました。
時刻は6:30!!!寝坊です。
急いでしたくして、なんとか10:00ごろ現地に到着。
電車で気が付いたのですが、まえびらきの服のボタンがずれてはめてありました。はずかしい・・・
二回戦負け(シードなので僕にとっては一試合目)を予想していたのですが、運がよく勝ち進むことができ、結局、ロボファイト3と同様に4位でした。
まともに歩けない僕のロボットが4位だなんで、本当に申し訳なかったです。
いきなりROBO-ONE出場権を得たのはこの方。

おめでとうございました。
さて、次は大同大学練習会にむけてがんばります。
直立しているときの前後の体のゆれが収まらないので、足首ピッチ軸のサーボ2つを581から5801に変更しましたが、あまり効果が無かったです。
あとは適当にパンチモーションを作成し、一応の体裁をととのえて、最低限で作業を終了しました。
会場の位置と、電車の時刻を調べて就寝。
6:30頃の電車に乗って移動すれば、現地に9:30到着する。
3時間半ぐらいしか練れないよ〜・・・・
今朝は不思議としぜんに目が覚めました。
時刻は6:30!!!寝坊です。
急いでしたくして、なんとか10:00ごろ現地に到着。
電車で気が付いたのですが、まえびらきの服のボタンがずれてはめてありました。はずかしい・・・
二回戦負け(シードなので僕にとっては一試合目)を予想していたのですが、運がよく勝ち進むことができ、結局、ロボファイト3と同様に4位でした。
まともに歩けない僕のロボットが4位だなんで、本当に申し訳なかったです。
いきなりROBO-ONE出場権を得たのはこの方。

おめでとうございました。
さて、次は大同大学練習会にむけてがんばります。


