« 2013年4月 | トップページ | 2013年6月 »

2013年5月

2013年5月22日 (水)

言葉

うちでは家族皆、出身地と育った環境がばらばらなので、家庭内の会話はもっぱら標準語なのだが。

たまに地元の言葉が分からなくて、通訳してもらったりとか。

いかーる とか、いわった とか、音が省略されすぎていてわからねー。
ら抜き言葉なんて、かわいいもんだ。
そもそも、ニュアンス以前に、意味が分からない。

------

よく言われることだけど、田舎の言葉は、微妙なニュアンスが伝わりやすい。

広島の言葉で、大変とか面倒くさいと言った意味のことばで、いたしぃ、というのがある。
(アクセントは、た)
有名どころで言うと、中部地方で使う、えらい、と近そうだけど、ちょっとニュアンスが違うような。
もうちょっとこう、居心地が悪いとか、困った、の意味もあるなあ...とか、色々家族に説明しても聞いたことない、とのこと。

まあ、そりゃそうだ。

------

突然、なんか使いどころと意味が分かった、とか言う。
そう?

昔の映画、仁義なき戦いの中のセリフで、不味いことをしでかした相手に、”いたしぃ事をしてくれたのぉ”ってのがあったらしい。

これか!、とピンときたそうな。

ああ、それそれ、そういうニュアンスだよ 笑、

| | コメント (0) | トラックバック (0)

2013年5月20日 (月)

I2C続き(完)

秋月の圧力センサも取り付けたので、I2C経由でデータを取得してみる。

130520

ちょっとはまったけど、余分なフラグを立てているのが原因だった。
それ以外は、概ねシンプルに動かせているようだ。

今まで使った中では、もっとも素直に動いているかな?
とりあえずI2Cは、ここまで動けば十分。

| | コメント (0) | トラックバック (0)

2013年5月19日 (日)

I2C

引き続きF3作業 次はI2Cを動かしてみる。

例に漏れず、I2Cも、F103やL151から変更されているようだ。

リファレンスマニュアルを読む。
レジスタはそんなに増えていないか、と思ったら、16ビットだったコンフィギュレーションレジスタが軒並み32ビットに増築されている。

あまり見たことないような設定パラメータが増えている。うーん...これは。

------

いろいろなチップでI2C関連を触るのだけれど、どのペリフェラルもしっくり来たものがなくて、なにかしら気持ち悪い。

アドレスを送信した後の、リスタートの部分の処理とか。

もともとI2Cは、スレーブ(通信相手)をアドレスで管理するつもりは無かったんじゃないかな、と思ったりする。

------

F3は、転送するデータの個数を、予めレジスタに設定しておくと、転送終了後に自動でストップコンディションを発行してくれる機能があるようだ。
これはありがたい...

とりあえず、秋月の新商品の小型LCDは動くようになった。

130519

なかなか小さくて薄いし、いい感じ。
ピンが1.5mmピッチなので、ユニバーサル基板に付けるのは、ちょっと強引だけど。

| | コメント (0) | トラックバック (0)

2013年5月18日 (土)

今日のF3

とりあえず、色々と動き始めては居るのだけれど。
strtokとsscanfが動かないとか、FPUが動かないとか、うまく行かないところも色々。

------

一応sbrk()も、ちゃんと実装しているんだけど、そもそも呼ばれている様子が無さそう?

ほかのstr関連や、sprintfなんかは、問題なく動くので、そういう問題(ワークメモリ)ではないのか?

浮動小数点演算は、ソフトウエアエミュレーションでは正しく動いているようだけど、コンパイラスイッチで、FPUに切り替えるとダメだ。
あれこれ検索して、思い当たるところは手を入れているんだが...

まあ、ロボットにどうしても必要、って訳じゃないので、このまま進めてもいいんだけど。

------

USARTとかも、レジスタがちょこちょこ変わってる(F103とも、F200とも違う)し、細かく見ていかないといけない。

| | コメント (0) | トラックバック (0)

2013年5月15日 (水)

stm32f373 続き

今日は、休みを取って、色々雑用を済ませる。
税金払ったりとか。

午後からはf3の続き。

------

マニュアルを読むと、内蔵クロックは8MHzとある。
PLLのソースに使う場合は1/2になるとか、PLLの逓倍はx16までとか。

