1119464_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1119464_ja-JP

1119464_ja-JP

I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • Background:

NXP SC18IS602B I2CバスからSPIブリッジチップへのTSSOP16パッケージ、つまり16リードを使用しています。0.65 mmピッチ;本体は5 mm x 4.4 mm x 1.1 mm。 pastedImage_1.png

お客様は、SC18IS602B機能をエミュレートするために、より小さなパッケージを使用する必要があります。

Kinetis LシリーズMKL03Z16VFK4R製品は、4mm x 4mm x 0.58mmのボディでQFN24パッケージを採用しています。

pastedImage_6.png

  • Demo Overview

I2C から SPI へのブリッジのデモでは、SC18IS602B チップの代替ソリューションのデモを提供します。このデモは、I2C0モジュールをI2Cスレーブとして使用し、SPI0モジュールをSPIマスターとして使用するFRDM-KL03Zボードに基づいています。提供されるデータバッファサイズは400バイトです。デモソフトウェアは、KSDK V2.0 for FRDM-KL03Zソフトウェアに基づいています。

I2Cスレーブインターフェース:

ピン番号機能FRDM-KL03Zジャンパー

PTB3                          I2C0_SCL           J2-10

PTB4 I2C0_SDA J2-9

 

SPIマスターインターフェース:

ピン番号機能FRDM-KL03Zジャンパー

PTA5                           SPI0_SS             J2_3

PTA6                           SPI0_MISO         J2_5

PTA7                           SPI0_MOSI         J2_4

PTB0 SPI0_SCK J2_6


INTピン(I2CからSPIへのブリッジでi2cマスターが新しいi2c転送を開始できるかどうかを示し、ローがアクティブであることを示します)

ピン番号機能FRDM-KL03Zジャンパー

PTB11                        GPIO output         J2_2

 

I2CマスターをFRDM-KL03Z I2Cスレーブインターフェースに接続し、SPIスレーブをFRDM-KL03Z SPIマスターインターフェースに接続します。FRDM-KL03Z GNDをI2CマスターとSPIスレーブに接続してから、これらのボードに電源を追加してください。以下は、ハードウェアプラットフォームの接続方法です。

1.jpg

  • I2C to SPI Bridge デモ機能

SPI0_PCS0チップ選択ピンが 1 つある KL03 チップの場合、I2C to SPI Bridge デモでは、SPI 書き込みコマンドとして機能 ID 0x01のみがサポートされます。

例:i2cマスターが8バイト(0x21,0x22...0x28)SPIスレーブに、i2cマスターは以下のデータをFRDM-KL03Zボードに送信する必要があります。

[START] + [I2C Slave address+/W] + [0x01](機能ID) + [0x21](データ1) + [0x22](データ2) + ... +[0x28](データ8) + [STOP]

 

I2CからSPIへのブリッジデモは、SPIインターフェイスを構成するための機能ID 0xF0をサポートします:6Mbps / 3Mbps / 1.5Mbps / 1Mbpsの4つのSPIボーレートを提供します。詳細については、以下の画像を確認してください(SC18IS602Bデータシートから抜粋した画像)。

例:お客様は、SPIボーレートを3Mbpsに構成し、以下のデータをFRDM-KL03Zボードに送信できます。

[START] + [I2C Slave address+/W] + [0Xf0](機能ID) + [0x01](データ1) + [STOP]

  • ハードウェアプラットフォーム

このデモはFRDM-KL03Zボードに基づいており、内部IRC48Mクロックをシステムおよびバスクロックソースとして使用します。外部クロックソースは必要ありません。

pastedImage_10.png

  • サポートされているツールチェーン

- IAR embedded Workbench 7.60.1 (英語)(テスト済み)

- キールMDK 5.18a

- GCC ARM 組み込み 2015-4.9-q3

- Kinetis Development Studio IDE 3.2.0 (英語)

  • デモの実行
  1. ホストPCとターゲットボードのUSBポートをUSBケーブルで接続します。
  2. 次の設定でシリアル端末を開きます。

- 9600ボーレート

- 8データビット

- パリティなし

- 1ストップビット

