USBフェイク
STM32:なんちゃってマスストレージ・デバイス on STM8S-Discovery†
ソースはこちらにある、以下のこれ。
アプリケーション・サンプルソース†
| 種別 | ファイル | 対応基板 |
| STM32版 仮想COMサンプル他 | sample.zip | STM8S-DiscoveryのSTM32側、他 |
- sample.zip内にmsdデバイスサンプルがあります。
- ハードウェアは、とりあえず、STM8S-DiscoveryのST-Link側だけを使用します。(CQ-STARMなどでも同様に可)
- ファーム書き込みは拙作 armboot.exe で行ないます。
- ファームを書き込んだら、ブートジャンパーをOPENにして、USB再接続するとUSB HDDデバイスが現れます。
差分はこちら†
Index: msc/src/scsi_data.c
===================================================================
--- msc/src/scsi_data.c (revision 290)
+++ msc/src/scsi_data.c (working copy)
@@ -32,7 +32,7 @@
0x80, /* RMB = 1: Removable Medium */
0x02, /* Version: No conformance claim to standard */
0x02,
-
+#if 0
36 - 4, /* Additional Length */
0x00, /* SCCS = 1: Storage Controller Component */
0x00,
@@ -44,6 +44,20 @@
'D', 'i', 's', 'k', ' ', ' ', ' ',
/* Product Revision Level */
'1', '.', '0', ' '
+#else
+ 36 - 4, /* Additional Length */
+ 0x00, /* SCCS = 1: Storage Controller Component */
+ 0x00,
+ 0x00,
+ /* Vendor Identification */
+ 'M', 'a', 'x', 't', 'o', 'r', ' ', '5',
+ /* Product Identification */
+ 'A', '1', '2', '0', 'J', '0', ' ', ' ', ' ',
+ ' ', ' ', ' ', ' ', ' ', ' ', ' ',
+ /* Product Revision Level */
+ '1', '.', '0', ' '
+#endif
+
};
uint8_t Standard_Inquiry_Data2[] =
{
- 文字数は変えません。
- ほんとうは(たぶん)SPIインターフェースの先にMMC/SDを接続しないと正しく動作しないような気もします。
- まあ、フェイクなので未配線のままテストします。
- これで、Maxtorのドライブがデバイス一覧のドライブに現れればOKです。
- SPIインターフェースの先にMMC/SDを接続して実ドライブにしたいなぁ・・・。(SPIだしUSB FullSpeedなので遅いけど)

