« 2017年8月 | トップページ | 2017年10月 »

2017年9月

2017年9月30日 (土)

テストボード

先のタイマーテスト、マウスの基板そのものでは小さすぎてテストがしづらい(プローブがあてづらい)ので、動作確認はF3テストボードで実施。

170930

前々から欲しかったものを実装。
やっぱり便利だ。

秋月C基板に、ミニブレッドボードと一緒に、F1の頃から愛用している、
いつものSTM32ボードを搭載。

ブレッドボードに乗せられるCPU基板はよくあるけど、
ピンを引き出す関係で、大きくなりがちで、CPUボードが大きければ、
それを乗せるブレッドボードも大きくなって、全体を持ち歩くのは面倒だ。

割り切って、ジャンパーピンでの配線とすると、なかなかいい感じに収まった。

許容DC入力は3.5くらい~16Vで、USBでも12Vでも動かせる。
USBでCPUやシリアルデバイスを直接つないでしまうと、これが意外と不便だったりするので、こうなっている。

オシロスコープやテスターの接続も安定して、よい感じ。

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

2017年9月29日 (金)

タイマー設定完了

TIM15には、萌え(MOE)ビットがあって、これを立てないと出力が出ないとか。
プレロードイネーブルビットは、PWMモードの時は立ててはいけないとか。
細々したところで、ちょっと悩んだり。

左右のPWM、位相を合わせたいので、左側担当のTIM4もTIM2のスレーブに設定。
TIM2がマスタで、TIM15とTIM4がスレーブ。
バラバラのOCから、すべて同期した多相PWM波形が出るところまで確認。

同期してなくても大丈夫かもしれないけど、昔から複数のPWMを使うときは
謎の挙動回避のために、クロックを同期させる、ってのがある。
念のため、同期させておく。

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

2017年9月27日 (水)

DRV8836

目的の動作をさせようとすると、PH/EN動作ではダメで、IN/IN動作を使わないといけないことに今更気づいた。
なんてことだ。
モードピンは、PULLDOWNされているから、パターンカットすればokだが、PWMが全然足りない...と思ったら、F303に換装していたのだった。
L433のままだったら、確実にアウトだったな。

データシートをひっくり返して、成り立つか検討。
TIM15をTIM2のスレーブとして動作させれば、なんとかなりそう、かも。
モードピンのカットだけで、ハードをいじらず実現できそうだ。

しかし、よくもまあ、ここまで複雑な設定ができる(想定されている)もんだ。
エンコーダ用の位相係数モード以外でのタイマーのスレーブモードって、初めて使う気がするな。

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

2017年9月23日 (土)

進捗

ぼちぼちと作業
I2Cを起動して、ジャイロが読めるのを確認。

プロセッサが予定と変わったので、なるべく低消費電流になるように、
デバイスも使わないときは、ペリフェラルごと停止するようにする。
個々のペリフェラルは、せいぜい0.1mAくらいのもんだけど、
CPU全体の消費電流は3mAくらいになるはずなので、まあ誤差というほどではない。
損はないし、色々ノウハウにもなるだろう。

------

170923

部品が届いていた。
0402メトリックのCR各種。
もうこれ、とんでもないな...

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

2017年9月20日 (水)

プランB

どうにも行き詰った感があるので、別案のバックアップに切り替える。
マニュアルをひっくり返したり、エラッタを探したりしたんだけど、この奇妙な症状は訳が分からない。

残念だけど、マイコンを換装する。使い慣れたSTM32F303へ。
ほぼピン互換なので、回路的には何もしなくても置き換え可能だ。

ペリフェラルは断然F3の方が多いので、タイマーなんかはL4よりもいい配置で使える。
Flash書き込みも純正ツールが使えるし。
張り替え作業すると、すぐに起動。

ただし、ADC周りは大幅に違うので、いろいろ手直し。
ADC設定そのままで使えるチャンネルのみ確認して、ひとまず今日は終了。

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

2017年9月19日 (火)

