[305] 38kHz変調のインタラプト処理 投稿者:JinSato 投稿日:2000/05/16(Tue) 11:57
mac さん、どうも。

自分はテストでメッセージを送るだけを考えているのですが、イントラプトを使わないで
nop 並べてタイミングを取ることを考えています。
しかし、38kHz のメッセージも受けたいと思うと、PICを 4Mhzで動かすと無理かどうか
まだ、検討できる段階にきていないのが、現時点です。

AVRのレジスターを見ていると、PICをやめてAVRにしようかな〜〜〜なんて思って
しまいたくなりますねー。
AVRに乗り換えようかなー。 GNUのCも有る見たいだし。

[306] Re: 38kHz変調のインタラプト処理 投稿者:">mac 投稿日:2000/05/16(Tue) 12:55 <URL>
> 自分はテストでメッセージを送るだけを考えているのですが、イントラプトを使わないで
> nop 並べてタイミングを取ることを考えています。

連続して送ろうとすると、charを送信していないときでも、
38kHzキャリアーを出す必要があるので、
Interrupt drivenになっちゃいますね。

> しかし、38kHz のメッセージも受けたいと思うと、PICを 4Mhzで動かすと無理かどうか
> まだ、検討できる段階にきていないのが、現時点です。

受けは、IR receiverがやってくれるんで、38kHzでなく、
base bandの2400bpsで十分です。
いしかわさんのポケステプログラムだと、
Receiverにその機能がないので大変なことになってますが (^^;

> AVRのレジスターを見ていると、PICをやめてAVRにしようかな〜〜〜なんて思って
> しまいたくなりますねー。

16F84でなくって、もうちょっと高性能なPICでも良いんですがね。
PICとSX Writerは買ってきたんですが、AVRはもってなかったりします (^^;
せっかくだから、みんなでそれぞれ別のいろんなchipに実装したほうが面白いかと思って、ははは。

[308] Re^2: 38kHz変調のインタラプト処理 投稿者:ななしの 投稿日:2000/05/16(Tue) 13:22 <URL>
> 連続して送ろうとすると、charを送信していないときでも、
> 38kHzキャリアーを出す必要があるので、
0(LOW)のとき38KHzのキャリア出力でシリアル信号は通常1(High)なのでcharを送信してないときはキャリアを出力してないと思いますけど?

[309] Re^3: 38kHz変調のインタラプト処理 投稿者:">mac 投稿日:2000/05/16(Tue) 14:35 <URL>
> 0(LOW)のとき38KHzのキャリア出力でシリアル信号は通常1(High)なので
> charを送信してないときはキャリアを出力してないと思いますけど?

ありがとうございます。
初歩的なミスですね。

送信中の最長loopを13step以内にすれば、
4MHzでも行けるってことですね。
昨日書いたISRからregister push, popを抜くとちょうど13stepですね...

[312] Re^4: 38kHz変調のインタラプト処理 投稿者:">mac 投稿日:2000/05/17(Wed) 21:28 <URL>
> 昨日書いたISRからregister push, popを抜くとちょうど13stepですね...

と言うことで、4MHzにするのは、ちょっと苦しそうなので、
そのまんま8MHz interrupt drivenで行く事にしました。

まだ、debugしてないので動きませんが、途中経過を出すのが、
この界隈の慣わしになりつつあり、この慣習に賛同したいので、
これで行こうかという予定線を、
http://www.line.to/mac/MindStorms/mesball
に置いておきます。
繰り返しますが、未チェックです。

[331] Re^5: 38kHz変調のインタラプト処理 投稿者:">mac 投稿日:2000/05/22(Mon) 21:00 <URL>
> と言うことで、4MHzにするのは、ちょっと苦しそうなので、
> そのまんま8MHz interrupt drivenで行く事にしました。

出来あがってしまうと、急に見通しが開けるものです。
まだシミュレーターレベルですが、2MHz interrupt drivenでも、
なんとかなりそうです。
ボタンLithium電池なら、本当に転がるボールが作れそうですね。

それと、DACで出力可変にするのではなく、周波数はそのまま、LEDがONのduty cycleを可変する手もありましたね。
こっちだとさらに電力が減るし小型に出来そうです。
もう一個作ろうかなあ (^^;

[333] Re^6: 38kHz変調のインタラプト処理 投稿者:JinSato 投稿日:2000/05/23(Tue) 02:49
> > と言うことで、4MHzにするのは、ちょっと苦しそうなので、
> > そのまんま8MHz interrupt drivenで行く事にしました。
>
> 出来あがってしまうと、急に見通しが開けるものです。
> まだシミュレーターレベルですが、2MHz interrupt drivenでも、
> なんとかなりそうです。

2Mhz でOKということは消費電力も少なくなるということですよね〜。

> ボタンLithium電池なら、本当に転がるボールが作れそうですね。

ボールの中に、単三の充電可能な電池を入れて、ボールを入れるケースに
入れると充電されると言うのはどうですか〜?

> それと、DACで出力可変にするのではなく、周波数はそのまま、LEDが
> ONのduty cycleを可変する手もありましたね。

これはちょっと、私にはわかりませんでした。
On する時間を規定よりも短くするということでしょうか〜?

> もう一個作ろうかなあ (^^;

楽しみにしております〜。

あ〜、自分も作りたい〜。

[337] Re^7: 38kHz変調のインタラプト処理 投稿者:">mac 投稿日:2000/05/23(Tue) 10:26 <URL>
> 2Mhz でOKということは消費電力も少なくなるということですよね〜。

PIC自身の消費電力は、8MHzに比べ1/4以下になるし、
3V電源に出来るので5Vに比べ総合では1/10ぐらいにできますね。

> ボールの中に、単三の充電可能な電池を入れて、ボールを入れるケースに
> 入れると充電されると言うのはどうですか〜?

PHSのLithium Ion電池にして、充電器も流用するとか (^^)

> > それと、DACで出力可変にするのではなく、周波数はそのまま、LEDが
> > ONのduty cycleを可変する手もありましたね。
>
> これはちょっと、私にはわかりませんでした。
> On する時間を規定よりも短くするということでしょうか〜?

いま、38.4kHzのキャリアは13μs on, 13μs offの50% duty cycleなんですが、1μs on, 25μs offとか、2μs on, 24μs offとかにすると、多分受信は出来、出力を下げたのと同じ効果があるんじゃないかと思います。

4 MHzでは、苦しいとかいっていたのに、いきなり2MHzでも大丈夫に変わったのは、公開中のものは13μsごとに割り込んでいますが、26μs毎の割り込みにして、割り込みの最初で、led onにし、割り込みから抜ける前にoffにすればokな事に気付いたんです。

2MHzは、さすがにぎりぎりで、余裕がなくduty可変は無理ですが、4MHzなら十分行けそうです。

[339] Re^8: 38kHz変調のインタラプト処理 投稿者:JinSato 投稿日:2000/05/23(Tue) 13:08
Jinです。

> PHSのLithium Ion電池にして、充電器も流用するとか (^^)
 世界的に入手が簡単なパーツの方が世界的に広められると思います〜。


> > > それと、DACで出力可変にするのではなく、周波数はそのまま、LEDが
> > > ONのduty cycleを可変する手もありましたね。
> >
> > これはちょっと、私にはわかりませんでした。
> > On する時間を規定よりも短くするということでしょうか〜?
>
> いま、38.4kHzのキャリアは13μs on, 13μs offの50% duty cycleなんですが、
> 1μs on, 25μs offとか、2μs on, 24μs offとかにすると、多分受信は出来、
> 出力を下げたのと同じ効果があるんじゃないかと思います。
>
> 4 MHzでは、苦しいとかいっていたのに、いきなり2MHzでも大丈夫に変わった
> のは、公開中のものは13μsごとに割り込んでいますが、26μs毎の割り込み
> にして、割り込みの最初で、led onにし、割り込みから抜ける前にoffにすれば
> okな事に気付いたんです。

コードをまだ、よく読んでいないので気が付きませんでしたが、On/Offするため
に2度イントラプトを使っていたわけなんですね。 (そういえばフラグ用の変数が
有ったような ...)

 一度のイントラプトで、On/Offをコードの実行スピードと調整しながら行うことが
できて、4MHz でも出来るのはうれしいですよね。
 
 しかし、イントラプトを使わないでだらだらと流す方法を試してみたいなーと思っています。
 でも、最近、根性がないから、mac さんが、4MHzで作られたら、その回路そのまま
使わせていただきそうな気配が濃厚です。 (^^)

[307] Re^2: 38kHz変調のインタラプト処理 投稿者:JinSato 投稿日:2000/05/16(Tue) 13:12
> 連続して送ろうとすると、charを送信していないときでも、
> 38kHzキャリアーを出す必要があるので、
> Interrupt drivenになっちゃいますね。

はじめは、単純に PICの中で 無限ループを作ってなんて、甘いこと考えています。
そうすれば、初めは割り込みも不要かな?なんて。

> > しかし、38kHz のメッセージも受けたいと思うと、PICを 4Mhzで動かすと無理かどうか
> > まだ、検討できる段階にきていないのが、現時点です。
>
> 受けは、IR receiverがやってくれるんで、38kHzでなく、
> base bandの2400bpsで十分です。

ほ、そうか、それだと楽勝ですねー。

> いしかわさんのポケステプログラムだと、
> Receiverにその機能がないので大変なことになってますが (^^;

そうだったんだ-、 石川さん、ご苦労様です。 (IR MonitorもDLしました、いいですねーあれ)

> > AVRのレジスターを見ていると、PICをやめてAVRにしようかな〜〜〜なんて思って
> > しまいたくなりますねー。
>
> 16F84でなくって、もうちょっと高性能なPICでも良いんですがね。

16F84は FLASH なのがいいですよねー。 高機能なものも FLASH ならいいのになー。

> PICとSX Writerは買ってきたんですが、AVRはもってなかったりします (^^;
> せっかくだから、みんなでそれぞれ別のいろんなchipに実装したほうが面白いかと思って、ははは。

いろいろな石で、RCXのメッセージを出せるようにしておけば、今後が楽ですよね。
自分も頑張らなきゃ-。

[310] Re^3: 38kHz変調のインタラプト処理 投稿者:ななしの 投稿日:2000/05/16(Tue) 15:34 <URL>
> 16F84は FLASH なのがいいですよねー。 高機能なものも FLASH ならいいのになー。

多ピン、多容量のものならPIC16F877ってのがあります。
それと高速なものならmacさんもおっしゃってたPICとバイナリ互換品のSXですね。SXは全品種FLASHで、パイプライン処理化で1クロックで1命令を実行でき、動作クロックも50MHzあります。

[311] Re^4: 38kHz変調のインタラプト処理 投稿者:JinSato 投稿日:2000/05/17(Wed) 02:02
ななしの さんへ

> 多ピン、多容量のものならPIC16F877ってのがあります。

お〜、情報有難うございます。
これも、ふらっしゆなんですねー。 いつか使ってみたいです。
A/Dつきのも使ってみたいですね。 (はやくそのレベルに行きたいな〜)

> それと高速なものならmacさんもおっしゃってたPICとバイナリ互換品のSXですね。SXは
> 全品種FLASHで、パイプライン処理化で1クロックで1命令を実行でき、動作クロックも50MHzあります。

SXの名前は時々聞いていたのですが、全部FLASH なんですか。
それに、クロックスピードも速いんですねー。 こちらもいつか、使ってみたいなー。