« 探し物 | トップページ | Kinetis »

2012年5月18日 (金)

解決(?)

解決策を求めて、STM32のマニュアルを眺める。

リファレンスマニュアルの770ページ。

引用

0.5 stop bit (reception in Smartcard mode): No sampling is done for 0.5 stop bit. As
a consequence, no framing error and no break frame can be detected when 0.5 stop bit
is selected.

ここまで

うーん、スマートカードモードに、って書いてあるけど、0.5ストップビットなのは送信時だけで、受信時はストップビットを見なくなるんじゃないかな?

内部ロジックを想像してみても、フレーミングエラーが出なくなる、ってのもそれっぽい。

------

思い立ったらテスト。

120518

送信側は、昔作ったLPC2129ボード。
7ビットパリティなしの設定でテキストデータを送信。
LPC2100なので、この設定での動作もできる。

受信側はいつものSTM32F103ボード、8ビットパリティなし、0.5ストップビット設定。

ざっと動かしてみる。
問題なく正しくデータが受け取れる。

------

要するに0.5ストップビット設定は、事実上0ストップビット(?)の設定か。

受信データのMSBは送信データのストップビットがサンプリングされるので、ロジック1固定となっている。
正しく(想像通りに)動作しているようだ。

データは、上位1ビットをマスクして、残り7ビットを使う。
フレーミングエラーがほしければ、自分でデータのビット7を監視すればよし。

で、データが連続していても8ビット目をサンプリングした時点で、受信側のシーケンサは初期値に戻り、すぐ次のスタートビットのエッジに同期することが出来ているようだ。
当たり前だけど、受信エラーの類も出てなくて、ごく普通に動作している。

めでたく(?)7ビットパリティなし(事実上)のデータ受信が可能になった。

これで、60KHzインターバル割り込みを廃止できるはず。

------

こういったものは、パズル的な要素、推測が楽しい。
電子工作の楽しみでもある。

stm32はこんな使い方もできる、と紹介するものでもないし、これについてオフィシャル(STとか)に投げて困らせるものでもない。
趣味でこそ、の楽しみ。
こんなの仕事とか宿題で使っちゃいけませんよ。

イザという時に、裏でごそごそやるために、ストックしておく....

------

それはそれとして、STM32F103とほぼ互換で低消費電力の、STM32F15xなんてチップも有るのに気づいた。

現状ただのリップルカウンタでしかないSTM32F103のRTCも、ちゃんとしたRTCにアップグレードされていて好印象。

このあたりのコンビネーションで、目標は達成できそうだ。


------

解決策というのは、たいてい足元に落ちているものだ。

| |

« 探し物 | トップページ | Kinetis »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 解決(?):

« 探し物 | トップページ | Kinetis »