ということは、内蔵OSCでは、64MHzまでしか設定できないのか。
このあたりは、F103と同じ状況のようだ。
ふむ。

------

もともとは、F103を想定した基板をベースにしているので、12MHzの発振子が付いている。
HSEとPLLを設定して、72MHzでの動作はok。

ついでにいつもの、オーバークロックを試す。

特に何もせずとも、144MHz設定でも起動する。
MCOピンからも150MHzあたりの信号が出ているので、正しく動いてはいるようだ。

チップ全体としては72MHz動作で保障されているんだろうけど、コアはCortex-M4だし、かなり余裕はあるんだろうなあ。

------

しばらく動かしたままにしておくと、チップが温まってくるのがわかる。
stm32では、なかなか経験がないな。

流石に常用は無理かな。

| | コメント (0) | トラックバック (0)

2013年5月14日 (火)

stm32f373

ここのところは、少しばかり余裕が出来てきたので、長らく放置していたstm32f300。
いつもの基板に貼り付け、では無くて新規製作の基板。

130514

F103と比べると、色々変わっているので専用基板を用意。
ちょっとの見た目では区別が付かないが。

------

手抜きコードをでっち上げ、LEDチカチカは動くのを確認。
どのくらい手抜きかと言うと、今システムクロックがいくらで動いているか分からないくらい。

クロック制御部分を初期設定していない。そもそも、マニュアルも読んでない。
多分...16MHzじゃないかなあ、多分。そんな気がする。

------

世間(マウス周辺)では、F4が流行のようだ。
個人的には48ピンパッケージを使いたいので、F3を選択。

超低消費電力のL151でもいいのだけど、クロックが32MHzまでなのと、内部バックアップを使うために、ちょいと仕掛けが必要なのがちょっとアレ。

現状F103で、そう不満は無いのだけど、F3が問題なく動くのなら、そっちをメインにしてもいいかな。

| | コメント (0) | トラックバック (0)

2013年5月12日 (日)

UARTの動作

なんだかずっとやってるネタなのだけれど...
UARTの受信について。

かなりノイズの乗ってくるシリアル信号を扱うのだけど。
送信側では、ノイズで失われる分を見越して、何度も同じデータパケットが送られてくるようになっている。
どれか一つでも上手く取れればokといった感じ。

これが、ソフトウエアで実装しているUARTで受ける分には、なんとか受信できていたのだけれど、ハードウエアUARTに切り替えると、さっぱり受信できなくなる。

ダミーの信号で受信動作をさせる分には、ソフトウエア実装でもハードウエア(ペリフェラル)実装でも、まったく問題ない。
なぜか、実際の信号を入れると、ペリフェラルではほとんど受信できなくなる。なぜだ?
UARTのRxに信号を入れるとダメだけれど、そのピンを入力ポートに設定して、インターバル割り込みでサンプリングして処理すると、ぽろぽろとデータが出てくる。
当然、ボーレートなどはそろえているんだけど...

物はいつものSTM32L151.
あれこれ調べても原因が良く分からない。

------

まあソフトウエアUARTならば、なんとか動くので、長らくほったらかしだったのだけれど。

あるときSTM32のリファレンスマニュアルを読んでいて気になる記述が。

USARTの受信は、16倍のオーバーサンプリングを行い、各ビットは8番目から10番目のクロックエッジでサンプリングされて、そのパターンが000か111でなければエラーとして処理されるとある。
エラー時には、受信割り込みは発生しない、とも。

しかもスタートビットのセンシングも、ただのエッジじゃなくて、結構厳しいビットパターンを使っているようだ。

...これっぽいなあ。
1パケットは20キャラクタくらいあるんだけれど、途中でエラーが出るとパケットごと破棄するから、ちょっとしたノイズで、全部ご破算になって、パケットが受信できないのかも。

ソフトウエアUARTは、スタートビットはただのエッジ検出だし、各ビットサンプリングも1回しかしないから、意外とうまくいっているのかな。
(実際の処理でのビットデータ化けは、もっと上位のレイヤーで処理するので、エラーが含まれていても受信できたことにはなる。)

------

そういえば、STM32でシステムを作る前には、LPC2000のCPUボードでテストしたんだけど、そのときは、普通にペリフェラルUARTで受信できていたような覚えが。
lpcは、STM32ほど、厳格なエラー検出をしてなかったんだろうなあ。

ちょっとこの方法で実装を試してみる。

