ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

自分用メモ IAD

USB

Interface Association Descriptor USB2.0により増えた規格。 それまでは複合デバイスを作る際どれがどのインターフェイスがわからず無法地帯だったらしい そこでIAD増やして明示的にした結局どゆことかというと USBデバイスではコンフィグに複数のInterface…

STM32のUSBCDCでMicroShellを動かす

前回まででUSBCDC(コミュニケーションデバイスクラス)でVCP(VirtualCOMPort)の動作は確認できたので今回はこれにMicroShellを使える状態していく作業になります。 CDCのやり方はこの記事みてくれ gsmcustomeffects.hatenablog.comやることは 1文字送受信…

Eclipseでファイル比較を使う

ここ最近USB系やっていてサンプルを参考にしつつ書くことが多い。 その中で2ファイル中の差異を比較できたら便利だと思って比較機能を使ってみることにした。やり方はこういう感じでファイルをCtrl推しながら選んで右クリックで相互を選ぶ(当方の環境はAtol…

Eclipseでファイル横断サーチする

僕はARMマイコン開発でもっぱらEclipseベースIDEを使用するわけなんですがその途中でワード検索よく多用します。 Ctrl+Fの検索機能は一般的なサーチです。しかしこれではファイル内しか検索できませんので単一ソースの確認しかできません 最近のマイコンの場…

自分用メモ デバイスディスクリプタ

デバイスディスクリプタはディスクリプタ階層の一番上に属する。一応書いておくと以下のような感じだ ┏デバイスディスクリプタ ┝コンフィグレーションディスクリプタ ┝インターフェイスディスクリプタ ┝エンドポイントディスクリプタ役割としては主にVID,PID…

自分用メモ コンフィグレーションディスクリプタ

前回CDCやったのでそれの補足ディスクリプタは以下のような構成になっている。┏デバイスディスクリプタ ┝コンフィグレーションディスクリプタ ┝インターフェイスディスクリプタ ┝エンドポイントディスクリプタデバイスディスクリプタについては前回やったの…

STM32F767NuceloでUSBCDCをやってみる。

前回の日記でCDCやってるということ書いたのでとりあえずやり方メモ STM32F767Nucleo144 を利用してます CubeMXでの操作 CubeMXを開いてUSB_OTG_FSをデバイスに設定次にクロック設定 USBペリフェラルに48MHzになるように持っていく 他は適当にやって行くその…

WEAKシンボルについて

ここ最近ARM系のお勉強を頑張っています。 今日はWEAK修飾子についてです。 STを例に話すと割り込み後に呼ばれるコールバックってのがWEAKマクロを使って記述されてます。 定義先に行くと __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *hti…

STM32F042K6T6のUSB付きの基板を作った

前回はこんなの作った話をした gsmcustomeffects.hatenablog.comそれにUSBで電源とれるようなの作った。 目的はUSBコネクタのリフローの練習だけというねw なので信号線はつながってない。というかF030にはUSB機能がない (adsbygoogle = window.adsbygoogle…

SAIペリフェラルでトークスルーを動かす

前回こういう記事を書きました。 gsmcustomeffects.hatenablog.comこれは酔漢氏が作成された手順に基づき何から何までプラットフォームにお世話になって実現しているものです。 なので今回はちょっと変えてみようという考えに基づきやってみた第二段というわ…

おうちリフローについて

今回は僕がやってるおうちリフローについて紹介しようと思います。まず道具について ホットプレート ペースト半田 フラックス ディスペンサ(シリンジ)2種類 ピンセット ステンシル(今回は使わない) このぐらいが必要だと思います。 ちなみに精密な温度制…

FusionPCBでSTM32F042K6T6の基板を作ったよって話

今回はFusionPCBのレビューも兼ねて基板作ったのでそれの話です。とはいっても話すことは特になくてクーポンもらえたので基板ちゃちゃっとかいた感じです。

STM32でSPI通信をやってみる1(ポーリングでマイコン同士で通信編)

今回はCubeHALライブラリを用いてSPI通信をやってみる記事です。STM32のSPIは全二重、半二重、単方向、マルチマスターモードなどいろいろ対応してますが今回は一般的な全二重でやってみようと思います。 Pin Name description MOSI マウターアウトスレーブイ…

CubeMX4.20のHSEクロック関連出力コードのバグ?

CubeMX4.20のコード出力バグッぽいの見つけたのでかいときます。 前までのVerで動いてたいのですがHSE(外部クロック)を選択した際動かなくなったのでいろいろ調べてたら海外で同じような事例を発見http://www.openstm32.org/forumthread4665 RCC_OscInitSt…

ZOOM MS50g,MS70CDRのMIDI制御について1

今回はZOOM社のマルチストンプのMIDI制御についてです。一年前ぐらいにUSBHOSTでMIDI制御しましたがいろいろ発見があったので今回こうして書いているわけです。 (adsbygoogle = window.adsbygoogle || []).push({});

Ac6 SystemWorkbench for STM32でメモリ使用量を%で出力する方法

コードサイズの出力 通常はコードサイズが出るだけだがXlinkerオプションに -print-memory-usageを追加することで現在どの程度フラッシュを使用しているかわかります。 プロジェクトのプロパティ プロパティを開いてC/C++Build/Setting/MCU GCC Linker/Misce…

AtollicTrueStudioでHex,binを生成する方法(自分用メモ

当たり前のことなので自分用メモとしておきます。 Hex,binの生成方法 プロジェクトのプロパティを選択C/C++Buid>>Setting>>ToolSetting>>Other>>Output formatIntelHexを選択あとはリビルド コマンドから作る方法 C/C++Buid>>Setting>>BuildSteps>>PostBuild…

C言語可変引数マクロについて

マイコンのDEBUG関数関連見てて #if defined(DEBUG_ENABLE) #if defined(DEBUG_SEMIHOSTING) #define DEBUGINIT() #define DEBUGOUT(...) printf(__VA_ARGS__) #define DEBUGSTR(str) printf(str) #define DEBUGIN() (int) EOF #else #define DEBUGINIT() Bo…

STM32でADCをやってみる2(DMAを使ったレギュラ変換)

前回は単一チャンネルの変換を行ったが今回はDMAを使ったものをやって行こうと思う。 とりあえずADCおさらい ADCは変換終了フラグ(EOC)を見てDRレジスタを見に行くことで変換データを得ることができる。上記の図のようにシーケンスの終了でもフラグが立つ…

STM32でADCをやってみる1(レギュラ変換)

今回は一番簡単なやつやってみます。やったことを雑に書くとこんな感じ レギュラ変換 ADC2の1CHだけを使った連続変換 PB4ピンにポテンショメータをつなぎそれを読む 変換値をUARTでTeratermに表示する。 CubeMXでの設定 今回は一個しか読まないのでこのよう…

STM32でCMSIS DSPライブラリを使ってみる

今回は高速に三角関数とかを計算できるARM社提供ライブラリであるCMSIS DSPライブラリを使ってみる話です。API各種はarm_math.hというファイルで用意されています。今回の実習環境は以下の通りです IDE:AtollicTrueStudio Board:STM32F767 Nucleo144 導入 …

STM32でUARTをやってみる6(float型printfをUART経由で出力)

何だかんだこのシリーズも6個目ですねw前回まででUARTの基本的な使い方はマスターしたと思います。 今回はCubeMXでの出力は詳しくは解説しないのでまだの方は1から読んでみてくださいgsmcustomeffects.hatenablog.comgsmcustomeffects.hatenablog.comgsmcus…

ARMのソフトウエアトリガ割り込みについて

ARMのソフトウエア駆動割り込みの覚え書きです。ARMの割り込みはNVIC(統合ネスト型ベクタ割り込みコントローラ)で管理されていますがその中でSTIRというレジスタがあります図で言うと赤の部分ですね詳細はこちらになります Write to the STIR to generate …

STM32でI2C通信をやってみる

この記事は現在一緒に開発やってくれてるオカダ twitter.com と共同でデバッグしてた時の記録です。一応動いていますがHALのバグなのか正しい使い方なのかは不明です。やる際は自己責任でお願いします。 とりあえずやってく 今回は二つのマイコンで通信する…

STM32のMCO機能を使ってGPIOからクロックを出してみる

MCO機能 マイクロコントローラクロック出力(MCO)機能では、外部 MCO ピンにクロックを出力することができます。5 つのクロック信号のうちの 1 つを MCO クロックとして選択できる。実際の使用例ではNucleoなんかがそうですね、 STLINKのF103からボード上の…

EclipseベースIDEの便利機能

今回はEclipseの話です この前プレゼンしたやつのまとめです。 (プレゼン資料のまんまです) はじめに 今回はARMマイコンの統合開発環境で利用されることが多くなってきたEclipseの機能についての説明です。 最近デバッガやらなんやらいろいろ増えてきてど…

旭化成のAP1155で工作

今回はマイコンからちょいと離れてアナログっぽい製作記事です。 とりあえず新製品だし楽器用小型パワーサプライに使えそうかなと思い何個か買ってみた。 AP1155の紹介 低ノイズ シリコン・モノリシック・バイポーラ構造の採用により、低出力ノイズ、優れた…

STM32でUARTをやってみる5(MicroShell

こんかいもUARTのネタです中村さん作のMicroShellの話でございます。実を言うと中村さんには一度SignalBottomでお会いしたことがあります。 その時は中村さんの作品を一つしか使ったことなかったので次回お会いできる機会があれば聞いて見たいことをいっぱい…

STM32でUARTをやってみる4(Chanさんのxprintf)

今回はやっとこの話題を書いていく。 uart_getc uart_putc uart_puts が必要なのでそれを読んでほしいgsmcustomeffects.hatenablog.com Xprintf 組み込み用printfモジュールである。 まあ組み込みだと素のprintfが使えないことが多いしましてやUARTに吐くと…

STM32でUARTをやってみる3

前回と前々回でUARTのくっそ簡単な送受信について書いたんだけど今回はグローバル変数いちいち作るのダサいしそんなのあんましつかわんよね見たいな感じだったので LPCマイコンのAPIで用意されてるやつをSTMでも作ってみようということで uart_getc uart_put…

STM32でUARTをやってみる2

はじめに 前回はすごく簡単なUARTのHelloWorldをやったので今回は受信とかやってみようと思う。ちなみに前回の記事はコレgsmcustomeffects.hatenablog.comCubeMXの設定は前回と同じ Ac6での作業 今回やること 'a'を受け取ったらボード上のLEDが点灯 'b'を受…

STM32でUARTをやってみる1

今回は自分用メモでUARTのやり方を書いていく 環境は ボード:Nucleo32 STM32F303 IDE:Ac6 SystemWorkbenchforSTM32 を使うちなみにCubeMXの使い方は結構省いてるのでほんとの初心者はこの辺読んでくださいgsmcustomeffects.hatenablog.comgsmcustomeffects.h…

(自分用メモ)STM32のベーシックタイマー(TIM6/TIM7を使う)

Basic timer (TIM6/TIM7) 見出しの通りベーシックなタイマである。 STの中では一番チープなタイマである。(つか他のが高機能かつ複雑怪奇w 16-bit オートリロードアップカウンタ 16-bit プログラマブルプリスケーラ(1-65535) Interrupt/DMA generation o…

Hantek6022の中身のお話

今回はちょっとおもろいネタです Hantek6022っていうロジアナ付きのUSBオシロスコープの中身のお話 だいぶ前に買って最近使ってなかったので回路が気になりあけてみることに 一応製品仕様は以下のリンクへ http://www.hantek.com/en/ProductDetail_2_31.html…

KiCadで複数ユニット部品を作る

今回は複数ユニットを持つ部品を作っていく利点としては 多ピンのICを分けて管理することで見やすい回路を書ける 機能ごとにユニット分け出来る などがある。画像で示せばこんな感じ はじめに まずKiCadには同一回路を多数持つユニット部品を作成する機能が…

KiCadのライブラリ作成のコツ

最近ライブラリ作成記事が意外に読まれているのでちょっとしたテクニックみたいなやつです。すごい簡単に示すとこんなの 何に使えるかっていうと 連番でたくさんピンを作成したい とりあえずピン数だしてユニットの大きさ把握したい みたいな場面に使えます…

KiCadのインタラクティブ配線

いんたらくてぃぶ? KiCadには配線を効率化する機能がいくつか備わっている。 今回はそれを見ていこうと思う 押しのけ 名前の通りこの配線を邪魔や!お前ってできる機能いままで消して再度配線してた作業がなくなる 使いどころによるが結構便利 衝突ハイライ…

KiCadのSpice機能について

今回1月後半にFOSDEM2017でKiCadのプレゼンがあったわけですがその中でSpice機能がまともに動く感じになってるのを見ました。というわけでなんとなく試してみることにしました。 今回やるのはこういうの はじめに まず部品ライブラリでPSpiceのライブラリを…

CircuitMaker階層回路図の操作

久々にまともなTips 階層回路図のやり方 階層にしたい回路を作る 親シートを作る シートシンボルで作成 シートの読み込み ラベルエントリ 回路図の作成は簡単なのでシンボルの作成から シートシンボルの作成 上部メニューからシートシンボルの作成 シートを…

進捗ないです4

どうも進捗ない男です。今日も自分用メモCircuitMakerのマーカー機能でネットリストハイライト操作は上部メニューのマーカーの部分からできる カラーの変更はSpaceキーでできる。 現状 STM32F767ZIT6の進捗がこんな感じSTM32F746VET6がこんな感じ

進捗ないです3

どうも進捗ないです。真面目にないです。昨日からCircuitMakerいじるの復帰しました。 今後もう少し詳細に書いていくのでよろしくです。 STM32F767のライブラリ作ったぞい CircuitMakerの階層回路図 Ctrl+ダブルクリックで階層内に入れることも忘れずに覚え…

進捗ないです2

どうもがれすたさんです。 最近更新できなくてすいませんBitbucketを利用した始めたんですが、これのWikiって機能がすごく気に入りましてそこにいろいろ書いています。 Markdownを使えるという点ではてなblogの下書きでもいいでのですが下書きの分類って意外…

進捗ないです

進捗なしもっと頑張りましょうお肉食べたい

STM32F746VET6でボードを作った(試作

どうもお久しぶりです。 今回はCortexM7マイコンであるSTM32F746でボードを作ったのでそれの紹介です。作業はokada氏と共同で行いましたtwitter.comおかだ氏のブログは以下のリンクですblog.livedoor.jpコンセプトはとにかくシンプルにという感じまあ写真の…

Cafe Au Lait baseが美味しいという話

自家焙煎 cafe notesさんの商品です。 shopping.cafe-notes.netパッケージを開けるとこんな感じ 母がいろいろ小物置いてくれたので地味ににぎやかとてもお洒落ですね。 味について 酸味は強くない ミルク効果かも知れないがすごいまろやかである 原液を薄め…

今年も終わりですね

今年もあと少しなので作ったものの振り返り意外に何も作ってないというね

デジタルディレイを作ってみた(その1

久々の更新です。ここ最近大学やら、仕事やら、勉強会やらであちこち言っていたのでまとめる時間を取れていませんでしたがやっとこさ落ち付いたので記事が書けます。というわけで今回はこいつが主役です 主なプラットフォーム説明 これなに? 酔漢大先生が作…

OpenSDAデバッガをDAPLINKファームにしてみる

OpenSDA用にもDAPLINKバイナリが用意され始めてきたのでこれを機にこの前買ったデバッガのファームをDAPLINKにしてみることにしました。 DAPLINKってなんだよ! まあ行ってしまえばMbedインターフェイス用ファームウエアです 以前はCMSIS-DAPリポジトリで色…

STM32F103RBT6ボードがいいぞって話

STM32ネタです。 STM嫌いな人は帰りましょう ほんだい! 戯言はおいておいてものを紹介していきますででん!ja.aliexpress.comまあ何ら変わりないSTM32F103のボードです。 特徴はこんな感じ STM32F103RBT6(64ピン)を搭載 よくあるチャイナ評価ボードにして…

Aliexpressで購入できるOpenSDA ARM Debugger

僕にしちゃ久々なデバッガーネタです。 これを買いました ja.aliexpress.com現在は少しバージョンが変わりコネクタの数が増えてます。 OpenSDAってそもそもなんだよ・・・・ まあ前も話しましたが簡単に Freescale社(現NXP 来年にはクアルコム社)が開発し…