空中配線など
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
STM32L443のドキュメントを、つらつら読んでいると、SRAMは常にノーウエイトアクセスとある。
あれ。じゃあ、クロックが高くなると、FLASHよりもSRAMの方に
コードを置いて実行した方が速いのか?
さっそく実行してみる。
簡単な時間待ちforループだけの関数を作り、
SRAM上に配置したものと、FLASH上に配置したもので、速度比較する。
SRAM上に関数単位で実行コードを配置する方法は、
このブログの、15年ころの記事にまとめてある。
自分で書いたものを参考にテストコードを書く。
------
あれ?4ウエイトサイクルも入るFLASHの方が、
0ウエイトのSRAMよりもかなり速いな。
これはあれだ...試しにプリフェッチと、キャッシュを止めてみると、
今度はSRAMの方が相当速い。
FLASHはウエイトが多くても、この程度の小さな関数では
プリフェッチと読み込みバス幅の恩恵が大きくて、取り返せているようだ。
キャッシュが効かないような大きな関数とか、(チップ的に)
大量のデータにアクセスしない限りは、FLASH優位なのか。
マウスの最短経路解析処理くらいの規模では、どっちが速くなるのか。
実際にやってみて、メリットがあるようであれば、
SRAM上でコード実行を検討しよう。
------
STM32F303では、さらに早いCCMなんてものが実装されているのだが。
こっちでは実装されてない処を見ると、いまいちだったのか、
燃費が悪くて、見送られたのか。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
磁気エンコーダー用の磁石も取り付け仮組み。
磁石とモーターのカンとの影響を見る。
やっぱりある程度の影響はあるなあ。
トルク的には十分小さいと思っていたんだけど、
マウスの姿勢を乱すには十分なようだ。
磁石を小さいものに換装するか、
あるいは磁石の位置をもとにモーター電流で補償するか。
来週中には、久しぶりにボードに通電して、
モーターを回してみたいのだが。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
長らく、機能が第一義の物を扱っていたのだが。
最近は、品質一義のものを扱うようになって、
ちょっと面食らったりしている。
どうも端的に、品質、と言われるものには、性能や機能、
といった側面が少ない、あるいは含まれていないようだ。
------
仕上がりの傷一つない綺麗さとかは求めるんだけど、
そもそもの性能とか機能が十分か、
ってのは誰も担保してないよなあ、ともやもやする。
極論すると、ピッカピカなんだけど、役に立たない物、
を総出で作り上げてしまう状況が在っても、回避できない。
その道のプロ相手だと、性能が足りてない、中身の
完成度が低い物ってのは、見向きもされないもんだけど。
いわゆる、一般の”お客様”相手だと、こんな感じなのか、
とちょっと驚いている。
本当に”お客様”って、見た目がほとんどなのか?と疑う気も
起きるんだけど、実際そういうものなのかもしれない。
------
”品質”という日本語から受ける印象からは
乖離があるようにも思うんだけど、
一般向けの物はそういうもんなのかなあ...
当たり外れのないものを作るってのは、分かるんだけど
そもそも全部外れの場合、どうするんだろう。
このあたりが、日本の製造業、ってものなのかもしれない。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
煮詰まっている人が多いようなので。
生き方として、世間では古い?とされている、ステレオタイプなものに沿ってみるのも一つ。
例えば、古来、詰め込み教育は~、とか師弟制度は~などと言われるけど、皮肉にも
そういう方法が一番効率良かったりする。
本人は納得いかないかもしれないけど、実際効率いいんだから仕方ないw
------
というわけで、人生迷ったら、すぱっと切り替えて
食い扶持を自分で稼ぐ
配偶者を持つ
子供を育てる
の3つをおすすめしたい。
------
四の五の言わずにやってみると、後からじわじわくるよ。
実際やってみて、実に?効率いいのも分かった。
これは言葉を積んでも伝わらない自信?もある。
もちろん全部じゃなくてもいいけど、セットお勧め。
------
世間?では、多彩な生き方~なんて言っているけど、
本当に多彩な生き方をするには、ちょっと普通では
支払えないようなコストがかかるし、それは誰も口にしないし。
宣伝文句を真に受けると、大変だよ?
あと、最近のなんとかネームじゃないけど、当人は多彩なつもりが、
学校のクラス程度の人数で、名前がかぶりまくっていたりする。
個々の人間が考える(ているつもりの)ことの限界がこの辺り。
賢者か愚者か分からないけれど、長年の社会的な知恵に
頼るのも悪くは無いんじゃないかな、と思う。
というか、こういう大事なことって、今誰も教えてくれないんじゃないかなあ...
皆、自力で見つけてるのかな。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
余計なことかもしれませんが...
・翼端板が無いと、圧力が翼の横から逃げて行ってしまいます。
・本来は路面も、風と同じ速度で動いています。
位でしょうか。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
磁気エンコーダーが人気で、皆使っている訳なんだけど。
使い方が難しいとか、精度が悪いとか言われてて、
ちょっと磁気エンコーダICの名誉を回復したい気になっている。
マウスでの使かわれ方が、そもそもかなり怪しい気がするし、
分かってやっているならともかく、わからず使ってて、補正をしてー、
とかだと、何をやってるのやら、と言う感じだ。
そもそも、磁気エンコーダーICが測っているのは、
磁石の角度なんかじゃなくて、ICが置かれている場所の磁界の向きだ。
原理から考えても、ICは複数の素子を内包していて、
差動で向きをとらえてるので、ICの置かれている磁界が均一でないと、
正しく動作しないのは自明。
なので、やるべきは、均一な磁界中にICを置くことだ。
安直には、ICをなるべく磁石の近くに置くとか、大きい磁石を使う、
(要するに磁界が均一になっているとみなせる位置にICを置く)ってのが考えられる。
磁界を作っているN極とS極同士の位置が近すぎると、検出がシビアだ。
結局は、磁気回路を考えてイメージして、配置できるかにかかっていると思う。
ありがちだけど、不要に小さい磁石を使ったり、磁石以外の
強磁性体が近くに配置されたりすると、IC近傍や内部の磁界の
勾配がいびつになって、結果角度の検出が怪しいことになる。
それを後からいくら補正しようとしたところで、再現性を含め、
怪しくなることは容易に想像できようものだ。
------
翻って、うまく均一な磁界でICを覆えれば、
まだまだ綺麗な角度が検出できるのだが。
磁気エンコーダーICは、まだ人類には早すぎるのかもしれない。
というか、すでに、脱磁気エンコーダーICの気分ではあるのだけど。
おそらく、マウスの進化の過程において、磁気を含む、
エンコーダーからの脱却が必要なんじゃないか、と思ってもいる。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
気を取り直して、移動の新幹線のなかでデバッグ
ADCのリザルトレジスタは、なんだか良く分からないけど、正常に戻った。
端子をオープンにしていたのがまずかったのか?
------
L433は、クロックの切り替えが多彩に出来て、マウス的にも期待が持てる。
待機状態では、MSIで4MHz+スリープ
走行中は、HSIで16MHz動作
経路解析はセンサやデバイスを全部止めて、PLLの80MHz動作で。
オーバークロックも100MHzくらいまでならいけるかも...
ダイナミックに使い分ければ、バッテリの容量もぎりぎりまで詰められるような気がしている。
と、いうか必須になってくるんじゃないかと思う。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
今週は、今までになかったほどの大荒れだった。
まあ、開き直って寝技でねばる。
気が付くと、もう週末で、なにも趣味活動できていない。
今週末も自宅なので、活動予定なし。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
ハーフをちまちまと作っているのだけど、
実際には、クラシックの現行機が
有ったりするのだった。
組み上げはしたんだけど、主に公的な都合
(生活環境の変化とか)で、
探査走行程度までしか進んでない。
そうこうしてるうちに、本格的に忙しく
なったのと、なりゆきで大会関連の
ハーフのことをやるようになったりした。
ハーフは試作ばかりで、本格的には
やったことがなく、
感覚的によく分からないところもある。
こういう感覚を身に付けるには、
やってみないことには始まらない。
で、大会に出られるレベルを念頭に、
まずは環境整備から、ということで現在進行中。
あおりで、現行機は放ったらかしになってるけれど。
改めて見ても、バックラッシが大きすぎるのと
車高が低すぎることが気になるくらいで、
調整し直せば、これで十分やれそうな気もする。
仕込んだネタも回収してないし、これも
部品いくつか直して、走らせるべきだよなあ。
性能を見極めるところまで行きたいのと、
実は予想とは逆に振れるんじゃないか、
という疑念に決着を着けたいのだが。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
貼り替えてしまった、stm32l433。
チップに問題があるわけではないので、いつものCPUボードに
貼りなおして評価している。
ADCがどうにも動かなかった件。
ADCのコントロールビットの一つに、ディープスリープビットが追加されている。
しかもデフォルトでは、スリープ状態になっているのを発見。
ここの記述を追加修正したら、レジスタに値が入るようになった。
出来た、と思ったら、変換結果が、0~3.3V(AVcc)で、
0xF800~0x07FFとなる。
シングルエンドなのになんでマイナス?しかも12ビットのはずなのになあ。
と、リファレンスをよく読むと、DRレジスタは16ビットなんだけど、
変換結果は符号付き12ビットとある。
シングルエンドなのに、符号付?
なんじゃそりゃ。
符号付き自体は譲るとしても、なにが基準なんだろう?1/2AVccなのか?
ちょっと混乱している。
もっとよく読まないとだめなのか。
まあ、結果を合わせるだけなら、0x800足せばいいんだけど。
なんか釈然としない。
------
CPUは復活の道が開けたけど、マウスのボードは、F303で組んでしまって、
基板には、樹脂パーツも接着している。
ここから貼りかえるのは大変だし、そもそもL433ではタイマーの
チャンネルが足りない。
ひとまずF303でくみ上げて、L433はボードを再設計してからかな。
懸案がクリアできてよかった。
| 固定リンク | 0
| コメント (0)
| トラックバック (0)
最近のコメント