問題タブ [i2c]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
468 参照

python - C モジュールで python を拡張する

そのため、i2c デバイスとやり取りするための C プログラムがあります。Python からそのデバイスに接続する必要があります。プログラムを python モジュールに移植する価値があるかどうか、または移植に伴う労力がサブプロセスを使用してプログラムを実行するだけの価値がないかどうか疑問に思っています。アプリケーションごとに異なることはわかっていますが、python C 拡張機能を学習してこのプログラムを移植するのに時間をかける価値があるかどうかを知りたいです。

更新: C と python の両方のソースに完全にアクセスできます。しかし、Python 側ではすでにかなりの作業が行われており、それが重要な場合は、可能な限り最小限の変更を維持したいと考えています。また、C に加えなければならない変更を最小限に抑えたいと考えています。それは実行可能ですが、私はそれを書いていません。

0 投票する
1 に答える
5649 参照

c - サンプル コード、7 セグメント LCD ドライバとしての MCP23017 (16 ピン IO エクステンダ、I2C) に関するドキュメント

Microchip の MCP23017 は、I2C ベースの 16 ピン IO エクステンダです。デバイスを一度セットアップ (ピンの方向と値を設定) できましたが、その後、デバイスをリセットまたは電源を入れ直さない限り、期待どおりに値を変更できません。これは、最初に初期化してピンを設定するために使用したコードです。

この後、出力値を切り替えられるようにしたいと思います (0xFE <-> 0x01)。私はこのコードを試みました:

この時点で、ランチに出かけるように見えます。ピンの値はランダムに見えます (入力対出力、出力ハイ対ロー)。誰かがこの I2C IO エクステンダーを使用した場合は、私を助けてください。よくわからない場合でも、コメントを歓迎します。注: ここに示す I2C API は、すべてのクロック サイクルに約があるビット バン アルゴリズムです。それらの間の1msの重み。

役立つドキュメント (種類): http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

0 投票する
2 に答える
1456 参照

linux-device-driver - Linux デバイス ドライバーのオンザフライでの I2C アドレスの変更

Linux システムに 2 台のカメラが接続されています。カメラは I2C 経由で制御されます。シングル カメラのデバイス ドライバーは、デバイス ドライバーに基づいていi2c-coreます。2台のカメラを切り替えたい。したがって、I2C アドレスをオンザフライで変更して、いずれかのカメラを制御したいと考えています。

これは合理的ですか?はいの場合、それを行う機能はありますか、またはクライアントをi2c_detach_clientおよびi2c_attach_clientでそれぞれ切り離して接続する必要がありますか?

アドバイスをありがとう、ステファン

0 投票する
1 に答える
1586 参照

i2c - Atmega64 ピンの質問です。SCL/SDA は TXD/RDX と同じですか?

私は決して Atmega のプロではありません。実際、彼らと一緒に働いたことはありません。Atmega64 コントローラーを使用するデバイスに、i2c インターフェイスを使用して外部 eeprom を追加しようとしています。データシートから、ピン 25 と 26 には PD0/PD1 というラベルが付いており、i2c の SCL/SDA であることがわかります。それはいいですし、ダンディです。それで、私はボードに行き、トレースを開始します。それらは、まだよく見ていないいくつかの単純な回路を備えたロッカースイッチに接続されていることがわかりますが、i2c互換のものであると想定しました。しかし、このデバイスにはそのようなロッカーが 2 つあるので、もう一方のロッカーを同じ 2 つのピンにトレースすることを期待していました (i2c は複数のスレーブを持つことができるバスであるため)。代わりに、PD2/PD3 および RXD1/TXD1 とラベル付けされた 2 つの隣接するピン 27 および 28 にトレースバックしました。さて、それは私を混乱させました。

SCL/SDA ラインで並行してメモリを追加できると思っていましたが、発見したことの意味は次のとおりです。

  1. SCL/SDA は RXD1/RXD2 または
  2. SCL/SDA がどのように機能するかについて混乱していますが、それはバスではありませんか、それとも単純な入力として使用できますか?

悲しいことに、私は私が何を求めているのかよくわかりません。誰かがこれに光を当てることができますか? メモリを SCL/SDA に追加できるかどうか。

ありがとう。

スティーブ

