2018年11月14日水曜日

[AtmelStudio]クロックの設定

ATMEL SAMD21マイコンを使う上で必ず最初に設定しなければならないクロック設定。

USBホスト機能やUART回りを使うなら外部クリスタル発振子を使った方が断然よいので
今回は外部クロックを使用した場合の例です。

クロック設定例


まず最初に使うコンポーネントを追加します。
次にどのオシレータを使うか設定で、内臓8Mと外部32.768kHzのオシレータにチェック入れてから
内臓8MHzは400kHzに分周して、FDPLLで48MHzを生成します。

ソースクロックで入力するオシレータを選択していきます。
GCLK0は48MHz、GCLK3は400kHzを設定すればクロック設定終了です。


ちなみに内臓クロックの精度はこちら。
https://cdn-shop.adafruit.com/product-files/2772/atmel-42181-sam-d21_datasheet.pdf
Page972参照





2018年11月13日火曜日

【ARM】高機能JTAG、BlackMagicProbeクローンを激安STM32F103C8T6マイコンで作る。



このBlackMagicProbeというものは、ARMなCortexシリーズ用のJTAG/SWDデバッグアダプタで、通常デバッガはOpenocdを使う所をgdb使うようにしたものです。
デバッガをGDBにしたことで、FreeRTOSなどでいろんなスレッドに飛ばされたりしたときにも細かくトレースできて高速、というのがウリのようです。
もう1つ良い点は、これ1つ持っていれば各社ARMマイコンと各社専用のJTAG/SWDアダプタを買わずに済むというメリットがあります。

そんなBlackmagicProbeですが、オープンハードウェアでオープンソースなので自由にクローンが作れます。

サイトは以下URL.


あまりメジャーではないのか、記事もあまりなく構築するのに色々と苦戦しました。
まず激安マイコンのSTM32F103C8T6はフラッシュ領域が64kBなのですが、アンロックすることで128kBにできます。
今回各ファームは64kB超えのROMサイズなので、必ずアンロック作業が必要になり
特別な書き方で行わないとできないので、STLink Utility上からでは書き込むことはできないので要注意。

ちなみに参考程度のメモですが、
ファームはRaspberryPi3上で環境を構築して同じCortexコアなのでそのままビルド、ファーム転送で構築しました。


Androider