ADC

淡々と進める...つもりが、ADCで引っかかてしまい、進まなくなってしまった。
変換動作はしているっぽい(変換終了とかのフラグは立つ)が、レジスタを読みに行っても、オール0のままだ...
で、読み込むとフラグも読み込み済みになるので、読み込むレジスタを間違えているわけではなさそうだ。

うーん、嵌ったか...

stm32でADCではまったことはなかったんだが、油断したか。
しかし何とかしないと、先に進まない。

------

ところで、今回、0603メトリックのCRを使ってみた感じだけど。
全く問題なく、実装できることが分かった。
ちょっとピンセットでつかみづらいくらい。

どうも食わず嫌いだったようだ。
以前、1005パッケージで苦労した辺りの記憶で、苦手意識になってたのかも。、

この分なら、さらに小さい0402メトリックも問題なく使えそうだ。
次回はこっちだな。

0603は、0.5mmピッチや0.65mmピッチの フラットパッケージとの相性もいいことが分かったし。
多分、0402はもっと相性が良くなりそう。

こうなってくると、ボトルネックは、プリント基板そのものになってくる。
趣味で使えるような値段の基板屋は、6mil辺りが設計の相場だけど。
このサイズの部品を効率よく使うためには、4milくらいの設計ルールと、ブラインドビアが欲しくなってくる。

しかし、マウスの基板のスタイルにマッチするかというと、なんだか微妙。

古来の電子工作的アプローチの出番かもしれない。
それならそれで楽しそうだ。

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

2017年9月18日 (月)

進捗

ぽっかりと空いてしまったので、ぼちぼちと進める。
基本的なインターフェースを実装している。

割り込みok。USART動いた。タイマーも設定通り動いているようだ。

USARTは、またしても、これでもかというくらい機能が追加されている。
F4に対しても、かなり増えている。
32ビットのコンフィグレーションレジスタ3個のビットが、ほぼ埋まっている。
ざっと把握するだけでも大変だ。

ADCが動かないな。
あと、いくら4MHzで動いているとはいえ、ちょっと遅い気がする。
クロック設定を見直すかな。

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

2017年9月17日 (日)

メインボードテスト

一通り部品を付け終わったので、できるところからテスト。

反射光センサは今回初の組み合わせ。
この方面は部品のサイクルが速くて、新作のために探す度に新しいのが見つかる。
今回は、APDA3020SECKとPT26-21Cなんてのを選んでみた。

とりあえず実装して動かしてみると、ハーフに使う分にはそのまま使えそうかな?
ただし、ちょっと癖があるな。

------

以前、pi:coのエキシビション杯があった時に、試走担当からの技術系プレゼンがあった。
その中で、こじまさんの反射光センサの話。
環境光の量によってセンサの出力が影響を受ける、との発表があった。
明るい環境の方が、センサ出力が大きくなる(早く立ち上がる)とのこと。
これがずっと気になっていた。

今回の組み合わせだと、いままで経験したことが無いくらいに、この傾向が出る。

------

色々波形を見て感じたのが、おそらくフォトトランジスタの特性だろうな、という事。

フォトトランジスタもトランジスタであるので、感度よく素早く動作させるためには、
バイアス電流を流したい。(A級動作させたい)

でも、フォトトランジスタは、どうやってバイアスを掛ける?
昔の自分のマウスの回路だと、ベース端子付きフォトトランジスタ(TPS604とか)を使っていたので、程よいところにバイアスをかけて使っていたのだけれど。
ベース端子が無いと、バイアスも入力光で掛けるしかない。

で、あまりにも暗い環境だと、反射光の一部がバイアス分にまわってしまい、最終的なセンサ出力が下がってしまうようだ。

なので、この影響をなくすためには、バイアス用に小さな発光素子を受光部に向けておいて、適正なバイアスになるように、常時発光させておけばいいように思う。

...まあ普通はベース端子付きフォトトランジスタか、フォトダイオードをつかって、
電気的に回避するのが筋だと思うけど。