0 投票する
2 に答える
1613 参照

linux - Linux デバイス ドライバー テスト用のツールまたはフレームワーク?

Linux イーサネットおよび I2C ドライバーのコンプライアンスをテストしたいと考えています。これらのドライバをテストするためのオープン ソース ツールまたはフレームワークはありますか?

0 投票する
1 に答える
2191 参照

ipad - UART を介した iPad アクセサリ通信

コマンドを iPad に転送する iPad/iPhone 用の新しいアクセサリを製造しています。UART を使用するのが好きです ( Lingoと呼ばれる特定の Apple プロトコルを介して)。私の調査によると、使用できるのは USB (30PIN コネクタ) とカスタム プロトコルのみです。

質問:

  • UART を使用して APP 側から iPad アクセサリに接続する方法はありますか?
  • プロトコルが UART で実装されている場合、USB 経由でアプリで使用できない場合は、USB に移動できるはずです。

私の主な推測では、UART コマンドとアクセスは iPhone OS 用に予約されたプロトコルであり、アプリでは使用できないということです。特定の UART コマンドには、ボリュームやオーディオの再ルーティングなどの設定も含まれているため、セキュリティで保護されていると思います。

0 投票する
1 に答える
2338 参照

linux - Arduino I²C ライブラリ (ワイヤ) に相当する Linux は?

Arduino プログラムを Linux に移植しようとしています。Arduinoが「Wire.h」に持っているI²C機能に相当するものが見つからないように見えるので、私は立ち往生しています。

ワイヤ ヘッダー:ワイヤ ライブラリ

Linux i2C-dev.h: Linux でユーザー空間から I²C を使用する

具体的には、どうすればいいのかわかりません

Linux には、I²C デバイスから特定のバイト数を要求するのと同等の機能がないようです。「i2c_smbus_read_byte」は受信と同等であり、連続して呼び出されると利用可能なバイトを昇順であると想像します。

Linux の I²C オプション:

0 投票する
1 に答える
1684 参照

android - Androidハードウェア開発キット?

SPIまたはI2Cのいずれかを介してセンサーチップとインターフェイスするAndroid(OS 2.3および2.4)用のドライバーを作成するという課題に直面しています。

このデバイスは、IntelMedfieldまたはQualcomm8シリーズプラットフォームのいずれかに基づいて、最終的にAndroidスマートフォンで使用することを目的としています。

SPIまたはI2Cドライバーを実際に自分で作成することを心配する必要はないと思いますよね?私が使用できるAndroid用の現在のSPIまたはI2Cドライバーを知っていますか?

また、SPIまたはI2Cバスにアクセスできるハードウェア開発キットを見つける必要があります。現在のAndroidスマートフォンに通常見られるハードウェアを代表する適切なキットを見つけることができる推奨事項はありますか?

0 投票する
1 に答える
4007 参照

c++ - C++ で open と i2c を使用する

私はそれを認識し、cpp オブジェクト内では機能open()ioctl()ません。関数内で呼び出された場合は操作を実行できmain()ますが、クラス内では実行できません。ファイル システム呼び出しを行う別のオブジェクトを持つメイン ループで実行されているオブジェクトがあります。

したがって、基本的にメインループで開くことができます(ポインターの3を取得し、ioctl成功します)。しかし、オブジェクトでそれを行うと、open に対して 0 が返され (これはおそらくエラーではありません)、ioctl は失敗します。

ios::で動作しないため、 iostream オプションを使用できないことはわかっていますioctl。cpp オブジェクト内で通常の ioctl を機能させるにはどうすればよいですか?

0 投票する
1 に答える
5069 参照

c - i2cデバイスへのwrite()ing:操作は許可されていません

したがって、2つのPCA9555(16チャネルデジタルI / O)チップを、Linuxoveri2cを実行している小さな組み込みデバイスに接続しています。PCA9555デバイスには、7ビットアドレス0100000および0100001があります。

ボードの電源を入れると、次のように実行します。

そこで、最初のPCA9555チップのすべてのピンをハイに出力するように設定する簡単なプログラムを書いてみました。

これを実行すると、次のようになります。

だから私は自分が間違っていることを本当に理解していません。ハードウェアが正しく配線されていると仮定すると、ここからどこに行くのですか?