「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2009年4月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
前月
翌月
Entry Archive
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
こないだのロボット
ロボット行ってきた
こないだのくれじークライマー全国大会2024予選
マウス修理した
訃報
ミカド行ってきた
LANケーブル交換した
MFT2024行ってきた
こないだのロボット
ロボット行ってきた
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2850)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(193)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
debugwireのICEとI/Oクロックの話
AVR
/
2009年04月28日
昨日の続き。
jtagice mk2互換を使ってtiny2313をdebugwireで
ICEする時のことについて調べてみました。
(前回までのお話)
PORTxレジスタにデータを出力すると、PC画面上では
その直後にPINxレジスタにもその内容が反映されちゃうん
だけど、内部回路的にはシンクロナイザを通る分だけ
PINxへの反映が遅れるはず。なぜ?
(調べてみた)
まずはデータシート。tiny2313のフルバージョンの
24ページの絵(figure11)を眺めてみました。
クロック源(外部発振にしても内蔵RCにしても)を
マルチプレクサで選択した後に、大きく3つのクロック
に分岐しているようです。
(1)CLKi/o
(2)CLKcpu
(3)CLKflash
このうち、PINxのシンクロナイザに繋がっているのは
(1)で、ICEのブレークポイントとかで停止する
ためのCPUクロックは(2)という具合に分かれているん
ですね。
で、簡単に言うと(2)や(3)はブレークポイント
などで停止するんだけど、(1)を停止させちゃうと
それが原因となってイロイロ弊害も出るだろうから、
基本的にはクロックをカウントしつづける…と。
そのあたりを詳しく書いてあるページがこれとか、
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/JTAGICEmkII/mkII/Html/JTAGICE_mkII_Special_Considerations.htm
これとか。
http://support.atmel.no/knowledgebase/avrstudiohelp/mergedProjects/JTAGICEmkII/mkII/Html/JTAGICE_mkII_Introduction.htm
要点だけ抜き出すとこんな感じ。
例えば、このページのサンプルコードとして載っている
Example:
OUT PORTB, 0xAA
IN TEMP, PINB
っていうのをシングルステップで実行すると、PORTBに
吐き出した0xAAは次の行のIN命令では読めないはずだけど、
ICEで1ステップ動作をさせると読めちゃう。
もしちゃんとしたいなら、間にNOP命令を入れなさいという
感じ?
それと、イロイロ読んでいくと、すべてのI/Oモジュール
が一律動きつづけるって言うわけでも無いみたい。
一つにはtimer/counter。もうひとつはウォッチドッグタイマー。
timer/counterはCPU停止時に動きつづけさせるのか
停止させるのかを選択できるとのこと。
ウォッチドッグタイマーはCPU停止中は一律停止する
とのこと。
そりゃそうだね。うん。よく配慮されたつくりだな。
それ以外にも、リセットピンはdebugwireで使っている
間は他のICなどから制御することはダメとか、
USARTは動きつづけるよとか、ブレークポイントを
設定するとflash ROMに都度書き込みするからflashの
寿命を縮めますとか、いろいろ書いてあるみたいなので、
ご興味のある方は読んでみてください。
コメント (
0
)
動いた!
AVR
/
2009年04月28日
例のKEE electronics製のjtagice mk2互換機。
ようやく接続確認ができました。(^O^)
情報頂いた皆さん、ありがとうございました!
先日ダメだった理由は、どうやらリセット周りの
配線の勘違いでした。アホですな。抵抗値以前の
問題です…(^_^;)
で、実験風景。
tiny2313を実験台にしました。リセット用のプルアップ
抵抗はひとまずatmel推奨の10kΩをチョイス。
この間と同じように配線を実施。
dwenビットを立てる前の状態から始めたので、
debugwire経由のICEに入ろうとすると警告画面が
出てきます。適当に弄ってdwenビットを立てます。
(多分、事前にISPモードで明示的に変更してもいいん
だと思いますが、今回は手抜きをしてみました)
で、実行してみるとなんだかんだでシミュレータ画面
がいつものように開きます。一見何も変わりません。
(あたりまえ)
ここでステップ実行とか操作してみると実行結果が
坦々とPC画面に表示されるわけです。レジスタとか
メモリ内容とか。
でもこれだけだと普通のシミュレータと何も
変わらないので、tiny2313側にLEDを取り付けて、
実行しているコードにあわせてLEDがちゃんと
点滅/消灯するのか確かめてみます。
まぁ、疑うだけムダなんですが、予想通りちゃんと
点いたり消えたりしました。うーん、なんか気持ち
いいな。(^O^)
一つ気になることが…ピン入力用レジスタ(PIND
とかPINBとか)のシンクロナイザ回路のこと。
山根さん本
の98ページによると、PINxレジスタが
変化するタイミングは、実際に変化したタイミング
に対しシンクロナイザを通過する時間の分(2I/O
クロック)遅れると書いてあります。
PORTBやPORTDの各レジスタに出力命令から
2クロック遅れてPINxレジスタに反映されるん
じゃないのかなぁ?
ところが、出力命令の実行直後にPINxレジスタ
の内容が変わっちゃってるんですよね。これって
なんでだろう?
CPUのクロックとI/O用のクロックって
別なの??? うーむ…。
というよりは、CPUは常時実時間で動いているから、
ICEで読み出しする時にはもうPINxレジスタ
に反映された後の状態ってことなのかな?
細かいところが気になるんですよ。私の悪い癖。
(注:右京さん風に)
debugwire経由でPCにデータを読み出すにも
それなりに時間がかかっているはずだから、
やっぱりその間にPINxに内容が反映されて
しまっているって考えるのが自然なのかな?
私の記憶では、ソフトウェアシミュレーションの時は
PINxへの反映は確かに遅れていた気がするんだ
けどなぁ…
ICE中は、ブレークポイントなどで中断中でも
I/Oクロックは動作しつづけるっていう理解を
すればいいのかな?それなら辻褄は合うなぁ。
おまけ。互換機のコネクタ部分のアップです。
atmelオリジナルとはちょっと違うみたい
なので…。ご参考まで。
白いのが本体から生えているコネクタで、JTAG
の配置になってます。(裏表逆に撮っちゃったな…)
手前側にあるのが付録の変換基板。10ピンJTAGを
10ピンISPに変換します。うーん。シルクにATMEL
って書いてあるなぁ。これって純正品?
シルクにイロイロ書いてあるので、迷うことはないでしょう。
親切、親切。
ただ、10ピンISPを6ピンISPに変換しないと
不便だな。これまで作ったCPUボードとかは6ピン
だもんなぁ…。
そういえば、これまで作ったボード類って、リセット周り
のプルアップ抵抗が大抵4.7kΩなんだよな…。
10kΩにしないといけないかな?
というわけで実験してみました。
リセット用のプルアップ抵抗を4.7kΩに変えて再度
接続!
結果:とりあえず普通に動きました。
ただし、ATMEL純正のjtagice mk2とは回路構成が
違うのかも知れませんし、そもそも推奨は10kΩなので、
無理して4.7kΩを使うことも無いと思います。
…既にあるボードはとりあえず今のままで鞭打って
使ってみようかな、なんて思ってますが。
ISPモードからdebugwireモードへの変更は4.7kΩ
で行ってないので、この変更がちゃんと効くのかは
良く判りません。
まぁ、そもそも無茶するより10kΩ使ったほうが賢いな。
絶対。
コメント (
2
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【コメント募集中】スタッフの気になったニュース
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【コメント募集中】goo blogスタッフの気になったニュース
gooブロガーの今日のひとこと
訪問者数に応じてdポイント最大1,000pt当たる!