がれすたさんのDIY日記

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

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に対応 下限値、上限値、値の一…

2019年版 STM32環境構築方法

以前よりSTM32について結構な数の記事を書いてきました。 最近ではAtollicTrueStudioが無料になったり、CubeMXが5.0になったり いろいろ変わった経緯もあり2019年版と題して新しく書いたほうが良いのでは?となったわけです。そんなわけで僕なりの2019年度版…

MIMXRT10xx series dcd table Tips part2

前回は解釈の仕方を書いたので今回はクロックに絞って全容をつらつら書く感じ。 ぶっちゃけ前回の記事で必要なことは書いたのでこれは読みたい人が読んでくれればいい。そんなmini tips的なやつ本記事の環境は以下の通りです。 MIMXRT1050-EVK SDK ver 2.5 …

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みたいなもんですね。今回のシステム要件は以下の通…

はてなで数式やコードを扱う時のTips

自分なりに気を付けてることのメモ 編集モードははてな記法 (adsbygoogle = window.adsbygoogle || []).push({}); 数式について 数式を記述する際は [tex: ]を使うわけだが 以下のように一回書いておけばmath機能が有効になるみたい <p style="display: none;">[tex: ]</p> すると \begin{e…

Python:scipy.signal.spectrogramを使ってスペクトログラムを描画する

(adsbygoogle = window.adsbygoogle || []).push({}); 今回は信号の時系列変化を可視化できるスペクトログラムを描画してみたいと思う 使うメソッドはPython:scipy.signal.spectrogramである。オプションパラメータがたくさんあるが f,t,Sxx = signal.spectr…

Python: Swept-sine信号を作成する

今回はシステム同定入力(主にインパルス応答の測定)として使われる掃引正弦波を生成していきたいと思う。 昔はTSP信号なんて言われていたが場合によってはそぐわない可能性もあるので最近ではSwept-sineに統一されつつあるみたい Swept-sine signalは信号の…

scipy.signal.iirfilterを使ってIIRフィルタを設計する

前回はiirdesignメソッドで設計したがもう一つのほうのメソッドも紹介しておく。 前回の記事はこちら (adsbygoogle = window.adsbygoogle || []).push({}); gsmcustomeffects.hatenablog.com scipy.signal.iirfilter メソッドの引数はこのような感じ scipy.s…

Python:scipy.signal.iirdesignを使ってIIRフィルタを設計する

(adsbygoogle = window.adsbygoogle || []).push({}); 今回はscipy.signal.iirdesignメソッドを使ってIIRフィルタを設計してみる。 ScipyのVerは1.2を使用している前提で進めるgoogle colabの場合は !pip install --upgrade scipy をしてからランタイムのリ…

Python:scipy.signal.bodeでボード線図を引く

(adsbygoogle = window.adsbygoogle || []).push({}); 今回はScipyのsignal.bodeを使って周波数応答を描画してみる。 使うメソッドは scipy.signal.lti scipy.signal.bode である。 scipy.signal.lti 線形時不変システムを作成できるメソッド。引数の渡し方…

Python:scipy.signal.freqzのテスト

PythonでMATLABみたいなfreqzが使えるみたいなのでためしてみたRBJ cookbookの公式を用いてPEAKフィルタを構成した。fc1:150Hz カット fc2:400Hz ブーストみたいな感じにした。 カットオフ帯域ゲインとbwあるけどパラメータはご自由に wがそのままだと正規…

Python:pysoundfileを使って読み込んだwavデータをFFTをする

自分用メモです。これ一つで取りあえずはwav読み込みとFFTのサンプルかねてるので参考になれば import soundfile as sf import numpy as np import matplotlib.pyplot as plt from scipy import fftpack fname = 'whitenoise.wav' # mono data, samplerate =…

モデルに関するメモ

非線形オーディオエフェクト実装においてよく使われるモデルの一口メモ Wienerモデル、Hammersteinモデル Wiener model, Hammerstein model(Schmitz Thomas[2016]) Hammerstein:NLシステム->LTIシステム Wienner:LTIシステム->NLシステム LTI->NL->LTIのこと…

Python:lmfitを使ったカーブフィッティングその2

はじめに 今回は前回の続きでlmfitを使ったフィッティングを試して行きたいと思う。 ほとんどここのパクリだがバグの修正含め解説も入れているので勘弁してほしいPeak fitting XRD data with Python - Chris Ostrouchovさっそくやって行こうと思うが 実用的…

Python:lmfitを使ったカーブフィッティングその1

実験データのフィッティングについて頻繁に使う機会があったので自分メモとしてまとめておきます。 フィッティングを行うにあたり、Numpy , Scipyには便利なライブラリがあります。 Numpy :polyfit Scipy:optimize.leastsq Scipy:optimize.curve_fit 以上3つ…

日記

最近STM32ネタかけてなくてすいません。 やって行きたいものに関しては決まっていて Memory to memory DMA VFPU命令の確認(SP、DP) SIMDに関して SDカード関連 こんなかんじです。一方でi.MX RT1020でやりたいことも結構あって DMA Manager USB CDC I2C UA…

フラックスとフラックスクリーナーのあれこれ

趣味の範囲で表面実装部品あつかうと手付けが多いんですがその際フラックスを結構使うことが多いです。 フラックスは一般に金属表面の活性剤として機能する薬品です。 調べれば出てきますけど有機酸などの添加物が金属表面のO結合を取り除くことで金属表面酸…

進捗的なやつ

最近外出先でOnshape使って家ではFusion360つかうみたいな流れで設計している。Onshapeマジで楽だよなココまで5分位でできる pic.twitter.com/ncMvi2lEyC— おながわ (@GarageStyleMsc) 2018年11月13日 こんな感じで外出先でポチポチ作ってDXF or STEPで吐き…

読みたい本、おすすめの本など

ここには僕が読んだ本とか読みたい本とかを載せてく予定 画像クリックでリンクに飛びます最新の本でなければ図書館で借りれるのでその辺も利用していきたい 読みたいやつ Designing Audio Effect Plug-Ins in C++ Designing Software Synthesizer Plug-Ins i…

STM32のMCO2からPLLI2Sクロックを出力してみる

今回はSTM32のMCO(Master Clock Output)の機能を使ってPLLI2Sのクロックを出力してみる。 品質はどうなのかわからんけど主に外部オーディオコーディック用のMLCKとかに使えそうな予感通常のMCO1に関しては以前やっている(STM32F3での実施)ので基礎に関し…

STM32CubeProgでUARTを使ったフラッシュ書き換えを試す

STM32に関しては久しぶりですが 今回はSTからリリースされたSTM32CubeProgというソフトについてみていこうと思います。 STM32CubeProg www.st.com簡単に説明するとSTlink utility とかflash loaderとかdfuツールとかそういうのが一緒になってWindows,Mac ,Li…