となると、ソフトウエアUARTでも、複数サンプリングをして、エラーで弾くんじゃなくて多数決とかでレベルを決定するようにすれば、もっと受信できるパケットが増えるんじゃないかな。

------

STM32のUSARTなんて、分かってるつもりなので、いまさらちゃんとマニュアルを読むことも少ない。
目を通したとしても、各レジスタの説明くらいなので、すっかり見落としている。

高機能化する内蔵ペリフェラルだけれど、よくよく動作を検証しないと、思うとおりに動かせないなあ、と言う話。

| | コメント (0) | トラックバック (0)

2013年5月 3日 (金)

TTL ICのソース電流

昔のTTL ICの出力に、直接LEDを接続する話。
正確にはTTLじゃなくてN-MOSの話なのだけど、まあ細かいことはいいか。

------

ロジックICの出力にLEDを接続するときには、直列に電流制限抵抗を入れ、L出力で点灯するような回路にする。

出力電流が、シンク側は沢山流せて、ソース側は少ないから、ということでこうなっている。(C-MOSはどちらも同じだけ流せるので、どっちでも良い。TTLとかN-MOS限定)

大昔(高校生の頃)は、そういうものだ、と思っていたのだが...

------

大学の頃、とあるアルバイト先にて。
この話題になったとき、あっさりと否定されて面食らったことがある。

製品では、普通にH出力側で点灯するようにするよ、とのこと。

(電流の)スペックを満たしてないし、ICを壊すんじゃないですか?と言ってみたのだが。

内部構造を考えてみろ、と。

別に、0.4mA(スペック値)以上流しても、壊れないよ。
1mA流しても回路的には問題ない。
その時、出力電圧は、ロジックレベルを満たさなくなるけど、LEDつけるのが目的なら問題ない。
電流制限抵抗も不要で直結できるので、普通に使うよ、との事。

頭でっかちな自分にとっては、目から鱗だったけど、よくよく考えてみると、LEDを点灯するだけなら、そのときのロジックレベル(H出力:2.4V以上)にこだわる必要はない。
ICの内部回路的にも、0.4mAを流すと焼き切れてしまうわけでもなく、そもそもインピーダンスが高くて電流が取り出せないだけなのだから。

LED点けるなら、逆にちょうど良いわけだ。


一見、ダメっぽい印象なんだけど、よく考えるとちゃんと成立してて、感心してしまったり。

------

もっとも今時の、信頼性とか、設計基準とかの話であれば、また別かもしれない。
また周囲の理解が浅いと、余分な混乱を招いて、別のレベルの問題が出てきそうだけど。

いま思い返しても、学生時代でも、意外にも実戦的なことを学ぶ機会が多かった。

| | コメント (0) | トラックバック (0)

2013年5月 1日 (水)

連休とつれづれ

ひとやま過ぎて、ようやく4連休に入る。
ここ数日は、わりと平穏だった。

なんだか、見るからに素性の悪そうなものも控えているけれど、しばらくは見ない振りして休息の日々。

ロボット活動が遠い日々のようだ...

------

ちょっと前に電王戦が終わった。

プログラム側が勝ち越したのだけれど、終わった直後から、プログラム側は、リソースを制限すべしとの意見が多くて、へえ、と思った。

CPUは1個で、とか、電力は何W以下とか。
まあ、心情的に、なんとなく言いたいことは分かる気もするけど、これって大した意味を持たないよな...

コンピュータ将棋の世界は、分からないけれども。

フリーソースのものが沢山あるみたいだし、現状、汎用OSの上で、普通のアプリとして書かれているものなんだろう。

クラスタリングで高性能化できるらしい...ということは、本質的にはFPGAの上とかに、処理一式全部のせられてしまうのでは。
ものすごく消費電力が小さくて処理の早い、将棋専用プロセッサが出来るんじゃないかな....

これで戦う分には、異存は無いのかな?
コンピュータ将棋の本質とは関係なさそうだけど。

------

普段は、なかなか分からないけれど、こういったエポックメーキングな出来事のときには、ついつい皆の本音が出てきたりするものだ。

日常的な道具になったはずの”コンピュータ”だけど。
意外とみんな、アナクロというか、既成概念で捉えているんだなあ、とか。
色々感じるところもあったり。

| | コメント (0) | トラックバック (0)

« 2013年4月 | トップページ | 2013年6月 »