組み込み系

LinuxでCAN通信 (CAN FD対応)

要点 LinuxカーネルはCAN通信をサポートしている。 Ubuntuではカーネルコンフィグをいじらなくてもデフォで使える。 ネットワークインターフェースとして扱われ、ソケットAPIで叩ける。 CAN / CAN FDについて はじめてのCAN / CAN FD - Vector Japan:まずこ…

見捨てられゆく古典的な組込み系

【注意】これはポエムです。「PSoCのPはもはやProgrammableの意味ではない、Infineonが次世代PSoCロードマップを公開」という記事を読んで、まあそうだよなというあきらめまじりの残念な気持ちになった。PSoCはプログラマブルなアナログ/デジタル内蔵のマイ…

マイコンでブラシレスモータを回す方法についてのノート

1. ESCを使う ラジコン用やドローン用のESC(Electronic Speed Controller)を使う。 PWM1本で制御できる。Arduino系ならServoクラスで制御できるのでいちばん簡単。 ドローン用のESCは一方向にしか回せないので要注意。(逆転ができない) 起動時にパルス幅のキ…

メモ:レベルシフタ (レベル変換)

双方向レベル変換IC FXMA108 方向を気にせず使えるので便利。 https://akizukidenshi.com/catalog/g/gK-17062/ https://akizukidenshi.com/catalog/g/gM-04522/ 2電源バストランシーバ 74LVC(H)8T245, 74LVC(H)16T245 標準ロジック74xx245の2電源版。 https:…

5V出力の昇降圧DC/DCコンバータについて

単三型のニッケル水素電池4本から5Vを作りたいことがよくある。しかしこれは意外とやっかいである。ニッケル水素電池の公称電圧は1.2Vなので4セルなら4.8Vだが、満充電時の解放電圧は1.4Vくらいになるので4セルなら5.6Vになる。つまり、入力電圧の範囲が5V未…

今さらEagleメモ

常にベクターフォントを使う Options > User Interface > Always vector font をチェック 部品のシンボルで型番をVALUEに表示 部品のライブラリでValueのラジオボタンをOffにする。 (Onだとデフォルトで空欄となる。意味不明だがそういう仕様。) 部品のシン…

メモ:FTDIのUSBシリアル変換でCOMポート番号を増えなくする

こちらの記事をもとに確認した。FTDIチップのS/Nによらず、PCの同じUSBポートに挿せば同じCOMポート番号になるようにできる。 要点 事前にデバイスマネージャで「非表示のデバイスの表示」にして既存のFTDIのCOMポートを削除 レジストリエディタで下記のパス…

I2Cのクロックストレッチ

I2Cバスは、通常はマスターがSCLラインを制御することで通信を主導し、スレーブはマスターのタイミングに従います。しかし、スレーブ側の処理が間に合わないとき、スレーブはSCLラインをLowに保持することでマスターを待たせることができます。これを「クロ…

メモ:RTOSのAPIリファレンス

Amazon FreeRTOS Azure RTOS ThreadX

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

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

BLEの最大データサイズ?

今さらですが、BLEの最大データサイズって (BLE4.2以降のデータ長拡張は別として) 何バイトでしょう? 27バイト? 23バイト? 22バイト? 20バイト?資料によってまちまちで混乱しませんか? 中には「20バイト程度」とかボカして書かれてたり。これ、図解す…

EtherCATネタまとめ

個人的に今年取り組んだ最大のネタはEtherCATでした。今年の成果をまとめます。 ブログ記事 (はてなブログ) ソース(GitHub) 動画 (YouTube) スライド資料 (SlideShare) ブログ記事 (はてなブログ) ソース(GitHub) 動画 (YouTube) スライド資料 (SlideShare) …

EtherCATのSDOとかPDOとか

EtherCATに関する文章を読んでいて、何のことわりもなく唐突にSDOとかPDOとかいう異質な言葉が出て来て面食らったことはないですか? SDOとかPDOとかってCANの用語じゃないの? SDOとかPDOとかいうのは、EtherCAT用語というよりは本来はCANopen用語のはず。E…

ExcelマクロでEtherCATの制御

EtherCATについて語る Advent Calendar 2019 はもう埋まりそうなので、こちらはニッチすぎる番外編記事です。 やりたいこと オープンソースのEtherCATマスターであるSOEMをDLL化し、ExcelのVBAマクロから呼び出せるようにする。これによって、ExcelからEther…

GR-SAKURAでEtherCAT

この記事は EtherCATについて語る Advent Calendar 2019 の16日目です。昨日は@nonNoiseさんの EtherCATでステッピングモータ を動かしてみる でした。さて、12月14日に開催されたルネサスナイト15にて「GR-SAKURAでEtherCAT」と題してLTしてきました。今日…

EtherCATマスターSOEMを.NETで使う

この記事は EtherCATについて語る Advent Calendar 2019 の11日目です。昨日は@nonNoiseさんの EtherCAT開発方法 フレーム編(ライトまで) でした。今日はオープンソースのEtherCATマスターであるSOEMをWindows上の.NETアプリで使う方法を解説します。 SOEM…

