どのマイクロコントローラーがUSBポートに直接接続できますか?


9

基本的に、USB経由でデータをマイクロコントローラーに送信するだけで、マイクロプロセッサーがデータをデコードし、5Vで動作するLEDライトストリップを駆動します。仕事に適したマイクロコントローラを見つけるのに苦労しています。

マイクロコントローラーは、USB通信用に2つのシリアル入力ポート、LEDストリップとの通信用に2つのシリアル出力ポートを備え、5Vで動作できる必要があります。シリアルCOMポートを設定するだけでUSB通信専用のICを用意する必要がないようです。

たとえば、LPD8806ストリップにバイトを書き込むArduinoコードのスニペットは次のとおりです。

void write8(uint8_t d) {
  for (uint8_t i=0; i<8; i++) {
    if (d & _BV(7-i))
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);
   digitalWrite(clockPin, HIGH);
   digitalWrite(clockPin, LOW); 
  }
}

データをラッチするには、ストリップにゼロを送信します。


1つのUSB接続(双方向)と1つのシリアル接続(これも双方向)を意味していると思います。あなたが写真に夢中なら、18f4550ファミリーが仕事をします。
Scott Seidman、

1
LEDストリップのプロトコルは何ですか?ストリップのデータシートまたはWebサイトへのリンクを追加できますか?
Rocketmagnet

@RocketmagnetそのLED ストリップ。データシートは中国語ですが、シリアル入力とクロック入力があり、ゼロを送信してラッチします。
Steve Barna

回答:


7

「2つのシリアル出力ポート」とは、1つのUARTを意味すると思います(USBを2つのポートとしても説明しているため)。Rocketmagmetは、多く/ほとんどのLEDストリングがSPIを使用していることを示していますが、これには少なくとも3本のワイヤーが必要です。必要なプロトコルを指定できますか?

一般的に、マイクロチップは今回も最低価格のマイクロコントローラーを持っています。また、 MicrochipはDILパッケージに多くのマイクロコントローラーを搭載していますが、他の多くのマイクロコントローラーはそれを放棄しています。DIYにとって重要な場合があります。PIC18F13K50

  • DIL-20とSMTパッケージの両方に存在
  • 5 Vで動作(LEDストリップとのインターフェース用)
  • 2.5ドルという低コストです(OK、それは相対的ですが、USB対応コントローラー、より基本的なタイプよりも少し高価です)。
  • 強化されたUSART for UARTインターフェース
  • あなたがそれを意味した場合に備えてSPIインターフェースを持っています
  • 25 mAのソースおよびシンクI / Oを備えているため、必要に応じていくつかのインジケータLEDを直接駆動できます。

また、読み取り
組込み機器上のUSBジェネリック機能、マイクロチップアプリケーションノートAN1166


彼はLEDストリップについて言及しているので、それは同期プロトコル(基本的にはデータリターンピンのないSPI)だと思います。そのPICには1つのSPIポートしかないため、適切ではありません。彼はプロトコルを少し強打することができましたが。
Rocketmagnet

@ロケット-彼はそれがSPIだとどこに言いますか?また、2つのSPIバスは必要ありません。SPIはマルチスレーブです。そして、スコットがコメントし、私が私の回答の最初に言ったように、私は2つのポートで彼が2つのピンを意味すると思うので、私は最初にUARTについて考えました。
stevenvh

多分PIC18F24J50?しかし、それは3.3vの部品なので、LEDストリップに接続するかどうかはわかりません。
Rocketmagnet

1
彼はそれがSPIであるとは言いませんが、私は以前にLEDストリップを使用したことがあり、それらは常に同期しています。私は間違っている可能性があります。彼は私が今まで見たことのない別の種類のLEDストリップを意味するかもしれません。彼はクロックとデータ用の2つのピンを意味すると思います。
Rocketmagnet

実際、私は質問を誤解し、彼は2つのLEDストリップを言ったと思いました!彼は実際には1つのLEDストリップに対して2つのピンを言った。ええと、元の提案と同じように。
Rocketmagnet

4

LEDストリップにはシンプルなシリアルインターフェイスがあります。コンピューターで制御する場合は、FTDIチップを使用してピンを小刻みに動かすことができます。http//www.ftdichip.com/Products/ICs/FT232R.htm

その後、libftdiまたはD2XXライブラリを使用するPC側で複雑さが生じます。しかし、Arduinoの例と同様に、それほど悪くはありません。

ハードウェアを作りたくない場合は、FTDIチップ付きの既製ケーブルをMouserなどのFTDIディストリビューターまたはSparkfunなどから購入できます。ケーブルはさまざまな電圧構成で利用できるので、慎重に注文してください。