環境光がどの程度あるかは、発光前に計測する差分用のデータからわかるので、ソフトウエアで補正すれば実用になるような気がする。

ただし、実際の走行環境で使用に耐えるかどうかは、まだこれから。

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

2017年9月16日 (土)

締め切り

本業が佳境、というか自分の分担が予定外のトラブルで、久しぶりに朝まで仕事。
結局分からず、ちょっと仮眠して見直したら、回路の見落としだった。
再現性はあるんだけど、挙動からは推測が難しくてあせった...

で、予定に間に合わせたんだけど、本体の方が(予定通り)遅延で、早くとも再来週以降とか。開けといた予定、どうすんの?

まあ、何となくみんなわかっているんだけど、良くないよな。

------

これだけ本体の締め切り破りが常態化していると、みんなマヒしてしまって、
どうせ間に合わない、と思うようになる。

いくら締め切り死守、とか号令掛けたところで、見た目は立派なそもそもの計画が、実際は穴だらけで、かつ、遅延の事実を当日まで認めないのは、モラルの低下が著しい。

こっちはまあ、今更どうこう言うわけでなく、まあ淡々とやるだけだけど、
新人とか若手には悪影響大きいよなあ。

合理的?な言い訳が用意してあっても、人の気持ちは萎えるものだろ?
組織的には仕方が無かった、と言わせてもなあ。

こんなんで進めるなら、なにかと感情的なしこりが残る身内じゃなくて、
金銭で清算?できる外注に頼めばいいのにな、と思う。

------

せめて予定通りに進んでない、って認めてくれれば、余暇とかも含めて、もっと有効に時間を使えるんだけどなあ...
見た目は綺麗な予定表が、実際は穴だらけってのは、管理的には認めるわけにはいかんのだろうなあ。

まあ、すべて含めて本業だから、仕方ないんだけどな 笑

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

2017年9月12日 (火)

書き込み応答

ひとまず、目的のメインボードでも、フラッシュ書き込み出来ることを確認。

170912

インターフェースが何もない...
コネクタは、JSTのSHだけど、ボードに対してずいぶん大きい。
なんとかしたいけど、こういう所を攻めすぎると、運用ではまるのは間違いない。

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

2017年9月 7日 (木)

STM32L433 続き

ちゃんと測ってみると、4MHzの内蔵MSIでの動作時で、960uAとなった。
まだほとんどのペリフェラルが止まったままだとは言え、これはいいかんじだ。

ちなみに、232cコンバーターあたりだと、省電力の物でも 3mAほどは消費する。

------

ペリフェラルの初期設定をちまちまとやっている。
なにはともあれ、クロック回りと省電力設定をやり切っておかないと、ぜんぜん見当違いの事をやってました、となりかねない。

今度もまた、ずいぶん目新しい機能が追加されている。

以前使っていたstm32l151は、電源端子とVbatが分離していなかった。
駆動用のバッテリ交換をすると、バックアップドメインもクリアされてしまっていたが、
L433は、独立したピンでいい感じだ。

さらに新機能として、レジスタの設定で、電源ピンからVbatピンへ電流を流せるようだ。
Vbatにつながっているバッテリを、充電するための機能だそうだ。
しかも、そのラインの抵抗値が、1.5KΩと5kΩから選べるらしい。

2つあるSRAMのうち、アドレス上位のSRAM2は、スタンバイモードでも
メイン電源の一部を使って、バックアップ可能の様だ。
Vbat配下の、バックアップドメインの、バックアップレジスタとは別にだ。

あと、ポートのプルアップダウン設定が、GPIOからパワーコントロール機能に移動している。
設定が、スタンバイモードに入っても、保持されるようになった。
これはべんりだ。

他にも、たくさんありそうだが、順番にチェック中。

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

2017年9月 6日 (水)

STM32L433

4MHzで起動しているんだけど、今の手元の環境でちょっと測ってみたら、消費電流が0mAと出てしまう...

...これはいい感じだ。

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

