2020年03月07日

STM32F303でのマスストレージクラスの認識

STM32F303でMSCクラスを認識させるテストをしてみた。

52469.jpg

回路設計の関連知識として手持ちのNuclro-144(STM32F303)を使ってストレージクラスをPCに認識させてみた。

例によってSTM32CubeMX様の力を拝借してコードは自動生成。
SDCの認識にはCubeMXが生成するMidleWareが必要でUSB_DEVICEの設定項目のプルダウンメニューからMSCを選ぶだけです。

CubemxのミドルウェアSDCの設定.jpg


生成したコードをビルドしてプログラムを走らせてもMSCとして認識されません。ホストに接続された時にコールバック関数が走りますから、STORAGE_Read_FS内でで、セクタのデータを要求される必要なデータを返してあげると認識される。

SDCで認識された.jpg


今回コールバック関数が走らないのでよく調べてみると、DP信号のプルアップの設定をポート(PG6)で‘H’を出力しておくことを忘れて半日潰しました(苦笑)。

データ信号線のプルアップで検出される.jpg


追加するコードはこのサイトを参考にして組込ました。

https://qiita.com/mt08/items/fcc925fa47726bfc6c74

画像では使用領域と空き領域が全部ゼロですが、これはFsの適正値を返していないのであとで遊びながら試してみます。

posted by Soki at 19:45| Comment(0) | デバイス調査

2019年12月19日

STM32の内部CR発振器について

ここ2〜3年ですが、STマイクロのマイコン採用率が非常に高い(1年前)のですが、前から気になることがあります。

基本的には内部のCRクロック回路で動くのですが、たまにクロックの発振周波数ズレが起きたりしてUARTでの通信の文字化けが・・・


51747.jpg

一年前にも「STM32F303」で115.2kで通信実験をしたところ、頻繁に文字化けがでたので、内部CR発振器の出力をピンにだしてみると明らかにズレていました。その時のズレは周波数補正レジスタを調整してバケの一番すくないセンターに合わせて無事やり過ごせました。
今回調査では「L542」で、HSIクロックを使用した場合、補正できる範囲を超えてデータバケは解消せず。
調べてみると、定格の発振周波数に16MHz対して観測されたのは13.7MHzととんでもない周波数でした。

こればチップのバグなのか、それとも設定ツールのバグなのか・・・、未だに原因はわかりませんが、MSIクロックがまぁまぁ精度良いので、それをベースにPLLで目的周波数にあげて使用したらUARTの文字化けは解消。


また、MSIはRTCの32KHzベースのクロックがあるときは、自動補正できるという優れもので±0.25%の精度になります。

ほかにも「F446」を調べてみたところ、このチップにおいてはHSIの発振周波数は定格の16.0MHzを確認、残りの「L053」と「F031」も時間のあるときに調べてみようと思います。


因みにATTINY13の内蔵CR発振回路の周波数補正はとんでもなく幅広く±30%位まで調整できましたが、STもその半分で良いからくらい幅取れると嬉しいのですけどね。


SYM32L452_HSIクロックがおかしい0(CubeMxのHSIのCALがダメ).jpg

HSIをPLLでにいれてシステムい供給した設定




SYM32L452_HSIクロックがおかしい1.jpg

MSIをPLLいいれてシステムに供給、MSIはRTCクロックで自動補正もできるので安心。



SYM32L452_HSIクロックがおかしい2.jpg

Cubemxによるクロック補正の設定


SYM32L452_HSIクロックがおかしい3.jpg

内部クロックはピンにだして測定できるのでありがたい。(ポートの設定はVeryHigh必須)


追記:その後STM32L053についてもHSIを引っ張り出して周波数をし食べたら16.1MHzと補正できる範囲内であった。

posted by Soki at 00:00| Comment(0) | デバイス調査

2014年05月13日

62Vまで入力可能な降圧DCDCコンバータ

小型で比較的高い入力電圧まで扱えるDCDCコンバータ(LT3990)の基板を作ったままでしたが、受注までまだ間が空きそうなので評価してみた。
31293m.jpg
このDCDCコンバータはダイオードも内蔵されているので、数個の抵抗、インダクタとコンデンサを追加するだけど動作するようです。負荷電流は300mA程度ですが、マイコン回路程度でしたら問題なく駆動できるので何かの役に立ちそう。

lt3990_1ピー.jpg
↑データシートの回路をそのまま忠実に基板に反映。


lt3990_2.jpg



↑5V入力時の負荷特性


lt3990_3.jpg

↑12V入力時の負荷特性

lt3990_4.jpg

↑18V入力時の負荷特性



lt3990_6.jpg
負荷の大きさと最低動作電圧

面倒なのはパッケージの裏側がGNDの放熱パッドになっていることでしょうか。
はんだごてを使って実装する場合は、クリームハンダを塗ってGND放熱パッドに熱が行き渡るような工夫が必要です。

posted by Soki at 00:00| Comment(0) | デバイス調査