先日、「秋月」でAVRの新製品がラインナップに追加された。(AVRの中では600円と高い部類だけど安い)
ATMEGA1284P がそれなのだが、一番のトピックは内蔵RAMが16KBもある点で、AVRで少し痛いとこが大分改善される。
以前にATMEGA64で作っていたデータロガーだけど、メモリーが少なすぎるのと(外部バスにメモリーを増設できるけど)、クロックが最大16MHzなので、途中でペンディングとなっていた、今回その時に作ったソースコードを生かして、作りなおして実験してみた。
クロックもこのデバイスは20MHzまでいけるので、19.6MHzを採用し、GPSデータの取得と100Hzでアナログ8チャンネルのデータ収集など基本的な部分の動作確認も出来た。
↑これも秋月で売っている液晶を使って、基板サイズをそれに合わせてあるのでそこそこコンパクトに仕上がった。
SH2 で作っているデータロガー、高機能なのだが、部品の入手性、コストなど考えると、今回の仕様でもまぁ十分ではある。
もうすぐモータースポーツのシーズンも始まるしで、とりあえず廉価版を早急に仕上げる事とした、安く作れるので、他にも利用用途が沢山ある。
GPSはSUP500Fを別途モジュールとしている、本来は、本体に取り付けても良いのだが、本体の取り付け位置によっては、良好な衛星の受信状態を維持出来ない可能性もある為、あえて外部モジュールとした。
※CR2032をバックアップ用電池として使っているが、実験してみると、もの凄く急速に電池が減るので実用性は無い・・
※SUP500Fはバックアップ電圧を加えないと動作しないようだ・・
※SUP500Fには1PPS出力があるのでLEDを付けたが、ほとんど電流を取れないのでバッファを付ける必要があるようだ、トランジスタも駆動出来なかった。
ATMEGA1284Pはメモリーもそれなりにあり、高速で良いのだが、ポートが少ないのが痛い、デコーダーを追加したり、色々工夫が必要。
後、やっぱり、メモリー空間が、RAM領域とROM領域が別になっていて、アクセスに気を使わないとならないのは多少痛い。
最近のフレームワークではChaN氏のFatFSを利用させてもらっている、毎度の事だが、このパッケージは凄く完成度が高く、高性能で移植性に富んでいる、この場を借りてお礼を言いたい、「ありがとう御座います~」便利に使わせてもらっています。
hiraさん、こんにちは。
自分がやったわけではないですが、大容量 SRAMの AVRの話でふと思い出しました。
世の中には「ATmega88(外部 SRAM 64KB)で CP/Mを動かす」みたいなことをやっている人もいるようです。結構有名な工作なので、もしかしたらご存知かもしれません。
自分もたまたまその実物を見かけたことがあり、まぁ、その(ry
コメントありがとう御座います。
CP/Mの記事とか以前に観た事あります、かなりガリガリにアセンブラで書いてあったと思いますー、目的の為に手段を選ばないとか、強引なんですが-、面白い試みではありますね、エンジニアリングもあります。
※あれはSRAMでは無くDRAMだと思います、DRAMだとアドレスバスがマルチプレックスされているので、半分ですみポート数を減らせます。
ただ、AVRのCPUコアが、ネィティブなRAM空間としては使えない方法ですね、8080のエミュレーターがアクセスするから出来る方法ですねw
ATMEGA128(以前に一度挑戦したデータロガー)みたいに、外部にネィティブなメモリー空間を増設できるデバイスもあるのですが、部品点数も増えるし、このデバイスは16MHzまでしか動作しません。
今回AVR1284を19.6MHzで動かしていますが、10HzのGPS、100Hz、8チャネルのA/D、ラップタイム、エンジン回転数検出、液晶表示、SDへの書き込みなどで、結構一杯な感じです。液晶表示をやめれば、余裕ですが・・
今回は、とりあえず低価格版で、直ぐに作れる事が条件でしたので、これで再度挑戦した感じです。