stm32書き込みツール 完

以前、stm32f2を初めてマウスに使おうとした時も、書き込みツールが対応してなくて
結局自分でwinアプリを作ったはず。
あの頃からすると、ずいぶんブートローダーもバージョンが上がっているようで。
改めてアプリケーションノートを見てみたりすると、基本コマンドは1バイトで、あとはデータだけとか、まあシンプルなもんだ。

------

時間がもったいないので、あれこれ考えず、がりがり実装する。
いろんなものは、もう決め打ちで。
超特急で実装してテスト。

うーむ。
3回に2回は、失敗したりフリーズしたりするけど。
用意した割り込み入りのテストコードが走った。

シーケンスが終了すれば、ちゃんと書き込めては居るようだ。
よし、これでok。先に進む。

まあ、そのうち公式が対応するでしょう...
試しに、stm32f405のテストボードでも試してみると、こっちもちゃんと書ける。

------

公式のアップデートは2年近く無いし、まあ自分用に作ってもいいかも。
某所のpythonツールで十分なんだけど、手元に環境が無いんだよなあ...

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

2017年9月 5日 (火)

STM32L433

CPUボードをはんだ付けして、ヘッダーファイルを用意して、プロジェクトを作って、
コンパイルが通るようにして、オブジェクトが出来るところまできた。

さて書こうと思ったら、まさかのFLASH WRITER未対応。
STM32L4x6は対応しているのに。なんてことだ。

パラメータファイルの追加の方法がわからん...
しょうがないから、自力でライタ書くか?

こんなことばかりやってる気がする。

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

2017年9月 3日 (日)

実験基板

昨今の極小部品を載せた基板で、あとから回路の仕様変更or追加ができるようにする、
ってのは、うまく機能させるのはなかなか難しいですね。

基板がある程度大きければ、ユニバーサル部分をつくっておいて、追加回路はそこに積み上げる感じですか。
ユニバーサル部分があれば、チップ部品も結構行けますしね。

キモになりそうな回路のポイントは、テストパッド代わりに、ユニバーサル部分の外周に出しておいたりとか。
ユニバーサル部分を、元基板の両端に作っておいて、両側にピンヘッダーを付け、
2階建てにするとかですね...

仕様が決まってから、回路設計や基板設計をしたいのですが、ままならぬことが多くて。

(不本意ながら)こんなものを作っておくと、助かったりしています(自分が)
DIPの部品ストックも欠かせません。

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

IR LED

IR LEDは普通パルス点灯なので、100mAはピークですよね。
駆動回路は、BasicMouseのセンサ回路相当でよいのでは。

3.3Vあれば、100mAピークはイケそうに思いますが。

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

2017年9月 2日 (土)

ラインドライバ

そういえば大昔。ラインドライバが簡単に選べなかった頃は、CMOSロジックゲートを
いくつかパラに接続して、必要なドライブ能力を確保したりしてましたね。

LV541なんかを4パラで使うと、まあ、そこそこの能力と、スピードが確保できました。

今だと、74LVC3G17GFあたりを3パラで使えば、100mAには届きませんが、
まあまあいけるんじゃないんでしょうか。

CMOSゲートなら、パラ接続問題ないですし、
モータードライバーでもよければですが、動作速度は数段早いです。

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

過去課題

勢いでビューワーを作ったので、色々見ている。

これは、時間の都合とかで、一度も実物を見たことは無いのだけれど。
改めて見てみると

170901b

これはひどいな...
マウスはともかく、人間のほうが折れそうだ。

なかなか効果的に思える。

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

バッフア

アナログではなく、デジタルでしたか。

この出力では、ラインドライバと言われているもの
になるとおもいますが、
信号ラインはインピーダンスが規定されていて、
電源電圧が低いと、どのみち電流流せないので、
部品として存在しないのでは。

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

低電圧 高出力 バッファ

TLV4111とかでは、使えないですかね?

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

« 2017年8月 | トップページ | 2017年10月 »