2017年11月02日

STMマイコン解説電子書籍

今回は先日からAmazonで販売している電子書籍について紹介します。

これまでSTMマイコンの各機能をこのブログでも紹介していましたが、
日本語のSTM32マイコンに入門するための入門書として本書をまとめました。


こちらで取り扱っています。

hyoushi222.jpg

内容抜粋としては開発環境構築、Lチカ、デバッグ、SPI通信、
I2C通信、タイマ、外部イベント割り込み、AD変換、UART通信、
DA変換、リアルタイムクロック、DSP活用、FreeRTOS、SDカード利用など
一通りの主要なペリフェラル機能を網羅して説明しています。

HALライブラリ、CubeMX、無償のSW4STM32開発環境を
使用して解説しています。
これからSTM32マイコンを始めたいという方にお勧めです。


ラベル:STM32 HAL お知らせ
posted by Crescent at 00:00| Comment(2) | TrackBack(0) | お知らせ | このブログの読者になる | 更新情報をチェックする

2017年10月20日

USBホストコントローラ

今回はUSBホストコントローラのチップを紹介します。

STM32マイコンのF4以上では
USBホストコントローラ機能があります。

USBホストコントローラ機能を使用するとマイコンをPCとして
USBデバイスから認識させ、USBデバイスを操作することが可能です。

たとえば、
・マイコンにUSBキーボードを接続してキー入力をする
・マイコンにUSBメモリを接続して、データを書き込んだり、読み込んだりする
などです。


STM32で用意されているCubeMXでは
キーボードやマウス、UBSメモリなどのホストコントローラの設定が可能です。

しかし、上記以外のデバイスや2つUSBを接続したい場合、
ホストコントローラ機能のないマイコンの場合などがあります。


その時に便利なコントローラがVinCulumです。

VinCulum.JPG

上が評価用のVinculum2DPI2です。

サンプルプログラムが多く用意されており、
簡単にホストデバイスを認識させることが可能です。
上記のVinculum2DPI2は2つのUSBデバイスを接続することが可能です。

例えば、マイコンからVinculumへUartなどで
データを送るとUSBメモリに書き込めるという感じです。

チップ自体は500円前後なので、
安いとは言えませんが、
ホストコントローラ付きのハイエンドマイコンを使わずに
簡単にホストコントローラを実現できるという意味では安いと思います。


また今度、試食してみたいと思います。
ラベル:部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2017年10月08日

イーサネットモジュール

今回は簡単にイーサネット通信できるモジュールを紹介します。

STM32マイコンでは内蔵のイーサネットも使用可能ですが、
メモリや割り込み処理など多くのリソースを要します。

今回紹介するW5500モジュール
SPIで外付けで簡単にイーサネットが実現できるモジュールです。

LANポートとW5500チップが一体になったモジュールです。

IMG_0001.JPG


W5500チップ自体に32kBバッファも内蔵されています。
最大8ソケットまで対応しています。

また、単にTCP、UDPだけでなく、
DHCP client、DNS client、FTP client、FTP server、SNMP agent/trap、
SNTP client、TFTP client、HTTP serverの他に
MQTT Clientまで対応しています。

MQTTまで対応しているとは驚きです。
ライブラリもこちらで公開されています。
Arduino版はこちら


イーサネットを使用する=raspberryPIを使う
という以外の有力な選択肢となりそうです。
簡単という意味ではraspberryPIに劣りますが、
SDカード耐久性やOS起動時間など考えると、
メリットは大きいと思います。



ただ、W5500の他にW5100、W5200など姉妹品があり、
W5500はちょっと癖があるようなので、
今後、STM32マイコンで実際に使用して評価してみたいと思います。

他の注意点としては
モジュールによってMACアドレスが付属していないものがあるようです。
その場合はMACアドレスEEPROM等を購入して、
MACアドレスを入手してから使用する必要があります。
ラベル:部品 IoT
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2017年09月24日

ソフトリセット

今回はSTM32マイコンでソフトリセットの使用方法について紹介します。


I2Cのデバイスが検出できない場合や何かしらの異常が発生した場合に
電源投入時の状態に初期化したい場合があります。

その場合に便利な機能がソフトリセットです。



使用するSTM32マイコンのコアに応じて、
ヘッダが異なります。

CortexM0の場合は#include "core_cm0.h"
CortexM3の場合は#include "core_cm3.h"
CortexM4の場合は#include "core_cm4.h"
必要に応じて、変更します。

ソフトリセットを行う関数は
NVIC_SystemReset();
です。

何かしらの異常が発生した後に
上記の関数を入れておくと、
ソフトリセットが掛かります。

異常が連続して起きた場合に変な挙動にならないように
ソフトリセットの使い方には要注意ですが、
比較的簡単に実装できました。

続きを読む
posted by Crescent at 00:00| Comment(0) | 組込ソフト | このブログの読者になる | 更新情報をチェックする

2017年09月15日

BOOT0切替なし書き換え

今回はSTM32マイコンでBOOT0切替なしで
書き換えを行う方法を紹介します。

CubeMXでNucleo等を選択すると
BOOT0切替なしでファームの書き換えができます。

一方で、マイコン単体を選択して
最低限の設定でCubeMXで生成したコードを一度書き込むと、
次回の書き換え等でBOOT0をHighにして電源を入れないと
SWD端子に接続したSTLinkからマイコンが認識されず、
ファームの書き込みや削除ができない現象が発生しました。


原因としてはシリアルデバッグを有効化せずにCubeMXで生成したコードを書き込むと、
シリアルが無効化されてプログラムが動いてしまうことです。
書き換える場合はBoot0をHighにして電源を入れて
bootをシステムメモリに変更することで書き換えできます。

意図しない書き換え防止やセキュリティ強化になりますが、
Boot0のジャンパやスイッチの切り替えが面倒です。


ここで、BOOT0切替なしで書き換えを行う方法を紹介します。
CubeMXの設定でシリアルデバッグを有効化します。

serial-debug.jpg


この状態で生成したファームを書き込むと次回以降の書き換えは
BOOT0切替なしで書き換えできます。


製品としてファームを書き込む以外の実験用途では
意図しない書き換え防止やセキュリティ強化が不要なため、
CubeMXの設定でシリアルデバッグを有効化するのが
Boot0切替の手間がなく便利です。



posted by Crescent at 00:00| Comment(0) | 組込ソフト | このブログの読者になる | 更新情報をチェックする