yoshiyuki's blog

Arduino/Teensy/Raspberry pi pico を利用した I2C, SPI 通信アプリを紹介します

Arduino

Arduino Nano / Teensy 4.0 / Raspberry Pi Pico / MAX32625PICO 比較

自作の USB-I2C変換ツールとして使う場合の各マイコンボードの機能と性能の比較です。 比較表 Arduino Nano Teensy 4.0 Raspberry Pi Pico MAX32625PICO Note 信号レベル 5.0 V 3.3 V 3.3 V 3.3V I2C Yes Yes Yes Yes Sketch/Firm で SCL = 100 kHz に固定 S…

Arduino で I2C / High Level を 3.3 V や 1.8 V にする

この記事では、Arduino を 3.3 V や 1.8 V のデバイスと接続して使用するために必要なレベルシフタを紹介します。また、最初から 3.3 V のマイコンを搭載したボードを使用するという手段もありますので、それについても紹介します。 レベルシフタの例 レベル…

Arduino / I2C Slave デバイスを作る

Arduino を I2C Slave デバイスにするための Sketch です。自作アプリの動作確認用に作成しました。 主な仕様 Register Map Sketch Sketch (SCL/SDA 内蔵Pull-up 無効) 主な仕様 SDA = A4 SCL = A5 7-bit Slave Address = 0x24 (8-bit表記では 0x48/0x49) SC…

Arduino / I2C 関数をイチから作る (6)

最後に Master Read の処理を説明します。 -: 事前コマンドの書き込み → マイコン: Start Condition の取得要求 ← マイコン: 取得完了 → マイコン: Slave address + R の入力 → マイコン: Data 送信を指示 ← マイコン: 送信完了 ← マイコン: ACK or NACK → …

Arduino / I2C 関数をイチから作る (5)

Arduino のマイコンを直接制御して I2C を実行する方法はわりと簡単です。ここでは Master Write の流れを説明します。 「→ マイコン」 をマイコンへの入力、「← マイコン」をマイコンからの応答として、以下のようになります。 → マイコン: Start Condition…

Arduino / I2C 関数をイチから作る (4)

ここからは関数の中身について説明します。肝はレジスタの直叩きです。Arduino はマイコンの使い方のひとつの形態であり、開発環境も含めてマイコンの機能を簡単に利用できるよう整えられた環境です。つまり、実際に各種機能を実現しているのはマイコンです…

Arduino / I2C 関数をイチから作る (3)

作った I2C関数の使い方です。 実際に呼び出して使うのは以下の 2個です。 // Master Write byte i2c_write(byte slave_adr, byte *data, int data_length) // Master Read byte i2c_read(byte slave_adr, byte *reg_adr, int reg_adr_length, byte *read_da…

Arduino / I2C 関数をイチから作る (2)

作った関数がこちらです。github.comloop の中身は使用例です。 使い方は次の記事で説明します。 // 06/12/2020 Rev. 1.2 // revised a bug in read function // for Examples byte byteSC; byte byteADR; byte byteREG[2]; byte byteWRITE[16]; byte byteRE…

Arduino / I2C 関数をイチから作る (1)

Arduino で I2C をやろうと思ったら、まず wire ライブラリを使うと思います。そして wire ライブラリを使うと必ず、タイムアウトが無いことに苦しむと思います。 私が苦しんだのは Start Condition の無限ループでした。 wire ライブラリでは Master Read …

Arduino / Teensy / Raspberry Pi Pico / MAX32625PICO で I2C

I2C 通信などを行うアプリ ACTRL を紹介します。 Windows アプリ と Android アプリがあります。 Arduino / Teensy / Raspberry Pi Pico / MAX32625PICO を利用します I2C / SPI / UART 通信を行うことができます GPIO 端子を出力端子に設定して任意の Logic…