しろうさぎのblog

ロボカップは小4の時に始めてかれこれ…。元将軍キャプテンです。 情報公開や交流用に作りました。気が向いたらアップしていく感じですのでよろしくです。最近まで関白のブログって名前でしたが、関白って名前使っていないので変えました。

どうもしろうさぎです。

CubeHALでIWDGを使ってみたので書いてみます。

1.IWDGってなんぞや

STM32L4でのIWDGの話が日本語で公式で説明されているので、URLを張っておきます。
STM32L4-独立型ウォッチドッグ(IWDG)

要は、メインクロックとは別のクロックを使ってメインクロックを見張り、マイコンが落ちてたら、リセットをかけることでプログラムの暴走を止めるって寸法です。STM32ではLSIからのクロック駆動でこれを動かしています。


2.Cubeでの設定

ペリフェラル設定のIWDGのところをアクティベーションします。
キャプチャ1
LSI等のほかはいじる必要はないです。
そしてコンフィグ設定画面で、
キャプチャ

カウンタークロックプリスケーラー等を変更します。
まぁ実務上一番上のプリスケーラーだけ変更してウォッチドッグが起動する時間を変更するだけで 大丈夫かと思います。
タイムアウト設定は、
t_IWDG(ms)=1/(t_LSI(Hz)/(preScaler/reload value+1))
t_LSI=32KHzなので、の設定だと、
t_IWDG(ms)=1/(32000/64/(4095+1))
   =8.19秒
となります。


3.使い方

いつも通りCubeからコードを吐き出して、ループ内の最後など、カウンターをリセットしたい場所に

HAL_IWDG_Refresh(&hiwdg);

を入れてあげます。タイムアウトをする前にこのAPIを呼んであげることで、定期的にカウンターをリフレッシュします。
これをしないと、タイムアウトがかかってチップがリセットします。

もちろん、Whileなどでループしててトリガがかかるまで抜け出せないとかの処理の時はその中にも入れてあげないとダメです。

4.まとめ

今回IWDGを導入して試合中とかにマイコンが落ちて動けなくなって人間がリセットかけてあげな いといけないみたいなことがあっても自動で復帰してくれるようになるので、ロボット等に入れる のは有効じゃないかなと思います。暴走しても自分で止まってくれるので安心ですね。

それでは今日はこの辺で。

どうも。実験レポートからの逃避でこの記事を書いてます。

フラットケーブル線がまとまっててものすごく使いやすいのですが、秋月とかで製品になって売られているフラットケーブルのコネクタ付きのやつを買うことがあったのですが、今回自分でやってみました。

といっても去年のロボットにも使ったので作ったことあったのですが備忘録というか参考にしてねという感じで書いていきます。(前にやろうとして調べてもあんまり出てこなかったから)

完成品買うと結構高いですし自分の好きな長さにできないので自分で作っちゃえばいいんじゃないですかねぇ。

とりあえずパーツショップで必要なものを買ってきます。コネクタのセットとフラットケーブルです。
IMG_4479


そして、コネクタの上にフラットケーブルを載せて少し手で押してあげます。
IMG_4480
なんとなく金具の筋が上から見えるくらいで十分です。

そしてカバーを載せます。
IMG_4481

そしてバイスとかに挟み締めます
IMG_4482
IMG_4483

結構力が要りますが頑張って締めます。

するとこんな感じになります。
IMG_4485
(この写真だとまだ締めが甘くて後で外れてもう一回締め直した)

そしてまげて最上段のカバーを載せパチっというところまで入れてあげて完成です。
IMG_4486




こんな感じで使えます。
IMG_4487


ケーブルがかなりまとまるので良いですし、本数も多いので簡単に外れて接触不良とかになることもないです。
そしてコネクタだとかしめたところで配線が切れることがありますけどこのフラットケーブル使うとそんなことはあまりなくなります。
たぶん6ピンくらいからあるので少量から大量のケーブルをまとめて配線するときに便利です。


それでは今日はこの辺で。


どうもしろうさぎです。
すごくどうでもいいのですが、Atollicで開発していて新しくCファイルやらヘッダファイルを作るとき一番上に


 *  Created on: 2017/10/15
 *      Author: コンピュータのユーザ名

が入ってしまうので何かソースコードを公開したときに勝手に実名で入ってしまうのが嫌だなぁと思い、変更しようとしたのですがかなり一苦労して見つけたので備忘録的な感じで書いてみます。

ウィンドウ→設定→C/C++→Code Style→Code Templatesのタブを開き、
キャプチャ

Comments→Filesのところをクリックし右のEditをクリックします
キャプチャ

そして$以下を消してそこに入れたい文字列を入れます。
キャプチャ

それでOKを押して適用を押したのちOKを押し閉じます。

んで、適当に新しくCファイルを作ってみると、
キャプチャ
ちゃんと変更されているのが確認できます。

今日はこの辺で。

↑このページのトップヘ