2020年05月01日

プログラム書込用プローブ(ATTINY用)

以前に紹介したATTINY13用の書込プローブがやっと完成の域に達しました。

スペーサーをヒンジの代わり開閉機構を作ってましたが、開いたり挟んだりするたびにズレてしまってプローブピンの位置がずれてしまい使いずらかったのを改善。

基板に合わせた固定枠をつけると基板をセットするだけでプローブピンの先端と基板のコンタクトに合わせられるようになりました。

PGM_200425_0004.jpg

コンタクトはハーフピッチの6ピンヘッダ、ATTINY13-SOP8仕様、ATTINY10のSO23-6仕様のピン合わせたプローブを用意しています。

PGM_200425_0009.jpg

書込にはVDD電源が必要なので供給コネクタも用意してプローブとデバッガ、電源を用意するだけで書込可能になります。

通販主体での販売ですが、来年あたりのMakerFairでも販売できるように準備しています。

#ATTINY13 #ATTINY10 #Contact #プローブ#Probe #コンタクト
posted by Soki at 00:00| Comment(0) | 自社製品紹介

2020年03月25日

SEIKOEPSON RTC8654の評価

1年ほど前にお客さんから勧められて戴いたSEIKOEPSONが作っているRTC8654を評価してみました。
コントロールするCPUはSTM32L452のI2Cに接続し、アプリケーションマニュアルにしたがってアクセスしてみるとサクッと動きました。


RTC8654_2.jpg


このRTCには32.768khZのX'talが内蔵されていてとても使いやすいのが特徴です。
また、試作時も半田ごてで手付けが可能なので扱いやすいといえますが、この大きさの0.5mmピッチは半田つけするときに指で押さえるわけにも行かずちょと苦労します。

底面は透明になっていて32.768KHzの音叉の様なモノがみえるってそそられますね。

RTC8654_1.jpg


【追記】
更に小型化を望むならRX8130でしょうか。気をつけなければならないのはバックアップ電源の切替回路も内蔵されていてこの設定をしないと時計が止まってしまうというので注意が必要ですが、小型&回路のスマート化には良いでしょう。

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

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) | デバイス調査

2019年11月05日

ATTINY13A(SOP8)用の書込プローブ試作

ATTINY13A(SOP8)用の書込プローブを作ってみました。

IMGP0032m.jpg

      書込だけのためにコネクタを基板にスペースを設けて実装するのは無駄なので、テスト端子をつくってコンタクトプローブで接続出来る様になります。
IMGP0031m.jpg 



IMGP0029m.jpg 

まずは、MakerFairで自分で組み立てるキットでの販売で様子をみていから、完成品として販売も予定。



続きを読む
posted by Soki at 14:55| Comment(0) | 日記

2019年06月11日

組込用4-20mAアナログ送信ボード

絶縁型 電圧/4-20mA 組込用アナログ送信ボードを試作。


お客さんのとある装置の4-20mAインターフェースなのですが、事前に基板上に配置した変換器が予想外の変な動きをしているので基板上の回路をそのまま使うのをヤメ代代案の検討。

最初は組込用の市販ボードを探していたのですが、なかなか良いモノが見つからなかったので、改めで絶縁型の基板モジュールをオリジナルで設計・製作をしてみました。

43720.jpg

基本的な仕様は以下の通り。
入力:2.5/3.3/5.0V(VDD電圧2.5〜5.0の装置で動作可能)
出力:4(0V)〜20mA(VDD)
分解能:8ビット
(0.67V以下はアンプ切替にて10ビット位の等価分解能)
消費電力:5mA以下(VDD側)
出力側電源:10〜25V

基本回路は少々扱いが面倒といわれるTiのXTR115をベースに設計しています。現在は単純に8ビットの分解能のみですが、今後アンプ切替回路を搭載しソフト対応予定。

posted by Soki at 19:31| Comment(0) | 自社製品の開発

2019年06月05日

音声・オーディオ系の測定器のチェック

今日は時間の余裕ができたので、久しぶりに音声・オーディオ系の測定器のチェックです。

主な測定器はオーディオアナライザ、歪率計、低周波発振器でそれぞれが出力する信号を交互に測定してズレがどれくらいあるか確認するだけです。

61660846_2732232556849806_4932646751204016128_o.jpg


タマにしか使わないこれらの測定器は操作方法を忘れてしまったりするのでいざという時に使えるように操作の練習も兼ねています。

役立たないようで結構つかえるのが歪率計で、単純にACレベルメータとノッチフィルタのを組み合わせたモノですから、そうは壊れないですし、何かおかしいときは測定原理さえわかっていれば組み合わせながら精度の確認がとれるのでありがたい。
(オーディオアナライザは動作がおかしくても手も足もでませんのでそこで終わりです、笑)

最終的に一応校正確認(トレーサビリティの取れている測定器でとりあえず自分で比較)されたDMMでACレベルも確認を取れれば一安心となります。

今日確認では一応問題無い様でした。

posted by Soki at 13:07| Comment(0) | 設備

2018年11月24日

HALとCubeMxを使ったSTM32Fxxxの受信割り込み

HALとCubeMxを使ったSTM32Fxxxの受信割り込みの備忘録

33517.jpg

STM32Fをある仕事で使ってみたら慣れてくるととても使い易いのとマイコンの単価も比較的安いの他の仕事にも使おうかと評価してます。
ここで嵌ってしまったのが、受信割込のコード記述で、CubeMxで自動生成されたコードにHALライブラリを使ってどうするのか、Web上では情報がまだ少なく四苦八苦。

ちょっとメモでポイントをまとめてみた。

