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を無効化してからやり直せばいけるかも。 > Erasing device... OK
> Programming Flash...OK
> Verifying Flash...OK
デバイスの認識から消去、書き込み、ベリファイ全部成功してるんだから
ファームのバグか配線ミス以外の何物でもない 8ピンでUSART,ADC搭載のTinyが出たね。
DIP無いけど。 シリアル通信は半2重、調歩同期式を出してくれないかな。
そしたら1ピンで済む。
内蔵OSCの精度が問題になるかもしれないが。 >>36
102かぁ
あとは861系にUART載った奴さえ出ればw >>36
SRAM32Byte、EEPROMなし、16bitタイマー1本、書き込みTPIでレジスタ半分16本のコアがAVR8L
要するにこれはattiny10のピン拡張版だな
UARTはまあ欲しいっちゃ欲しかったけど今更だな
それとこれを使うにしてもAtmelがちゃんとしたAVR-Toolchainを出してくれるのかどうか
最悪定義だけ頂いてgccはソースビルドを考えた方がいいかもしれない >>44
>別にToolchainはATMELが作ってるわけじゃないし。
知らなかったわそんなの
一体どこが作ってるの Toolchain最新版は3.5.0か
AtmelStudio7に入ってるのがこれと同じだと期待できないんだよな それにしてもUp to 12 MIPS at 12MHzと書いてるのに
内蔵RC8MHzってちょっとどうなの
外部クロック供給したりOSCCAL調整しろってことなの 時計ICみたいに水晶内蔵させれば精度出るのにな。
価格大幅アップ必須だw >>31
>>32
>>33
ありがとうございました.やっと動きました!
ツールバーからavrisp mk2のファームウェアアップデートができないのはatmel studio6.2だけということを知りませんでした.
6.0を入れてアップデートしたんですがファームウェアが1.11から上がらなかったので,4とドライバを入れなおしてアップデートしたら動きました.
原因をファームウェアに絞れたのはとても助かりました.本当にありがとうございました. >>52
FW1.11/1.15のAVRISPmkIIで試してみました。
6.2無印(build 1153)だと初回は失敗することが多いです。
でもUSBプラグを刺しなおしてリトライすると成功します。
sp2とか7使えば問題ないだろうにと思います。 失敗することはあっても深刻な状態になることは稀ってことよね。
海外サイトでも問題になっている気配はないし。
状況からしてbuild1563(sp2)も試してなきゃおかしいし、>>33が指摘している通り
一度は書き込みに成功しているのに根拠もなくライターのせいにしてる。
初心者が右往左往しただけなのに6.2が悪者にされちゃってるかわいそうな話。 >>54
リリースノートではファームアプデ中に止まる(SP2修正済み)
コミュサイトでは見えない報告(ツール削除USBドライバ再インスコ)
以上です arduino化したattinyで質問があるのですがこちらでいいでしょうか?
スレ違いだったらすみません
症状
・arduino-ISPから9.6MHzの設定でtiny13にblinkスケッチを書き込んだところ、LEDが点滅せずに点灯したままになります
・loop()内のdigitalwrite()を全てコメントアウトしてスケッチを書き込むとLEDは消灯したままになります
これはどういう状態でしょうか?
環境
・windows10
・arduino-ISP化したarduino Uno
・arduinoIDE1.6.7にcore13及びattinyライブラリ(85用)を追加
ちなみに同じ回路で同じblinkスケッチをtiny85に書き込んだ場合はLEDがきちんと点滅します >>56
そのblinkの書き込みサイズは確認した?
13はFlashが1024ByteしかないからArduinoのIDEで作るにしても
スケッチはAVR的に書かないとblinkすら厳しいんじゃないか
tiny85なら動くのはそんな理由だろう
例えば下みたいにdigitalWriteは使わずにDDRBとPORTBレジスタに直接書くとかなり小さくなる
void setup() {
//pinMode(0, OUTPUT);
DDRB = 1; // PB0 OUTPUT
}
void loop() {
//digitalWrite(0, HIGH);
PORTB |= 1; // PB0 HIGH
delay(1000);
//digitalWrite(0, LOW);
PORTB &= ~1; // PB0 LOW
delay(1000);
} >>56
ちょっと環境は違うがArduino1.0.5でkosakalabにあるhardware.zipで
試したらtiny13/85ともちゃんとBlinkした。 Hexサイズは384バイトだった。
1.6.7とcore13でも試そうとしているが何か面倒そうなので後でまたやる。 皆さんレスありがとうございます
>>57
特に小さくする工夫はしてませんが書き込みサイズは384bytesでした
core13のwiring_digital.cの中身を覗いてみたところ、教えて頂いたのと同じようにレジスタを直接弄っていたのでそれで節約出来てるみたいです
>>58
試して頂きありがとうございます
同じサイズなのが面白いですね
もうちょっと1.6.7で動かせる方法を探りつつ1.0.5でも試してみたいと思います 1.6.7とcore13_022.zipを使ってTiny13AでBlinkを確認できました。
Hexサイズは350バイトになった。 あれから色々やってみたのですが、一度全て消して1.6.7とcore13を入れ直したところ無事動くようになりました!
原因はboard.txtを変に弄ってしまったせいのようで・・・
一人では気付けなかったと思うので助かりました
試して頂いた皆さんもありがとうございました
お騒がせしてすみませんでした
>>60
ありがとうございます
入れ直したところ同じ350バイトできちんと動きました いいかげんなプログラム書いたら、割り込みとMainの処理が競合しまくって変な動きする。書き直しだな。 AVRstudio4.19のセットアップファイル持ってる人いませんか?
AtmelからダウンロードページのURLが送られてこないので..
もしいたらupしてもらえると助かりますm(_ _)m >>64
ここからAVRstudio4.19選んでSubmitしてPlease Confirm Your Registrationのページには行ったんですがメールが送られてこないんですorz あと、AVR Toolchain のバージョンを合わせないと Simulator は動作しないから要注意な
AVR Studio 4.19-730 なら下のどちらでも可で、それ以外は駄目
AVR Toolchain 3.3.1-1020 (94 MB, avr-gcc 4.5.1, AVR-Libc 1.7.1, updated 2012/04)
AVR Toolchain 3.3.0-710 (94 MB, avr-gcc 4.5.1, AVR-Libc: 1.7.1, updated 2011/09/11) >>65
要求が古すぎ
メアドが違う
迷惑メールに入ってる
Atmel Studio 7.0で試したら即座に届いたよ、今DL中 4.19もやってみたら
サイズ小さいから先にDL完了したw テンプレのwikiにもAVRstudioなどの直リンクあったけどエラーで見えないですね。
もう一つのwikiは内容が古いままだし...でも役に立ってるよ。 >>66
ありがとうございます!無事インストールできました。
>>68
Atmel Studio 7.0だとすぐにメールが届いたので要求が古すぎたのかもしれないです
教えてくださってありがとうございます。 もう一つ聞きたいのですが、簡単なプログラムを作ってbuildしてみたら
fatal error: opening dependency file dep/test.o.d: No such file or directory
とエラーが出ました。
ファイル名やフォルダ名には日本語を使ってないし、Dドライブのルートに作ってみたりしましたが直りません..
もし解決法知ってる人いたら教えてほしいです。 >>73
解決できました!本当にありがとうございますm(_ _)m
度々すみませんが今度は書き込みができなくて困っていますorz
Tools>Program AVR>Connect...からAVRISP mkIIとUSBを選択してConnect...を押しても次のダイアログが出てきません
一通り調べていろいろ試してみたものの出来ませんでしたorz 一応デバイスマネージャーのJungoの下にはatmelwindrvrとWinDriverがあります
4.19のサービスパックがなかったのでインストールしていませんがそのせいですかね.. >>75
サービスパックはありませんが
Win8.1や10だと最新のJungo Driverを入れないといけません。
Studio ArchiveのページにあるAtmel USB Driver Installer 7.0.888です。
下はATMEL Gallaryのリンクです。
https://gallery.atmel.com/Products/Details/6272a8fd-68fe-43d8-a990-741878cfe7b6 >>76
詳しい説明ありがとうございます!最新のドライバ入れたらできました!
ここまで教えてくださった方本当にありがとうございました!
初めてLEDが点滅したときは感動しますねw うまくいったようですね、おめでとう。
さらにプログラムして楽しんでください。 ここまで苦労して旧バージョン使わないといけない理由があるんだろうか・・・ 品種によっては新しいが良いとは限らない
が品種書いてないのな… 最新だとライブラリが新しくなることで過去のソースがビルドできなくなるってのはあるかな。
割り込み処理を書くsignalとか4.19(ってかWinAVR)では使えたけど最新版では削除されてるし。 結膜炎にかかって、病院行ったら2種類の目薬1日4回定周期で、一つめの目薬さしたら5分後2つめの目薬させとの指示だったので、tiny13で目薬タイマー作り始めたんだが、完成前に目直っちゃった。 >>85
ラーメンタイマーに改造すればいいさ
磁気吸着地雷型のタイマーを作りたいなぁ >>87
ブレッドボードで試作してたのでもう全員部品箱に戻りました。
磁気吸着地雷型は面白そうですね、ドイツ軍かあ。 しばらく中断してたAVR工作でも再開するか思ってみたら
昔のパラレルポートとかシリアルポートの自作ライタが使えなくなってた
AVRSP.exeとかザイリンクス用自作ライターで使えたのに デバッガ自作すれば思うがママ、胡瓜がパパ
素早く起動してサクサク動き、隅々まで全てが分かる
勝手なバージョンアップも、他人のバグを恨む事も無くなるぜ そういうリスク背負ってこその簡易自作ライターなんだから
愚痴るくらいなら純正買っとけって。 USBベースのライタが簡単に作れるんだから
パラレルやシリアルのことはもう忘れチャイナよ
全角さん 板常駐の不適応者君が荒らしたようだな?
444 :774ワット発電中さん[sage]:2016/03/04(金) 01:41:49.00 ID:ZS4B9H8g
おれも一介のWindowsプログラマなのに ←←←←←←←←←←←←←←←←
いきなり組み込みで動画付きフォトフレームみたいなもの作れとか言われたことあったな
もちろん完成しなかったよ
今なら手段は色々思いつくけどデコーダとか考えると時間の無駄だわ
Winタブが変に普及して良かったわ
556 :774ワット発電中さん[sage]:2016/03/10(木) 20:54:19.47 ID:wY2h9rcI
>>554
もっと上手に例えなきゃ、とんちんかんと言われるよ。
そもそもテレビの良否判定くらい正確にできるし。
オレ家電の修理屋ですから。 ←←←←←←←←←←←←←←←←
なんか壊れてるなら直してあげるよ。
92 :774ワット発電中さん[sage]:2016/03/04(金) 14:39:47.98 ID:ZS4B9H8g
USBベースのライタが簡単に作れるんだから
パラレルやシリアルのことはもう忘れチャイナよ
全角さん >>89
古いAVRが余っているので、工作してみようと思っている。
ICE200デバッガ利用。 全角こと89ですがUSBライタにしました
PICerFTというライターソフト対応のFT232RL使用ライターです。
ありふれた工作品ではありますが参考で写真うpしておきます。
http://thuploader.orz.hm/img/dat/581.jpg
昔作ったAVR回路でデバイス認識とreadができるとこまで確認したのでおそらくwriteも動作すると思います。
I/O電圧をケーブルのVccから供給する作りなので5V/3.3Vを選択するジャンパは不要です。 ■ このスレッドは過去ログ倉庫に格納されています