- フロー制御なし

  1. プログラムをターゲットボードにダウンロードします。
  2. I2Cマスターが起動してSPIインターフェースを設定

I2CからSPIへのブリッジボードI2Cアドレスは0x7Eです。

1.jpg

  1. I2CマスターがSPIスレーブにデータを書き込みます

I2CマスターはSPIスレーブに10バイトを書き込み、11バイトを送信します(機能IDが1つ0x01含まれています)。最初のデータは0xAAされ、最後のデータは0x22です。

I2C to SPI Bridgeがデータを受信した後、SPIスレーブに10バイトを送信します。

  1.jpg

I2CからSPIへのブリッジは10バイトを受信

1.jpg

1.jpg

I2C から SPI へのブリッジで 10 バイトを SPI スレーブに送信

1.jpg

1.jpg

  1. I2CマスターはSPIスレーブからデータを読み出します

I2Cマスターは、SPIスレーブから10バイト(0x10〜0x19)を読み取る必要がありますが、最初にSPIスレーブにデータを書き込んでから、I2CからSPIブリッジデータバッファに直接データを読み取る必要があります。

ここでは、I2CからSPIブリッジデータバッファへの10バイトの読み取りを示しています。

1.jpg

1.jpg

1.jpg

SPI Bridgeデモ・ソフトウェアに添付されているI2Cのデフォルトの場所は次のとおりです。

..\SDK_2.0_FRDM-KL03Z\ボード\frdmkl03z\user_apps\i2c_to_spi

Freedom開発プラットフォームKinetis Lシリーズ・マイクロコントローラ日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

接続したSPIスレーブデバイスは何ですか?

よろしくお願いいたします。

Mike

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

このチップを構成でき、しばらくの間動作し、その後、I2Cコマンドへの応答を停止し、SPIバスが正しく動作しなくなったように見えます。MISO データはなく、クロック レートは設定した 460 kHz から 1.8 MHz に変化します。失敗した場合のデータは次のようになりますLogic Analyser screen shot.JPG

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

SPIピン関連の構成を確認してください。

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

チップを設定できますが、アドレス+ functionid + dataを送信するとクロックやデータが得られません。どんなアイデアでも大歓迎です。私はコントローラーとしてarduinoを使用しています。

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi,

KL03を使用してSC18IS602Bチップをシミュレートし、データバッファを400バイトに拡張しています。

i2c-to-spi コードを確認してください。

pastedImage_4.png

そして、I2Cマスターから400バイトを送信するテストを行いますが、これは以下の写真に示すように正常に動作します。

pastedImage_5.png

pastedImage_7.png

pastedImage_8.png

pastedImage_6.png

pastedImage_13.png

I2Cデータは0x1から始まります0x21

pastedImage_9.png

I2Cデータ停止(0xad、0xae、0xaf)

pastedImage_10.png

SPIマスター送信データは0x21、0x22...で始まります。

pastedImage_1.png

SPIマスターは、0xad、0xae、および0xafでデータを停止します。

pastedImage_12.png

ご清聴ありがとうございました。


良い日をお過ごしください
馬慧(マ・ホイ)

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hello,

どうすれば一度に400バイトを送信できますか?

チップには 200 バイトのバッファしかありません。

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hi,

私は400バイトでデータバッファをテストしました。

I2Cマスターは問題なくI2CからSPIブリッジに400バイトを送信し、SPIスレーブはI2Cマスターから送信された398バイトを取得できます。

よろしくお願いいたします。

Mike

日時:I2CからSPIへのブリッジ<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Hello,

チップを使用すると、一度に送信できるIC2バイトは12バイト(アドレス+FunctionID +データ)のみです。

12バイト以上を送信すると、チップはクロックをローにプルしますが、戻すことはありません(クロックストレッチ)。

時々、ICに対して承認が届かないことがあります。

ICには200バイトのバッファがありますが、私は10バイトしか使用できません。

あなたの写真では、12バイトしか送信していないことがわかります。(10 データ バイトのみを送信します)。

あなたも私と同じ問題を抱えていますか?

Tags (1)
No ratings
Version history
Last update:
‎01-05-2026 12:17 PM
Updated by: