問題タブ [spi]

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 投票する
4 に答える
2288 参照

microcontroller - マイクロコントローラからマイクロコントローラへの SPI 通信

私はいくつかの読書をしていて、マイクロコントローラーで動作する「マスター」SPIさえ取得しました。これが私の質問です。基本的に、マスターがスレーブへの書き込みを初期化したい場合、SSPBUFに書き込みます。スレーブが応答するものをどのように制御しますか? その場合、データシートはイベントの順序を明確にしていないようです。

IE マスターは 1 文字を SSPBUF に入れます。これにより、SPI モジュールがスレーブにデータを送信し始めます。シフト中に、スレーブはバイトを返します。

スレーブ側では、着信データがあることを伝える何かがあり、最初に SSPBUF に書き込み、次にデータを受け入れることができますか?

また

マスターが転送を開始する機会を得る前に、返送する最初の「戻り値」を SSPBUF に書き込む必要がありますか?

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

embedded - SD / MMCカードをSPIモードにすると、CSはバイト間でハイになる可能性がありますか?

カードのチップセレクト(CS)ラインがSPI(SSP)回路によって自動的に駆動される「フレーム」信号に接続されたマイクロプロセッサがあります。これによりCS、各バイト間でHighになります。

MMC / SD仕様では、CSSPIモードに入るにはローに保持する必要があります。常にローに保持する必要がありますか、それともの各バイトを送信するときにのみローに保持する必要がありCMD0ますか?

0 投票する
3 に答える
2410 参照

c - libftdi v0.18を使用してLEDを点滅させるにはどうすればよいですか?

これはFT2232Dチップであり、LEDはBDBUS6に接続されています。

ライブラリは私が望むよりも文書化されていません(ただし、FTDI独自のライブラリよりも優れていますが、最新のカーネルでは機能しません)、これを行う唯一のサンプルコードは非推奨の関数を使用しています(私は試しましたが、そうではありません)動作しているようです)、そして私は絶対に困惑しています。

私がこのことを一生懸命やろうとすればするほど、それは難しく見える。正しい方向に少しずつ動かす必要があるので、宿題をしてくれる人を探しているわけではありません。どんな助けでも感謝します(投機的でさえ)。

更新:ftdi_enable_bitbang()は非推奨ですが、私はこれを試してきました。次のコードはコンパイルされ、barfingなしで実行されますが、blinkenlightenは実行されません。問題のデバイスの回路図は、http://www.semtech.com/images/datasheet/sx1211ska_v1_std.pdf、23ページで入手できます。BDBUS6およびBDBUS7はLEDに接続されています。

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

c - SPI ヘッダー ファイル

SPI ヘッダー ファイルが必要なので、2 つの PIC24FJ64GA002 用に SPI マスターとスレーブを記述できます。持っていたのですが、誤って削除してしまいました。ヘッダーをダウンロードするためのリンクを送ってください。至急ですのでお早めに。

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

c - ライブラリでユーザーに独自の機能を提供させるにはどうすればよいですか?

AVRMCU用の静的ライブラリを書いています。私はavr-gccとAVRLibcを使用しています。一部のライブラリ関数は、SPIを使用してデバイスと通信します。ただし、SPI通信はすべてのAVR MCUで同じ方法で行われるわけではありません(すべてのAVR MCUが同じレジスタを持っているわけではありません)。それはビッグバンギングによってさえ行うことができます。したがって、特定のアプリケーション用に、ユーザーが独自のSPIルーチンを提供するようにします。

これどうやってするの?すべてのライブラリ関数は、追加の引数としてコールバック関数を取る必要がありますか?ライブラリ内にSPIハンドラーとして機能するグローバル変数が必要ですか?関数を(を使用して)外部にする必要がありますexternか?

ありがとうございました、

0 投票する
3 に答える
18681 参照

usb - USBからSPIへのコンバーター

通信にSPIを使用するチップがあり、コンピューターのUSBポートに直接接続したいと考えています。USBからSPIへのコンバーターを使用した経験のある人はいますか?何かお勧めはありますか?ウェブ上でのクイック検索で明らかに

http://www.robotshop.com/devantec-usb-i2c-spi-serial-interface.html

http://www.sparkfun.com/products/9235

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

c - C - SPI モードで SD カードを初期化すると、常に 0xFF が読み戻されます

SPI インターフェイスを使用してCypress PSoC 5で 2 GB の SanDisk SD カードを初期化しようとしています。FatFs - Generic FAT File System Moduleのサンプル ビット バンギング コードを使用しています。ロジック アナライザーでインターフェイスを分析しました (「参考文献」を参照SD カード初期化のスクリーンショット)。問題は、SD カードからのデータ アウト ラインが常に高いことです。カードの init コマンドから 0x01 が返されるはずです。ただし、SDカードはPCで正常に読み取ります。私が使用しているコードは以下のとおりです。問題は何でしょうか?

http://ucontroller.com/documentation/SDCardDoc.htmlの SD ソケットを使用しています。

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 投票する
2 に答える
9855 参照

c - Receiving SPI data via DMA on PIC32

I know that this topic (DMA & SPI) has already been talked about on numerous threads in the microchip forum, actually i've read all the 15 pages in result of the search with keyword "dma" and read all the topics about dma & spi.

And I am still stuck with my problem I hope someone can help me :)

Here is the problem.

My chip is a PIC32MX775F512H. I am trying to receive (only receive) data using SPI via DMA. Since you cannot "just" receive in SPI, and that the SPI core starts toggling the SPI clock only if you write into the SPIBUF (SPI1ABUF for me) I am trying to receive my data using 2 DMA channels. DMA_CHANNEL1 for the transmitting part. DMA_CHANNEL2 for the receiving part.

I copy pasted the code from http://www.microchip.com/forums/tm.aspx?tree=true&high=&m=562453&mpage=1#

And tried to make it work without any luck. It only receives several bytes (5 or 6).

I've set the Event Enable Flags to DMA_EV_BLOCK_DONE for both dma channels, no interrupt occurs.

Do you have any idea ?

Here is the code I am using :

with those two interrupt handlers :

So I end up waiting forever at the line : while(!DmaRxIntFlag);

I have put breakpoints in the interrupt vectors, they are never called.

This is the state of several registers during the ever lasting wait :

DMACON 0x0000C800
DMASTAT 0x00000001

I am using SPI1A port, so SPI1ABUF and _SPI1A_RX_IRQ

DCH1SPTR 0x5
DCH1SSIZ 0x2B

DCH2DPTR 0x6
DCH2DSIZ 0x2B

DCH2CON 0x00008083
DCH2ECON 0x1B10
DCH2INT 0x00800C4
DCH2SSA 0x1F805820
DCH2DSA 0x00000620

Channel 1 is used to transmit
Channel 2 is used to receive

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

arduino - HID リーダーを使用した Arduino での SPI

ロック機構のアクセス ポイントとして HID OEM75 を使用するプロジェクトを構築しています。Arduino Duemilanove (ATmega328) を介して制御を行っています。私たちは、セキュリティと (明らかに) サポートのためにSPIと協力しています。(どの RFID チップもセキュリティがかなり弱いことを認識しています。)

現在、カード リーダーから SPI 経由でバイトを受信するのに苦労しています。

カードリーダーは自律読み取りモードにあり、カードを読み取り、信号を Arduino に送信し (SPI とは別のカード存在ラインを介して)、Arduino に Slave Select ラインをハイにして転送サイクルをアクティブにするように指示します。カードリーダー。ここで問題が発生します。コマンドバイトをカードリーダーに送信せずに、Arduinoにカードリーダーからのバイトを単純に読み取らせる方法がわかりませんか?

デフォルトのコマンド構造である SPI.transfer(0x00) は、バイト (この場合はダミー バイト 0x00) を送信し、ソースからバイトを受け入れますが、ソースは自律的に動作しているため、ダミー バイトを受け入れません (そしてそれは実際にその操作を台無しにします)。

簡単に言うと、Arduino の SPI ライブラリを使用して、マスター ソースからバイトを送信せずに、スレーブ ソースからバイトの文字列を受け入れるにはどうすればよいでしょうか。