AVRマイコン総合スレ Part37
■ このスレッドは過去ログ倉庫に格納されています
前スレ>>1000
がた老さんのところにドライバあたよ。 前スレtiny13で400KHzのI2Cスレーブを作るには
・9.6MHzの場合1us9.6サイクルの猶予がある
・400KHz = HiLowそれぞれ1.25us
ではあるが、I2Cの場合は
・マスターのHighホールド最短時間 = 0.6us
・マスターのLowホールド最短時間 = 1..3us
というのがある
・とにかくHiを検出してLowエッジを得る処理をインラインアセンブラでも使ってノーウエイトでがんばる
・SCL側でLowエッジを得たら、すかさずポートを出力Lowにしてクロックストレッチに持ち込む
・何か処理をする場合はこのストレッチ状態の合間に行う
・割り込み許可している暇は無い
こんな感じですわ ややストレッチ状態に限れば割り込み許可もできる
がそもそもストレッチに持ち込めるかはマスターのバス使用頻度に左右されるのと
あまり引き伸ばすと他のデバイスの通信にモロに影響するので控えめにやる
よってできることはADC取り込みやPWM出力とか軽い処理に限られるだろう ちなみに16bitタイマー付きのtiny10ならサーボも2chだがmega並に制御できる(8bitタイマーしかないtiny13では無理)
tiny85も8bitタイマーだけどこっちはUSIで何でもできるので事情がだいぶ違ってくる >>6
わざわざ独自通信でもするのかな?
俺はI2Cにはこだわるね
1つに既存のバスにそのままぶら下がる事
それとマスター側は上のスレーブよりずっと簡単に資源を使わずに増やせる事
スレーブ側もバス速度を100Kbpsに落とせるなら何でもあり
要するに実装が楽なんだよ 素人が作ったような危なっかしいプロトコルですぐハングアップするから嫌だ それと意外と大きいのがクロック源が適当でも動くことだね
内蔵RCでも特に調整なしで400Kbps通信を達成できる事
校正が必要な用途でも後からマスタから受けられる事
これが仮にUARTやそのモドキだと最初に校正パケットなんてのが必要になってくる 数レスだと落ちるらしいから30ぐらいまでこのネタでいくか
俺も最初はI2Cには懐疑的で色々検討したけど
そこそこの速度でtinyで実用に耐えるプロトコルなんて他にないんだよね ちなみにtiny85や861、2313のUSI付きtinyはI2Cスレーブをほぼ無負荷で実装できる
これはUSIの機能で自動でストレッチ状態にしてくれるからだね
逆にUARTはHWで持ってる2313の例外を除いてtiny全体で事情はほぼ変わらない 実際にストレッチなんか使ってるデバイスは皆無だろ
I2Cの一番糞な仕様だと思う > USI付きtinyはI2Cスレーブをほぼ無負荷で実装できる
それなら、tiny13の方をI2Cのマスターにして
一定間隔でADCの値を送る、というやり方が良いのでは? 14の書き忘れを追加
tiny2313をI2Cのスレーブにする
という事です。 俺だったらtiny2313+tiny13止めてmega328にする
貴女と私は一心同体、なら遠距離よりも悲劇を生む可能性が少ない >>13
I2Cの価値はむしろストレッチだよ
megaのTWIやtinyのUSIのI2C応用もストレッチ前提の機能だよ
割り込みを処理するのが遅かろうがちゃんと通信が維持されるのはこのストレッチのおかげ
これが無かったらマイコンがスレーブになったりマルチマスターなんてそもそもできない >>14
どっちでもお好きどうぞ
tiny13の使い道が増えるといいよね >>16
前スレによるとmegaを使うほどのプログラムじゃないらしいのね
そこに他のtinyがあったらスルーされる筆頭のtiny13が列挙されてて
思わずあっとなったわけで >>20
megaではプログラム領域が余ってもったいないからtiny2313?
そんなメリットはデメリットに比べて小さ過ぎる。
tiny2313+tiny13は思考実験的には面白いかもしれないが。 前スレ989
>ADCと16bitのタイマカウンタで位相基準PWMモードを使いたい・・・。
>しかしmegaを使うほどのプログラムじゃないし、attiny2313にADCがあれば解決したのになあ >>22
mega 使うほどのプログラムじゃないってのが意味わからない。
64byteのプログラムでもmega使っていいんだぜ?
tiny261A とかでもいいし。 ク〇が複数 噛み付いてきたな
2ちゃんにつかりすぎじゃねーの?w AtmelStudioをインストールせずにAVR ISP mk2を使いたいのですが、
方法をご存知の方いらっしゃいますか?
AVR ISP mk2のドライバや、書き込みプログラムのatprogram.exeが必要だと思うのですが。
単体でダウンロードできるものなんでしょうか? >>25
以前はAVRCommandLineToolsと言う書込みプログラムだけを落とせたのですが
今は無いようなのでAtmelStudioから抜き出すしかないと思います。
FreeのAtmelStudioをインストールしないことが前提なら
AVRdudeでも使ったらどうですか。 >>26, 27
ありがとうございます。
試してみます。 attiny861とattiny841が安く手に入るところってどこですか?
200円以下で買えると助かるんだけど… 質問失礼します.
先日購入したAVR ISP mk2で,atmega328p-puにプログラムを書き込んだのですが動作しません.
AtmelStudio6.2を使用して,Lチカのプログラムを書き込みました.
Device ProgrammingのMemoriesから書き込んで,
Erasing device... OK
Programming Flash...OK
Verifying Flash...OK というメッセージも出ましたが,ledが点きませんでした.
思い当たる節として,最初にAVR ISP mk2を使おうとするとファームウェアの更新が要求されるみたいですが,行った記憶がありません.
ファームウェアの確認のためDevice ProgrammingのTool informationの欄を開こうとすると,
「Property not found: MajorFirmwareVersionOnDisk」 というエラーが出ました.
ファームウェアが古いのかもしれないと思い,以下のサイトの手順通りにやってみましたが10.のコマンドを実行した所で
「Failed parsing zip file for images」と出て実行できませんでした.
http://garamoba.eshizuoka.jp/e1124571.html
何か原因が思いつく方はいらっしゃいませんでしょうか.
違うマイコンにしても動かず,AtmelStudio7は起動せず,4はAVR ISP mk2を認識せず,途方に暮れています.
些細な事でも,ヒントだけでも良いので,どうかよろしくお願いします. >>30
OSは何?
AVR ISP刺した状態でデバイスマネージャーにちゃんと表示されてる?
AVRstadioいろいろ入れてるけど1度全部アンインストールして6.2だけインストールしてみたらどう?
ぐらいしかおもいつかねぇ。 zip fileを実際展開してみて壊れてないかチェックしてみる。
というかProgram Filesに置いていいのか? windows vista以降だと普通にコピペだと違うところに保存それるぞ。
管理者権限でコピーするとかVirtualStoreを無効化してからやり直せばいけるかも。 ■ このスレッドは過去ログ倉庫に格納されています