見出し画像

Nuvoton NuMicroマイコンの勘どころ

Arm Cortex-M0, M4, M23

電圧範囲が広い(2.5〜5V)シリーズもあり、AVRやPICマイコンからの置き換えにも有利。
外付けクロックなし(クリスタルレス)でUSBインターフェイスが使えるものもある。
LDO内蔵でコアは1.8V、USBは3.3Vで動作するので外ふけ部品が少なくてすむ。

※ Cortex = コーテックス
https://www.youtube.com/watch?v=a_kK6QLDKBI

プログラムの書き込み(ICE)

SWD接続により書き込みできる。
CMSIS-DAPでもよいが、USB接続のSWDインターフェイス「Nu-Link-Pro」が安価で確実。
パソコンを必要としないオフライン書き込み機能もある。

開発環境

開発環境は MDK-Arm (KEIL uVision) や IAR Embedded Workbench などが使用できる。

Mbed (Keil Studio) 対応のボード
https://os.mbed.com/platforms/?q=&Target+vendor=Nuvoton

Cortex-M0, M24向けに MDK-Arm を無料で使える Nuvoton専用ライセンスも用意されている。
(MDK-Armをインストールした後、ライセンスマネージャで表示されるCIDを次の画面で登録する)

https://www.nuvoton.com/tool-and-software/ide-and-compiler/get-keil-mdk-lic/index.html

プログラムはじめ

#include “NuMicro.h”

Nuvotonが公開しているサンプルやライブラリのソフトウェアはそこそこよくできているので、ダウンロードして使えるようにしておく。
(ただし他人の書いたプログラムを完全に信用しないこと)

システムレジスタ

システムクロックなどのシステムに関するレジスタはロックがかかっているので、書き込みを行うときはロックを解除してから行う。

SYS_UnlockReg();
SYS_Init();
   :
SYS_LockReg();

メモ

ペリフェラル

NuMicroシリーズはプェリフェラルが共通か似ていることが多く、コアが変わっても移植性が良い。

GPIOの初期状態はプルアップされているとは限らない

いくつかの型番ではプルアップもプルダウンもされていないことがある。
Quasi-bidirectional モードで DOUTに1を書き Weak/Strong pull-up を使うこともある。

5Vトレランス

VDD 3.3Vのときでも、5V入力に対応するピンがある。
アナログモード(ADC、ACMP)以外のとき。

システムの初期状態を決定する

CONFIG0/1 レジスタがあり、SWDで書き換えできる。
BODやプログラム読み出しのプロテクトなどいろいろな項目がある。
LOCKビットを1にした場合は、チップイレースをしなければ0にクリアできない。

メモリー

いくつかのメモリー領域が分かれている

  • APROM、アプリケーション用Flash

  • LDROM、ブートローダー用Flash(ローダーで起動するときは、自動的に割込みベクタ部分が0番地~へマッピングされる)

  • SPROM、セキュアプロテクションFlash

  • SRAM

設定レジスタ

CONFIG0/1/2 などは起動時の動作を決める。
Flashメモリー全体のロックビットもここにある。ロックを解除するときはChip Eraseをする。

起動する ROM の変更

APROM または LDROM のどちらからブートするか切り替えるには、CONFIG0 レジスタの CBS を設定する。
動作中にプログラム内で切り替えるには FMC_ISPCTL レジスタを設定して自己リセットする。

	SYS->RSTSTS = SYS_RSTSTS_PORF_Msk | SYS_RSTSTS_PINRF_Msk;
	SYS_UnlockReg();
	FMC->ISPCTL |= FMC_ISPCTL_BS_Msk | FMC_ISPCTL_ISPEN_Msk;
	SYS_LockReg();
	NVIC_SystemReset();

この記事が気に入ったらサポートをしてみませんか?