2020-01-01から1年間の記事一覧

12月のまとめ

進捗 技術書典10(オンライン)の原稿執筆 Arduino系小物ライブラリの開発 3Dプリンタの導入 イベント等 12/6 第二回 GR-ROSEもくもく会 オンライン(RMO) - connpass 12/19 第66回 本町デジもく会 12/26~ 技術書典10 GitHub公開 github.com github.com 同人…

三相インバータの黒魔術

DC電源と6つのスイッチング素子からなる三相インバータでACモータを駆動することを考える。下図上段のような単純な120°位相ずれの正弦波の相電圧(ただし実際にはPWM変調)をインバータが出力すると、モータのコイルにかかる線間電圧は下段のようになる。DC電…

Z変換から導いた漸化式で正弦波を高速に生成

マイコンで三角関数を計算するのは重い処理ですが、次の漸化式を用いると離散正弦波の数列を高速に生成することができます。漸化式なので生成を繰り返すと誤差が蓄積することに注意。 離散正弦波の数列 x(n) は 正弦波の周波数を f 、サンプリング周波数を k…

Arduino/がじぇるね用お役立ちライブラリ

Arduino/がじぇるね用のお役立ちライブラリをいろいろ作りました。 GR-CITRUS用ロータリーエンコーダライブラリ (位相計数) GitHub - lipoyang/RotaryEncoder: Rotary Encoder Library for GR-CITRUS GR-CITRUS/GR-ROSE用パルス幅計測ライブラリ GitHub - li…

RS-422とRS-485

RS-422とRS-485の規格の本質的な差は、ドライバ(送信器)が電気的に常時出力かトライステート出力かである。ドライバが常時出力であるRS-422では、ドライバどうしを結線することは許されない。そのため1本のバスは必ず片方向通信になる。これに対し、ドライバ…

RX65Nマイコンの割り込みベクタについて

RX65Nマイコンには「選択型割り込み」という仕組みがあり、一つの割り込みベクタに複数の割り込み要因が割り当てられているものがある。MTU割り込みなどがこれに割り当たっている。これは従来のRX63Nなどにはなかった仕組みであり、割り込み要因の数が増えす…

11月まとめ

進捗 GR-CITRUS用ライブラリ開発 (ロータリーエンコーダ計測) GR-ROSE用ライブラリ開発 (パルス幅計測、ESP8266ファーム書き換え、INIファイル読み書き) 技術書典10(オンライン)の原稿執筆 ガンプラ製作 (せんとくんガンダム) イベント等 11/7 第一回 GR-ROS…

e2studioでmakeが見つかりません

e2studioにプロジェクトをインポートしてビルドしようとしたとき、「Program "make" not found in PATH」あるいは「PATH でプログラム "make" が見つかりません」というエラーが発生する場合がある。「[ERROR] No toolchain set or toolchain not integrated…

GR-ROSEのタイマリソース

GR-ROSEのArduinoライブラリで使用されるタイマリソースについてまとめる。Arduino環境でRXマイコンのタイマリソースを直接使用する場合、Arduinoライブラリとの競合に注意する。またGR-ROSEのArduinoライブラリはFreeRTOS上で動作していることにも要注意。G…

GR-CITRUSのMTU/TPU機能ピン

