がれすたさんのDIY日記

電子回路、Python、組み込みシステム開発、自作エフェクターを語るblog

i.MXRT1050

MIMXRT1050のUSB AudioでMIDIStreamingSubClassを使う1

現状USB MIDI機器として認識するようになったのでまとめておきます。 MCUXpressoSDK USB libのaudio_generator_lite_bmのusb_device_descriptor.cを修正する形で書いたのでそのまま置き換えればPCからはUSB MIDI機器として認識されると思います。 /* * Copyr…

MIMXRT10xxのUART DMAメモ

前回は割り込みについてやったので今回はDMAについてメモを書く 参考には公式サンプルのlpuart_edma_transferを使うのでそれを参考にしてください。公式サンプルが動作コードなので使い方的なのは解説しません DMA部分のメモ ポーリング、割り込みとは違いDM…

MIMXRT10xxのUART割り込みメモ

UARTの割り込みについて少し迷ったのでメモ代わりに残しておく。 コードに関しては公式のサンプル内にあるlpuart_interrupt_rb_transferってやつを参考に解説しているので全容はそっちを見てください。 送受信APIの確認 まず割り込みには以下に示すの二つのA…

MIMXRT10xxのUARTを使ってみる(ポーリングAPI)

今回はUARTについてやっていきたいと思います。 prinfに関しては評価ボードを使う限りは初期プロジェクト作成でリンクしてくれるので説明はしません。あくまでbyte転送APIで何か送るという感じですね。環境としては以下を例に説明しますがRT1020でもRT1015で…

MIMXRT10xxのADCを使ってみる

今回はMIMXRT10xxシリーズのADCを使ってみようと思う。 ペリフェラルの特徴としてまとめると 1MS/sec sample rate 1モジュールに8つのシングルエンド入力 single conversion と continuous conversionに対応 12bit,10bit,8bitに対応 下限値、上限値、値の一…

MIMXRT10xx series dcd table Tips part1

MIMXRT10xxシリーズは内部ROMを持たないわけで起動するのにひと手間かかる。MIMXRT10xxにはIVT(image ventor table)なるものがあってそいつを設定してあげる必要がある。 そうすることで内部ROMのブートローダー(IMXRTの内蔵ブートローダーのこと)が値を解…

MCUXpressoIDE ライブラリ変更方法(ex. redlib->newlib)

library変更もProject setting項目からできるlibraryの変更プロジェクトのsetting画面からもできる(プロジェクトを右クリック->propertyをクリック)newlibを使うとmalloc関連もできる。malloc.hの利用

MCUXpressoIDE MCUのパッケージ変更を簡単に行う方法

プロジェクトのProjecting setting/MCUを右クリしてEdit packageでいける

MIMXRT1052CVL5Bを使う際のTips

MIMXRT1052の場合 コンシューマ向けのは600MHz、工業用途の場合528MHz駆動となっている。 MCUXPressoIDEで新規プロジェクトを作った際にはMIMXRT1052DVL6B向けの設定で吐きだされる。 今回はMIMXRT1052CVL5B向けのプロジェクトの設定や変更しないといけな部…

MCUXpresso SDK Shellの使い方

MCUXpresso SDK Shellはなんぞ? 組み込み用Shellのことです。Shellの動作例SDKに最初から組み込まれているので選択するだけで楽に使えますしprintfとのリンクもIDEがやってくれるので便利です。使い道としては 信号処理のパラメータの変更 内部データのダン…

CMSIS DSP とコンパイル最適化オプション

(adsbygoogle = window.adsbygoogle || []).push({}); 色々試してたらGCCの場合最適化しないとFPU命令呼んでくれないっぽい optimize入れるとちゃんと呼ばれてる i.MX RT1020(CortrexM7 DP FPU)のSQRTしか試してないのであれですが入れとくに越したことはな…

Eclipse expression機能のメモ

(adsbygoogle = window.adsbygoogle || []).push({}); mallocとかで確保した変数のスコープをする方法 //変数名がsdram_bufferとすると (*sdram_buffer@200) @の後の数字で何個表示するか設定できる。

MIMXRT10xxでwavファイルを組み込む方法

(adsbygoogle = window.adsbygoogle || []).push({}); 今回は組み込みでbinファイルだったり、wavファイルを組み込む方法を紹介しようと思います。 RT1020と書いていますがSTM32とかでも同様なことができます。環境は以下の通り MCUXpresso IDE v10.3.0 [Bui…

MCUXpresso IDEのペリフェラルコンフィグツールを使ってみる

(adsbygoogle = window.adsbygoogle || []).push({}); MCUXPresso IDEがアップデートされてペリフェラルコンフィグツールが実装されたのでそれを使っていろいろやってみたいと思います。 STM32でいうCubeMXみたいなもんですね。今回のシステム要件は以下の通…

MCUXpresso SDK:コーディック周りのHALについて

オーディオフレームを書くにあたっていろいろ調べていたのでそれのメモがてら書いています。 IMXRT1020のコーディック周りは fsl_codec_common.h fsl_codec_common.c fsl_wm8960.c fsl_wm8960.h の4つからできています。WM8960_WriteRegの中でCODEC_I2C_Wri…

アドレス配置__attribute__について

以前も同じような記事を書いたのだがもうちょいかいつまんで書いていくことにした。 i.MX RT1050のコードの一部の紹介 #if defined(__CC_ARM) || defined(__GNUC__) __attribute__((section(".boot_hdr.ivt"))) #elif defined(__ICCARM__) #pragma location=…

MIMXRT10xxのGeneral Purpose Timer (GPT)を使ってみる

General Purpose Timer (GPT) 前回はPITでしたが今回はもう少し機能があるGPTの話です。言葉でつらつら書くのが得意ではないので概要をまとめてみた 32bit アップカウンタタイマー 入力キャプチャに対応 キャプチャはrising edge,falling edgeに対応 output…

MIMXRT10xx Periodic Interrupt Timer(タイマーのチェイン)

今回もタイマーの記事です。 PITの基礎に関しては前回のここを読んでいただければいいかと思います。gsmcustomeffects.hatenablog.com 今回はTimer0とTimer1をチェインさせて長めのインターバルを作っていこうと思います。 When a timer has chain mode enab…

MIMXRT10xx Periodic Interrupt Timer(基礎編)

Twitterなどでリンクハイライト表記になってしまうので今回からIMXって表記に変えました。 RT1050で検索されれば引っかかるので特に問題ないでしょう。 PIT(Periodic Interrupt Timer) Periodic(周期的な)タイマーです。 Kinetisの頃からあったペリフェラ…

MIMXRT1050-EVKでスイッチ入力を使う手順

今回は今後よく使うであろうスイッチ入力をやって行く。 まずボードにあるタクトスイッチは以下の四つである SW2 ON/OFFスイッチ SW3 リセット SW4 デバッガチップリセット or bootloader mode SW8 ユーザースイッチ ここで SW2はON/OFFスイッチになっており…

MCUXpresso SDK attribute sectionマクロについて

自分用メモです。(皆さんの参考になれば幸いです。ものとしてはcr_section_macros.hにて定義されている配置変更マクロについてです。 本来はgnuの拡張機能で __attribute__ ((section("セクションの名前”))) と言う書き方をする。これを簡易化するためのマ…

i.MX RT1050 : XIPで起動する

題名にある通り今回はXIP機能を使って外部のHyperFlashからプログラムを実行して行く 実習環境 MIMX RT1050-EVK(OpenSDA firmwareは最新のものでHyperFlash版にアップデートしたもの) MCUXpresso IDE(10.1.0_589) MacbookPro 2012 (MacOS HighSierra) XIP(eX…

i.MX RT1050のデバッグ速度が遅い問題について

こんばんわ最近進捗なくてすいません・・・・ 一応開発は続けています。というわけで今回はRT1050のデバッグが明らかに遅いと言う問題に遭遇したのでそれについて書いていきます。まず前提条件について このチップに関してはROMレスということもあり起動方法…