Hub bertenaga bus USB - lebih dari 100 mA per perangkat?

11

Saya ingin mengajukan pertanyaan yang cukup spesifik mengenai manajemen daya USB.

Pertama-tama, saya akan menguraikan desain perangkat saya. Ini adalah driver jalur sinyal simetris dengan codec audio bawaan untuk sistem speaker DIY saya. Perangkat ini secara internal dibagi menjadi dua blok yang sebagian besar independen: driver paling baris dengan MCU yang mengendalikan dan codec audio (TI PCM2706). Keduanya membutuhkan konektivitas data USB (melalui FT232R untuk blok driver) dan seluruh perangkat harus menggunakan bus. Dua blok akan dihubungkan bersama oleh chip hub USB, menghasilkan koneksi USB uplink tunggal ke PC. Saya berharap konsumsi tahap driver menjadi sesuatu antara 100 dan 200 mA (pasti lebih dari satu unit muatan).

Inilah masalahnya: Menurut spesifikasi USB, hub yang ditenagai bus hanya dapat menyediakan satu unit per port hilir sambil menarik maksimal 5 unit dari hulu. Saya ingin tahu, apa yang akan dilakukan hub jika saya meminta dua unit melalui FT232 untuk tahap driver. Batas hulu 5 unit tidak akan tercapai (1 unit untuk hub, 1 unit untuk codec dan dua untuk driver), sehingga komputer harus secara fisik dapat memasok arus itu.

Untuk chip hub, saya telah memeriksa http://www.ti.com/lit/ds/symlink/tusb2036.pdf . Ada pilihan mode powering "ganged", apakah ini bisa membantu? Atau apakah chip itu hanya menolak untuk memberikan dua unit kepada pengemudi? Dan dalam hal ini, apakah ada solusi kotor?

Saya menyadari persyaratan bahwa perangkat berdaya tinggi juga diharuskan untuk menarik maks 100 mA selama enumerasi; ini bukan masalah karena FT232 dapat mengaktifkan driver setelah enumerasi. Hub juga akan menyalakan panggung secara mandiri.

Semoga saya menyatakan masalah saya cukup jelas dan terima kasih atas waktu Anda sebelumnya :)

MEMPERBARUI:

Saya melakukan penelitian lebih lanjut pada chip TUSB2036. Perlindungan arus berlebih dapat dimatikan oleh pin / OCPROT. Hub kemudian melaporkan ke pengendali root bahwa ia tidak dapat mendeteksi arus berlebih. Ada peringatan dalam datasheet, bahwa perlindungan OC diperlukan oleh spesifikasi USB 2.0 - ini tidak masalah bagi saya, saya hanya perlu 1,1 kecepatan penuh. Hub root PC kemudian harus memasok IMO 500 mAmps ke seluruh perangkat. Jadi, saya bisa mengatur FT232 pengemudi hanya membutuhkan 100 mA dan hub tidak akan pernah tahu jika saya akan melebihi batas (tentu saja, menghormati 500 mA dari PC). Adakah yang tahu apakah ini bisa berhasil?

Ladislav
sumber

Jawaban:

3

Pemahaman saya tentang desain Anda adalah bahwa seluruh perangkat berada pada PCB tunggal, berada dalam satu kandang, dan terhubung ke host dengan kabel USB tunggal. Anda telah mengintegrasikan hub ke PCB untuk memungkinkan kedua perangkat berkomunikasi dengan PC. Jawaban berikut akan bergantung pada asumsi-asumsi ini, jika itu dibuat dari beberapa perangkat terpisah yang dihubungkan oleh kabel yang dapat dilepas maka itu mengubah beberapa hal.

Dalam hal ini, saya sarankan Anda mengkonfigurasi hub untuk menghitung sebagai perangkat berdaya tinggi, dan membagikan 500 mA yang dihasilkan di antara seluruh papan. Yang cukup menarik, skematik sampel port-gedang TI menunjukkan semua perangkat terhubung bersama, bahkan ketika menggunakan IC manajemen daya mereka:

masukkan deskripsi gambar di sini

Jalur catu daya 5V yang masuk (disorot dengan warna biru, karena merupakan salah satu dari dua jaring yang kami minati dalam skema rumit ini) terhubung ke IC manajemen daya TPS2041 (deskripsi yang murah hati, sebenarnya hanya FET yang mati ketika mendeteksi 500mA dari arus yang dilewati). Namun, masing-masing input disingkat bersamaan, dan masing-masing output disingkat bersama juga, dan kemudian didistribusikan ke masing-masing port hilir (jaring ditunjukkan dengan warna merah).

Pada dasarnya, mereka melakukan perlindungan arus berlebih untuk semua bagian hilir dalam satu IC. Mereka tidak memiliki cara untuk mendeteksi apakah mereka memiliki tiga unit daya rendah (100mA), unit daya tinggi tunggal, atau dua unit daya rendah dan satu unit 300 mA. Semua opsi ini dapat diterima berdasarkan desain referensi ini. Kau menulis:

Menurut spesifikasi USB, hub yang ditenagai bus hanya dapat menyediakan satu unit per port hilir sambil menggambar ...

tetapi, untuk langsung menjawab pertanyaan Anda, desain ini dari Texas Instruments (anggota grup USB dan implementor utama) menunjukkan bahwa Anda hanya perlu memastikan bahwa arus total kurang dari 5 unit.


Untuk mengatasi masalah Anda, aturan menyatakan (diambil dari USB yang sangat baik dalam dokumen singkat ):

