STM32 "Perangkat USB" vs. "USB OTG HS" - apa bedanya?

10

Saya baru-baru ini mengunduh aplikasi stm32 untuk pencarian MCU dan menemukan bahwa misalnya STM32F429 memiliki "TIDAK" di perangkat "Perangkat USB", sementara ia mengatakan "YA" di "USB OTG FS" dan "USB OTG HS". Yang cukup mengejutkan karena STM32F429 berfungsi penuh sebagai Perangkat USB, yaitu mendukung semua perpustakaan dan kelas USB.
Beberapa MCU lain memiliki "Perangkat USB" yang dinyatakan di dalamnya, misalnya. STM32L052 masukkan deskripsi gambar di sini

Kemudian saya mencoba memeriksa CubeMX dan menemukan bahwa ada perangkat USB_Device dalam pencarian mereka (dan lagi-lagi STM32F429 tidak memasukkannya, hal-hal USB dilakukan melalui OTG).

Ini mungkin pertanyaan yang cukup mudah karena saya curiga bahwa Perangkat USB berarti perangkat yang tidak mendukung OTG, tetapi saya tidak yakin, biasanya MCU menggunakan OTG (dan terlebih lagi hanya ada satu perpustakaan, jadi mengapa menyatakan "TIDAK" di USB perangkat). Saya tidak dapat menemukan informasi tentang itu di google atau di dokumentasi CubeMX.

Saya tidak terlalu khawatir tentang hal itu karena USB OTG HS tampaknya berfungsi dengan baik pada perpustakaan, tetapi saya bertanya-tanya tentang terminologi.

Saya mengerti bahwa mungkin forum ST adalah tempat yang lebih baik untuk pertanyaan ini, tetapi banyak topik tidak dijawab atau dijawab setelah 2 tahun berlalu. :)

Terima kasih.

ScienceSamovar
sumber
1
Saya memiliki pengalaman dengan forum ST, jadi saya bersimpati ...
redup
Mengenai bahwa forum ST memiliki kontribusi yang buruk, tampaknya bukan hanya forum, tetapi juga per Email, saya membuka tiket tentang kemungkinan kesalahan dalam salah satu dokumentasi dan contoh USB mereka, tetapi tidak ada yang (belum) repot-repot menulis saya kembali. Yang sangat menyebalkan.
Mohammed Noureldin

Jawaban:

16

Pikiran Anda benar: perangkat yang ditandai "Ya" di kolom perangkat USB hanya dapat bertindak sebagai perangkat USB. Mereka tidak mendukung spesifikasi OTG, dan mereka juga tidak dapat bertindak sebagai tuan rumah.

Tetapi tentu saja, perangkat apa pun yang mampu USB OTG dapat, di sisi lain, bertindak sebagai perangkat sederhana. Dia yang bisa berbuat lebih banyak bisa berbuat lebih sedikit.

Mereka mengidentifikasi mereka dengan cara ini karena "perangkat USB", "OTG FS", dan "OTG HS" adalah tiga inti IP yang berbeda dalam chip. Mereka semua memiliki kemampuan / spesifikasi khusus mereka, dan mereka mungkin memerlukan driver yang berbeda (seperti yang Anda perhatikan).

Untuk menyimpulkan:

  • Perangkat USB: hanya dapat bertindak sebagai perangkat, dengan kecepatan penuh (12Mbps)
  • USB OTG FS: dapat bertindak sebagai perangkat / host / perangkat OTG, dengan kecepatan penuh (12Mbps)
  • USB OTG HS: dapat bertindak sebagai perangkat / host / perangkat OTG, dengan kecepatan penuh (12Mbps) atau kecepatan tinggi (480Mbps). Perhatikan bahwa inti HS untuk [sebagian besar] * ST MCU memerlukan chip ULPI PHY eksternal untuk benar-benar mendukung kecepatan tinggi. PHY pada chip hanya dapat melakukan kecepatan penuh. ... Ya, ini sangat membingungkan.

* Sunting : Tampaknya ST akhirnya melakukan upaya untuk mengintegrasikan PHY kecepatan tinggi on-chip pada beberapa MCU terbaru mereka (lebih khusus: beberapa versi STM32F7x3 dan STM32F730, saat ini). Namun, tidak ada kolom khusus yang secara jelas menunjukkan fitur ini di tabel pemilihan perangkat mereka, yang lagi-lagi menambah kebingungan. Anda perlu melihat detail datasheet.

redup
sumber
Ok, terima kasih, hanya ingin mendengarnya bukan dari kepalaku sendiri :)
ScienceSamovar
1
Relatedly Saya memiliki sistem IMX yang memiliki kedua "usb host" dan "fs OTG", memberikan dua port USB yang dapat digunakan - tetapi mereka membutuhkan driver yang berbeda! Hal serupa mungkin berlaku untuk fungsionalitas yang serupa dengan ST yang membutuhkan perangkat lunak berbeda.
pjc50
Memang, saya yakin mereka memiliki, atau memiliki di masa lalu, perangkat yang memiliki beberapa port periferal dengan tingkat fitur yang berbeda. Ini adalah cara yang jelas untuk membuat daftar fitur untuk berbagai bagian (atau akan terlihat seperti itu di masa lalu)
Sean Houlihane
Hei! Bisakah Anda mengembangkan sedikit? Jika mikrokontroler mendukung USB OTG, dapatkah Anda secara teoritis memiliki dua port USB yang terhubung ke chip: 1 untuk bertindak sebagai Host OTG USB (mis. Colokkan keyboard) dan USB lainnya untuk bertindak sebagai perangkat? Apakah ada istilah untuk menggambarkan perilaku ini?
NessDan
1
@ Tidak Jika chip hanya menyematkan blok USB OTG, tidak, Anda tidak bisa. Tetapi banyak MCU kelas atas termasuk perangkat USB dan blok USB OTG. Kemudian Anda dapat menggunakan keduanya secara bersamaan dan memiliki dua port independen pada MCU Anda: satu bertindak sebagai perangkat dan yang lainnya sebagai host, ya. Periksa lembar data.
redup