開発環境は、Atollic TrueSTUDIOレジスタードマーク for STM32 ver9
マイコンは、STM32F303を搭載したNucleo-144
基本的には、UARTの差ぐらいでどれを使ってもあまり変わらないみたい。

1.CubeMxを起動して新しいプロジェクトを作ると、マイコンまたはボード選択の画面になるので使用する使っているボードを選ぶ。
2.始めに144pinのマイコン画面(Pinout)がでるけど、既に自動設定されているのでそのまま。
3.次にConfigrationタブを選んで、有効になっているUART3(UART2のもある)をクリックして詳細の設定
4.ParameterSettingsで通信速度とか設定、NVICで割込をイネーブルにしておく。(重要)
5.最後にProject>Settingでプロジェクトネームを入力、Toolchain/IDEは"TrueSTUDIO"(←忘れる)にしておく。
6.最後にProject>Genarate Codeを実行すれば初期化のコードが全て自動生成される。

次に自動生成されたコートに受信割込処理を追加するが、念のため追加前に一回ビルドしてみる。(大抵は正常にビルドできてhexファイルが生成される)
CubeMxを使うとハードウェアの設定を変える時に、自分で追加したコードが勝手に上書きされないように作法(user codeのエリア)に従って書かねばならない。

1.割込待ち状態にする関数
割込を受け付けられるようにmain関数のイニシャル時(USER CODE BEGIN 2)にHALの割込処理を入れる。
HALライブラリの送信の確認のために、イニシャル時には5バイトだけ送信の記述も追加。

  /* USER CODE BEGIN 2 */
  HAL_UART_Receive_IT(&huart3, &RxData, 1);//1バイト受信割込待ちの準備
  HAL_UART_Transmit(&huart3,TData, 5, 1);
  /* USER CODE END 2 */

2.コールバック関数の追加
昔誰かが作ったソースには、作成者がコールバック関数のプロトタイプ宣言を自ら記述していたが、既に自動生成されていた。

コールバック関数は取りあえずmain.cなかのUSER CODE BEGIN 4に入れてみて実験。(後で他に移す予定)
取りあえず使わないが送信割込も記述した。

/* USER CODE BEGIN 4 */
/*--- Interrupt ---*/
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *UartHandle){}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle){
  HAL_UART_Receive_IT(&huart3, &RxData, 1);//次の割込待ち準備
}
/* USER CODE END 4 */

以上のコードを追加してビルド、デバッグモードに切り替えてRUNさせる。
UART3はデバッグインターフェースでも使っているが、仮想UARTがIDE上で使えるので便利です。Open a terminalでIDE上の認識されているComportを開けばそのまま送受信できる。

私が嵌ったのは1.割込待ち状態にする関数を書かなかったので、コールバック関数内にブレークポイントをかけて走らせ、ターミナルウィンドウから文字を送ってもまったくプレークポイントで引っかからなかった。
よくよく考えると自分で全て書いているときは、割込許可は当然なのでした。

posted by Soki at 12:02| Comment(0) | 調査・研究

2018年08月09日

TrueSTUDIOとSTM32CubeMX

TrueSTUDIOとCubeMX、STMF072を使ってUART割込みをテスト。

先々週に開発環境の調査を始めたSTM32とTrueSTUDIOですが、なんとか使い慣れてきました。

43880473_2228547573884976_5492996647388446720_o.jpg

(必要なペリフェラルとピンを選択)


この組合せの環境でいろいろ実験している人がまだ少なくちょと足踏み状態でしたが、基本は類似しているのでなんとかなりました。

手こずったのはUARTの割込受信で、割込ハンドラの記述とコールバック関数について、動くまで色々試行錯誤。
原因は購入したテンプレートのソースファイルを新規に作成したプロジェクトに組み込むと、何故かCube-mxが生成するはずの割込記述のソースが更新されないという顛末。
(便利なのですが、このあたり要注意ですね)

44028953_2228547593884974_1277535273416130560_o.jpg

(ピンを指定すると各ペリフェラルのコンフィグレーション設定が個別のダイアログでできる)


新規にプロジェクトでCube-MXでハード設定をしてコード生成し、必要な変数や関数を生成したプロジェクトにコピペしたところあっけなく動いてしまいました。CPUを変更してもHALライブラリが使えればその移植性がとても高いとみています。

このTrueSUTUDIOの良い機能として、デバッグ時にはデバッグ通信で使用しているUARTも仮想ポートとして使えるところでしょうか。

IDEの画面の一部がターミナルソフトとして使えTeratermなどを起動しなくても通信系のデバッグが出来るところです。


44178822_2228547617218305_6938153542200852480_o (1).jpg


(デバッグ時にはUARTのエミュレーションを接続したUSBポートでできるのでとっても便利)


RTOSについては、購入したサンプルがとてもわかりやすくにも改造して使えそうです。
あとはオリジナルのステートマシン制御の汎用ひな壇テンプレートを完成させるだけです。

posted by Soki at 00:00| Comment(0) | 調査・研究

2018年05月23日

アナログの電流/電圧計

アナログの電流/電圧計(YOKOGAWA:2012型)を手に入れました。

23864.jpg


ちょっとクラシカルと言われそうですがはやり直感的な計測にはアナログのほうが使いやすいです。

請負仕事の1/3程度が電源とか駆動系に関連していてそれなりに大きな電流を監視する時に使います。
デジタル式ですと、数字がパラパラ動いて計測できなくなるとOVERと表示するだけなので瞬間的に目で見て判断、停止するまでの時間のちょっとの差で大事な基板や装置を壊したり・・・

今までは3A程度のアナログ電流計しかありませんでしたが、30Aまで計れるのでこれでちょと安心。(0.5級なので精度も満足)

posted by Soki at 11:15| Comment(0) | 設備