もちろん、プロジェクトをスタンドアロンまたは自律的にしたい場合は、完全なマイクロコントローラーソリューションが必要です。


生のSPIデータをUSBコントローラーを介してLEDストリップに送信することを検討する必要があります。MicrochipはUSB-to-SPIを作成してHIDデバイスとしてセットアップしますが、FTDIチップはVCOMまたはD2XXのいずれかであり、c ++プログラムからライトストリップを実行するのに最適かどうかはまだわかりません。
Steve Barna

USB <-> UARTブリッジチップのように仮想シリアルポートとして表示されるUSB <-> SPIブリッジについては知りません。代わりに、ビットバンギングコードを記述する必要があります。これは、SPIにとって簡単です。
2012年

3

PSoC3の使用を検討してください

PSoc3

USB、およびほとんどすべての周辺機器で利用できます。(これらはソフトウェアで構成されます)LEDストリップ用に2つのシリアルポートを使用できることは確かです。必要に応じて、おそらく20を使用できます。

開発環境も、使うのが楽しいです。

PSoC Creator


3
まあそれは少しやり過ぎです。しかし、私はそれを調べます。
スティーブバーナ

8
@Rocket-PSOCのコストは、私が述べたPICの2倍以上であることがDigikeyでわかりました。これらの構成可能なペリフェラルがすべて必要な場合は、16 UARTなどの他のマイクロコントローラーにはないソリューションのために、金の重さ(スピーチの図として)の価値があることは間違いありません。しかし、OPはUSBポートとシリアルポート(UART、SPI、またはI2C)のみを必要とするようで、それを備えた比較的ローエンドのコントローラーを選択する方がはるかに安価です。
stevenvh

@stevenvh-PSoCは非常に高価になる可能性があることに同意します。あなたがそれらの多くの機能を利用することができるとき、それらは生産のために本当にそれだけの価値があります。しかしプロトタイピングのために、彼らはなら全くそれだけの価値。周辺機器の適切な組み合わせを備えた特別なPICを探す必要はありません。ボタンをクリックするだけでハードウェアの変更を実装できます。
Rocketmagnet

@Rocket-「ボタンをクリックするだけでハードウェアの変更を実装する」。はい、それはサイプレスの連中が私に言い続けたものです。私はそれを理解していません(これについては同僚と幅広く話し合いましたが、彼らも理解していません)。たとえば、アプリケーションでタイマーが必要な場合は、常にそれを必要とする可能性が高いので、しばらくの間それを捨てないでください。ハードウェアで何か違うことをしたいからです。私がやる ...あなたのスクリーンショットのように、コンフィギュレーション・ツールを感謝し、私は彼らのHC05コントローラに小さなFPGAを追加するために(彼らは、フリースケールとなった前)rhousand回モトローラを懇願してきましたが、できなかったこと
stevenvh

@Rocket-(継続)...アプリケーション内での再構成のために、開発中により柔軟なコントローラーを用意することでした。当時、私たちはモトローラの大口顧客であり、HC05の混乱を解消する方法についてアイデアを求めていました。何百もの異なるタイプがあり、いくつかは他よりも成功しました。したがって、1)FPGA、2)クロスポイントスイッチアレイを選択して、選択した周辺機器を(制限された)I / Oに接続できるようにすることをお勧めします。とにかく、ハードウェアは死にかけていました。どちらも起こらなかったし、モトローラはもはやコントローラーを作らない...
stevenvh

0

これより簡単にすることはできません:ATmega8U2

さらに、Arduinoブートローダーでも使用できます...

データシート: http //www.atmel.com/Images/doc7799.pdf

(少し簡潔になって申し訳ありません。電話から入力しています)


2
PCの後ろに戻ったとき(それが "前"になってはいけませんか?)、詳しく説明できます。これが最も簡単なソリューションですか?ATmega8U2はPICより50%高いので、それは良い話でなければなりません。
stevenvh

1
私はAVRライン(特にATmega)を支持します。なぜなら、Arduino環境を使用してプロトタイピングを迅速に行うことができ(ポスターはそれに慣れている!)、テストの修正と修正のサイクルが迅速になるためです。次に、コードを手動で最適化するか、Tiny2313などの小さなAVR uCを使用します(BTW、AVR用のソフトUSBライブラリがあります)。私はPICが好きでしたかったのですが(Arduinoが離陸する直前)それらを見て、AVRを選びました:私は彼らのドキュメントがより良く、コミュニティがより強いことに気づきました-ここハンガリーでは、PICは歴史的にもっとサポートされています。少量生産ではコストを下げるために、より短い開発サイクルを選択します。
ppeterka 2012年

1
正確になぜ反対票か。説明してもいいですか?
ppeterka 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.