EtherCATマスターSOEMをマイコンに移植する

この記事は EtherCATについて語る Advent Calendar 2019 の8日目です。昨日は@nonNoiseさんの EtherCAT開発方法 概要編 でした。今日はオープンソースのEtherCATマスターであるSOEMをOS無しのマイコンに移植する上でのポイントをまとめます。(本件の位置づけ…

IoTつくるよ!でのEtherCATに関するFAQ

この記事は EtherCATについて語る Advent Calendar 2019 の4日目です。昨日は@nonNoiseさんの EtherCATスレーブに使える半導体 (1) でした。さて、11月30日(土)に開催されたIoTつくるよ!2に出展し、「ArduinoでEtherCATのデモ」を展示してきました。すこし…

EasyCATのコンフィグ方法

EasyCATとは? AB&T社が開発・販売しているEtherCATスレーブ基板の製品群。この記事ではおもに EasyCAT Shield for Arduino について述べる。その名の通り、Aruino用のシールドである。 EasyCATのコンフィグとは? EasyCATは、出荷時には入力32バイト+出力32…

ArduinoやラズパイでEtherCAT

ArduinoやラズパイでカジュアルにEtherCATを組むまとめ。 EtherCATマスターとEtherCATスレーブ EtherCATスレーブ : EasyCAT + Arduino Uno EtherCATマスター(1) : Rasoberry Pi EtherCATマスター(2) : Ethernet Shield 2 + Arduino DUE EtherCATマスター(3) …

ラズパイのセットアップメモ (ヘッドレス運用)

ヘッドレスでのセットアップと運用 ラズパイをヘッドレス(ディスプレイ、キーボード、マウスを接続しない)で使うためのセットアップ手順を以下にメモする。 母艦: Windows 10 の PC ラズパイ: Raspberry Pi 3B OS: Raspbian Stretch Lite SDカード: 16GB O…

HHD Free Serial Port Monitor

Windows PCのシリアルポート(仮想COMポートを含む)の送受信データを傍受してモニタできるツール。コンソール表示、Hex/ASCII表示など種々の形式でモニタできる。 freeserialanalyzer.comFree Serial Analyzerという名前になっているが、このソフトはHHD社のD…

FTDIのUSBシリアル変換ICのCBUSの機能割り当て

FTDIのUSBシリアル変換ICのCBUSxピンには種々の機能を割り当てることができます。 FT232RLの場合、デフォルトでは下表の機能が割り当てられています。 ピン 機能 説明 CBUS0 TXLED# 送信データLED駆動 (Lowアクティブ) CBUS1 RXLED# 受信データLED駆動 (Low…

WindowsでEtherCATマスター

Windows PCでLANポートを用いてEtherCATマスターを動作させる方法のメモ。 (2019/12/29 加筆修正) SOEMとは? SOEMのファイル構成 SOEMのビルド サンプルプログラム slaveinfo サンプルプログラム simple_test おまけ:ネットワークインターフェース名の取得…

MPU-6050系モーションセンサまとめ

6軸モーションセンサではSTマイクロのLSM6DS3とならんでメジャーなTDK InvenSenseのMPU-6050。派生型番がいろいろあってややこしいのでまとめ。 MPU-6050はI2Cのみで4mm角QFN。 MPU-6500はI2C/SPIで3mm角QFNだけどあまり見かけない。 MPU-9150 = MPU-6050 + …

Arduinoのボード別ソースの場所

Arduinoのボード別のライブラリソースは、通常は下記の場所にある。 (Winsows10の場合) C:\Users\ユーザ名\AppData\Local\Arduino??\packages\arduino\hardware\この場所にアーキテクチャごとにフォルダを切って置かれる。 avr\ sam\ stm32f4\

FM音源YMF825メモ

FM音源YMF825とは とても便利なヤマハのFM音源チップ。 SPI I/F DAC/アンプ内蔵 4オペ16音ポリ すぐに使えるモジュール基板が市販 akizukidenshi.com github.com Arduino用簡易ライブラリ Arduinoで使える簡単なライブラリを作成した。 github.com 作例 これ…

スマートオシロを作ろう(1)

やりたいこと オシロを基板に当てて波形を見る時、両手がふさがってオシロの操作に困ることがよくあります。そこで今流行りのAIスピーカを使って、声で操作できるようにしたいと思ってます。具体的には、Google AIY Voice Kitで音声を認識し、LAN経由でオシ…

SDS7102のファームウェアをアップデートしてSCPI対応

やりたいこと 中華オシロのSDS7102のファームウェアをアップデートして、SCPIコマンドによるリモートコントロールに対応させます。メーカー公式のファームウェアアップデートですが、後述するように少し挙動が怪しいです。アップデートの実施は個人の責任で…

Raspberry PiをWindows PCから操作

やりたいこと ラズパイとPCをLANケーブルで直結(※) コンソールまたはリモートデスクトップでラズパイにログイン PCのインターネット接続をラズパイと共有 ラズパイ上のフォルダを共有フォルダにしてPCから開く ※ ラズパイはAuto MDI/MDI-X対応なのでクロスケ…