GR-CITRUSはピン数の少ないボードに機能を詰め込むため、1つのピンがRXマイコンの複数のピンに接続されていることがある。またDAC出力の9番ピンおよびADC入力のA0~A3ピンは、ジャンパJ1~J5をショートすることでRXマイコンの他のピンにも接続される。(アナ…

GR-SAKURA/GR-CITRUSのタイマリソース

GR-SAKURAおよびGR-CITRUSのArduinoライブラリで使用されるタイマリソースについてまとめる。Arduino環境でRXマイコンのタイマリソースを直接使用する場合、Arduinoライブラリとの競合に注意する。GR-ROSEについてはこちら ↓ GR-ROSEのタイマリソース - 滴了…

MCUXpressoでUART printfの改善

前回の記事でUARTでのprintfの速度は実装しだいと書いた。UARTの送信をブロッキング処理でおこなうと相応の時間を要するが、バッファにためて割り込みやDMAで送信すればprintf関数の処理時間を短くすることができる。ただし、当然ながら通信のスループットは…

ARMで4種類のprintfデバッグ方式まとめ

これまで4回にわたってARMマイコンでデバッグプローブにprintf出力する方法を説明した。 LPCXpressoでセミホスティング - 滴了庵日録 LPCXpressoでITM printf - 滴了庵日録 MCUXpressoでRTT printf (その1) - 滴了庵日録 MCUXpressoでRTT printf (その2) - …

MCUXpressoでRTT printf (その2)

前回はMCUXpressoでRTTを使用する方法を説明した。今回はprintf等の標準入出力関数をRTTにリダイレクトする方法を説明する。前回の内容の準備を前提とする。 MCU Xpressoで標準入出力をRTTにリダイレクトする設定 (1) 標準入出力をUARTへリダイレクトしない …

MCUXpressoでRTT printf (その1)

前々回と前回でセミホスティングによるprintfとITM printfについて説明した。 LPCXpressoでセミホスティング - 滴了庵日録 LPCXpressoでITM printf - 滴了庵日録 今回はITM printfよりもさらに高速なRTT printfについて説明する。 RTT printfとは? RTT(Real…

10月のまとめ

進捗 今月はお休み イベント等 10/24 第64回 本町デジもく会 動画 所感 今月も体調がよくなかったので一回休み

LPCXpressoでITM printf

前回(LPCXpressoでセミホスティング - 滴了庵日録)はセミホスティングによるprintfデバッグについて説明した。しかしセミホスティングは速度がものすごく遅く、またデバッガを接続していないときにはprintf関数でスタックしてしまうという問題があった。そこ…

LPCXpressoでセミホスティング

セミホスティングとは? ARMマイコンでprintfデバッグをする場合、デバッグ用UART等に出力するのではなくデバッガのコンソールに出力する仕組み。標準出力だけでなく標準入力にも対応する。ターゲットにデバッグ用UARTが無い場合や、ソフトウェアを用意でき…

いまさらLPC-Link2について

LPC-Link2について LPC-Link2は、ファームウェアを書き換えることでCMSIS-DAP / J-Link / Redlink の3種類のデバッグプローブになれるボードです。LPC4370マイコンボードとしても使えます。J-linkとして用いる場合、ターゲットのデバイスはNXP社のマイコンに…

メモ:LPC18xxマイコンのデバッグモード、ブートモード

デバッグモード DBGENピンがHIGHのときSWDモード、LOWのときJTAGモード。 DBGENピンは内部で50kΩでプルアップされている。 ブートモード (内蔵Flashを持つ型番の場合) 通常は内蔵Flashからブートする。 UART, NOR Flash, SPI Flash, Quad SPI Flash, USBから…

LPCマイコン各種のIO設定について

LPCマイコンはローエンドからハイエンドまで規模がさまざまなので、基本的なIO設定もファミリによって微妙に異なる。以下、簡単にメモ。※ すでにLPC8xxとLPC55xx以外はNXPの主流ラインナップから外れており、LPCXpressoのような安価なボードも入手性が悪くな…

9月のまとめ

進捗 今月はお休み イベント等 9/12~9/22 技術書典9 ONLINE 8/22 第62回 本町デジもく会 同人誌 techbookfest.org 動画 所感 今月は体調がよくなかったので一回休み

新しいMS IMEのカスタマイズ

以前、MS IMEで[無変換]/[変換]キーの機能をカスタマイズする方法を書いた。lipoyang.hatenablog.comところが、May 2020 Updateの新しいMS IMEでは設定がかなりシンプルなUIに変更されている。従来の「プロパティ」にかわって、新しいMS IMEでは「設定」とい…

メモ:LPCXpressoでハードフォールトしたとき

LPCXpressoでハードフォールトが発生すると、HardFault_Handler()に飛ぶ。どこでフォールトが発生したかは、「Registers」で「faults」のところを見ると分かる。「Fault PC」にフォールト発生箇所のソースと関数名が示される。 エラー要因は「Faults」に示さ…

I2CのEEPROMの容量とアドレス指定

I2C接続のEEPROMは、容量によって下記3つに分かれメモリアドレスの指定方法に違いがある。 16kビット(2kバイト) 以下 32kビット(4kバイト) ~ 512kビット(64kバイト) 1Mビット(128kバイト) 以上 16kビット(2kバイト) 以下 このクラスのものは、メモリアドレ…

今さらLPCXpressoメモ (3)

割り込み禁止 __disable_irq(); // 割り込み禁止 __enable_irq(); // 割り込み許可 リセット NVIC_SystemReset();

メモ:LPC18xxマイコンのタイマ類

LPC18xxマイコンにはいろんな種類のタイマがあって分かりにくいので簡単にメモ。 名前 説明 System Tick Timer ARMコアが持ってるタイマ。システムタイマとして使うやつ Timer 汎用のタイマ。タイマ割込みとか時間カウントとかに使うやつ Repetitive Interru…

レビュー:安いエンコーダ付きギヤードモータ (DG01D-E)

スイッチサイエンスで購入 スイッチサイエンスで売ってるエンコーダ付きギヤードモータを試しに買ってみた。エンコーダ付きのモータが833円は超安い! エンコーダ付きホビーメタルギアドモーター(DG01D-E) - スイッチサイエンス 外観 よく見かける黄色いギ…

8月のまとめ

進捗 ICS/PWMサーボアダプタの開発 技術書典9(オンライン)の原稿執筆 DigiCarの回路設計 イベント等 8/22 第11回 デジもくオンライン (第60回 本町デジもく会) 8/29 新作 GR-MANGO 作品発表会で盛り上がろう! GitHub公開 github.com github.com 動画 発表資…

DXF形式の基板外形データをEagleに取り込む

我流のメモです。 やりたいこと Fusion360等のCADから出力した基板外形のDXF形式データをEagleにインポートする。 準備 下記のULPスクリプト import-dxf.ulp を適当な場所に保存する。 (Windowsであれば ドキュメント/Eagle/ulps/ など)github.com 手順 Eagl…