Fungsi bertenaga bus daya tinggi akan menarik semua dayanya dari bus dan tidak dapat menarik lebih dari satu unit muatan hingga dikonfigurasi, setelah itu ia dapat mengalirkan 5 unit muatan (500 mA Max) asalkan ditanyakan dalam deskriptornya.

Jika Anda dapat menjamin bahwa tahap driver Anda tidak akan mulai menggambar arus hingga perangkat telah dikonfigurasi (yang mungkin sesederhana penundaan waktunya pada pengontrol host), Anda dapat dengan mudah menyatukan semuanya. Karena seluruh rangkaian Anda menggunakan satu PCB dan tidak memiliki port hilir yang dapat diakses pengguna, Anda mungkin juga dapat meninggalkan TPS2041 dan cukup merancang sistem agar tidak memerlukan lebih dari 500 mA arus di negara bagian mana pun.

Manfaat lain dari pencacahan sebagai perangkat berdaya tinggi adalah peningkatan spesifikasi tegangan input. Ketika Anda telah disebutkan sebagai perangkat berdaya rendah, tuan rumah hanya diharuskan untuk menghasilkan 4,40 V di port hulu (yang akan lebih rendah di perangkat Anda karena hambatan kabel). Ketika Anda telah disebutkan sebagai perangkat berdaya tinggi, spesifikasi menjamin bahwa Anda akan mendapatkan 4,75 V, yang lebih mungkin berada dalam kisaran operasi komponen 5V yang mungkin Anda gunakan.

Kevin Vermeer
sumber
Terima kasih atas jawaban yang bagus. Tetapi bagaimana cara mengkonfigurasi hub dengan cara itu? Apakah saya memerlukan EEPROM eksternal atau saya hanya mengikat pin / GANGED ke tanah (dan pin konfigurasi lainnya sesuai dengan skema yang telah Anda kirim)?
Ladislav
1
Anda harus mengikat! GANGED ke tanah dan! EXTMEM ke 3.3V. Namun, EEPROM eksternal mungkin bagus: Jika tidak, perangkat Anda akan muncul sebagai 'hub USB umum' pada PC. Atau, Anda mungkin bisa meniru EEPROM dengan mikrokontroler onboard Anda (konfigurasikan salah satu antarmuka I2C untuk bertindak sebagai budak). Kemudian Anda dapat melaporkannya sebagai 'Driver sistem driver dan pengontrol codec' atau semacamnya.
Kevin Vermeer
5

Saya telah merancang papan di sekitar hub itu.

Dalam aplikasi saya, itu memungkinkan akses ke FT232 dan FT245.

Jika semuanya ada di PCB Anda sendiri, saya akan merekomendasikan Anda hanya mengabaikan seluruh sistem proteksi arus lebih sepenuhnya. Lagi pula, jika sesuatu pada PCB Anda gagal, semuanya perlu dikerjakan, sehingga membuat perangkat yang mampu mengatasi kegagalan parsial adalah semacam titik diperdebatkan.

Dalam situasi saya, saya mengikat TUSB untuk meminta 500 ma penuh dan menonaktifkan perlindungan arus berlebih, dan hanya menjalankan semuanya langsung dari USB 5.0v. Saya menyelesaikan ini dengan memaksa hub untuk melaporkan sebagai self-powered ke host hulu.

Saya telah membuat beberapa papan, tanpa masalah nyata, jadi sepertinya strategi yang bisa diterapkan. Ini juga telah digunakan dengan beberapa komputer yang berbeda, jadi saya akan merasa cukup percaya diri menggunakannya apa adanya.

Tentu saja, jika ini untuk perangkat produksi, bukan proyek pribadi, atau uji-harness (yang merupakan kasus saya), itu masalah yang sama sekali berbeda.

masukkan deskripsi gambar di sini

(Lihat catatan pada skema)


Untuk apa nilainya, Anda sering dapat cukup mengerikan menyalahgunakan sebagian besar port USB modern tanpa terlalu banyak kesulitan. Banyak dari mereka dapat memasok daya yang jauh lebih besar daripada 500mA yang mereka nilai, tanpa terlalu banyak kesulitan.
Juga, kebanyakan dari mereka (semua yang telah saya uji, kecuali beberapa laptop ) akan dengan senang hati menyediakan 500mA penuh tanpa perangkat harus menyebutkan sama sekali.

Namun, ini bervariasi dari motherboard ke motherboard, tergantung pada bagaimana host USB dirancang. Jarak tempuh Anda mungkin beragam.

Connor Wolf
sumber
Ya, saya sudah memikirkan hal itu, tetapi seperti yang Anda katakan, ini bervariasi dari MB ke MB. Perangkat ini tidak akan diproduksi dalam ribuan, tetapi saya membutuhkannya agar dapat beroperasi sebagaimana mestinya, sehingga akan "Hanya berfungsi" di komputer mana pun. Terima kasih, pengamatan praktis sama berharganya :).
Ladislav
@ Ladislav - Saya rasa tidak ada cara untuk menghindari perlu kemampuan untuk beralih daya perangkat hilir tanpa melanggar spesifikasi USB setidaknya agak.
Connor Wolf
Perlu dicatat bahwa jika Anda mengikat perangkat untuk melaporkan sebagai bus bertenaga, dan hanya tidak repot dengan switching daya, itu mungkin berfungsi. Bisa jadi pengujian layak. Atau, cari IC hub hanya USB-1.1.
Connor Wolf
1

Mungkin sedikit kotor: TUSB2036 memungkinkan untuk pemilihan port hilir (p3 NPINT1-0 diatur ke 10). Kemudian hubungkan perangkat Anda ke dua port (fisik) sehingga Anda dapat menggambar 2 unit secara paralel.

suha
sumber