duo-files レポジトリの内容を解説

https://milkv.io/duo

で「Documents」で示されている実体は、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e6ca5e42-9733-2644-ee2b-a9c0b74a4b1c.png)

github のレポジトリです。
https://github.com/milkv-duo/duo-files

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/7298e636-687d-6c70-4324-5c0d9686a89d.png)

わりとちゃんと情報公開していて頼りにできます。開発にあたってひととおりレポジトリ内容を把握しておくべきです。この記事では内容を一覧で流し見できるようにまとめてみました。

# ダウンロード

```
$ git clone https://github.com/milkv-duo/duo-files.git
```
70MBytesぐらいのレポジトリ。
```
$ cd duo-files/
$ tree
.
├── README.md
├── hardware
│   ├── CV1800B
│   │   ├── CV1800B-CV1801B-Preliminary-Datasheet-full-en.pdf
│   │   ├── CV1800B-CV1801B-Preliminary-Datasheet-full-zh.pdf
│   │   ├── CV180X-Clock-v1.xlsx
│   │   ├── CV180X-Interrupt-v1.xlsx
│   │   ├── CV180xB-Product-Brief-Public.pdf
│   │   └── CV180xb-Pinout-v1.xlsx
│   └── duo
│       ├── duo-datasheet-v1.2.pdf
│       ├── duo-mechanical-drawings-v1.1.zip
│       ├── duo-pcb-footprint-v1.2.dra
│       ├── duo-schematic-library-v1.2.olb
│       ├── duo-schematic-v1.1.pdf
│       └── duo-schematic-v1.2.pdf
└── others
    └── RNDIS_drivers_20231018.zip

4 directories, 14 files

```

# ファイルの内容

## CV1800B ディレクトリ

ちゃんと mcu のドキュメントが参照できるのがありがたいですね。本来はそうなっているべきなのですが、RaspberryPi などではなかなか難しい状況なのが milk-V Duo はそこらへんわかっている感じがします。

### CV1800B-CV1801B-Preliminary-Datasheet-full-en.pdf
本来Confidentialとかになりそうですが、MilkVプロジェクトで独自に公開しているらしいのがありがたいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/555ff951-2dcd-26b6-be9c-bc4dc3e23473.png)


### CV1800B-CV1801B-Preliminary-Datasheet-full-zh.pdf
同じ内容の中国語版です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/34e39e24-4cc4-636b-b6b2-ce98ebe9f3d8.png)
###  CV180xB-Product-Brief-Public.pdf
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5ebd9deb-0515-cf57-5778-9758c50f599b.png)

### CV180xb-Pinout-v1.xlsx
LibreOfficeでは何故か開けなかったので Google Drive で開いてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/24a18a7a-0d91-0a80-9c80-ed2cb4358bf7.png)


### CV180X-Clock-v1.xlsx
クロックコンフィグレーション表
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d21a2c35-f515-ccb7-bd29-864e7c52f93b.png)

### CV180X-Interrupt-v1.xlsx
割り込み割当表
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e16187eb-41e2-9a03-7630-b3f541077f69.png)


## duo ディレクトリ
### duo-pcb-footprint-v1.2.dra
OrCAD用のフットプリントファイルかな?
## duo-schematic-library-v1.2.olb
OrCAD用のシンボルファイル?


### duo-datasheet-v1.2.pdf

19ページのデータシート。以下は目次部分です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5593ded7-75ba-aa88-447a-b37ebc9b76ab.png)



###  duo-schematic-v1.1.pdf

1.1 と 1.2 の相違点だけをピックアップしてみました。
3.3Vを作成する電源部分
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/0c56c5d7-36aa-4279-f213-4b5e587722a1.png)
TFメモリカードのソケット。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/1e2be741-8068-58d7-2b8f-3cc2ad5de8cb.png)


### duo-schematic-v1.2.pdf
DCDCをスイッチするトランジスタの型番が偏光になりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3330efa5-7f48-d3f0-e336-bd2059726297.png)
TPが無くなり、代わりに SD NAND インターフェースが追加されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/7bdb6d91-cdc2-c855-9509-22705c65c6d7.png)



### duo-mechanical-drawings-v1.1.zip


解凍してみます。

```
$ unzip duo-mechanical-drawings-v1.1.zip 
Archive:  duo-mechanical-drawings-v1.1.zip
  inflating: DUO-MB-BOTTOM.dxf       
  inflating: DUO-MB-TOP.dxf          
```
LibreCAD で開いてみました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/9d7eecfc-a9f0-b843-3b11-689af743e578.png)






## otherディレクトリ

RNDIS_drivers_20231018.zip 

USBコネクタを接続すると、イーサネットアダプタとして認識するが、そのWindows用ドライバ情報。
解凍してみます。
```
$ unzip RNDIS_drivers_20231018.zip 
Archive:  RNDIS_drivers_20231018.zip
   creating: RNDIS/
  inflating: RNDIS/RNDIS.cat         
  inflating: RNDIS/RNDIS.inf         
  inflating: RNDIS/rndis11.cat       
  inflating: RNDIS/rndis11.inf  


```RNDIS.inf の冒頭部
;
; FIH Device Driver
;
; This INF works for Windows XP SP2, Windows XP x64,
; and Windows Vista x86 and x64.
; This INF will work with Windows XP, and Windows XP SP1
; after applying specific hotfixes.
;

[Version]
Signature       = "$Windows NT$"
Class           = Net
ClassGUID       = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider        = %Provider%
DriverVer       = 01/13/2010,1.0.0.0
CatalogFile     = RNDIS.cat

[Manufacturer]
%Provider%      = RndisDevices,NTx86,NTamd64,NTia64

; Decoration for x86 architecture
[RndisDevices.NTx86]
%RndisDevice.COMM%      = RNDIS.NT.5.1, USB\VID_0525&PID_A4A2
%RndisDevice.ACER%      = RNDIS.NT.5.1, USB\VID_0502&PID_3210

; Decoration for x64 architecture
[RndisDevices.NTamd64]
%RndisDevice.COMM%      = RNDIS.NT.5.1, USB\VID_0525&PID_A4A2
%RndisDevice.ACER%      = RNDIS.NT.5.1, USB\VID_0502&PID_3210
.
.
.
```




```rndis11.inf の抜粋

; Based on template INF file found at
;    <http://msdn.microsoft.com/en-us/library/ff570620.aspx>
; which was:
;    Copyright (c) Microsoft Corporation
; and released under the MLPL as found at:
;    <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>.
; For use only on Windows operating systems.

[Version]
Signature           = "$Windows NT$"
Class               = Net
ClassGUID           = {4d36e972-e325-11ce-bfc1-08002be10318}
Provider            = %Linux%
DriverVer           = 06/21/2006,6.0.6000.16384

[Manufacturer]
%Linux%             = LinuxDevices,NTx86,NTamd64,NTia64

; Decoration for x86 architecture
[LinuxDevices.NTx86]
%LinuxDevice%       = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00

; Decoration for x64 architecture
[LinuxDevices.NTamd64]
%LinuxDevice%       = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00

; Decoration for ia64 architecture
[LinuxDevices.NTia64]
%LinuxDevice%       = RNDIS.NT.5.1, USB\VID_0525&PID_a4a2, USB\VID_1d6b&PID_0104&MI_00

;@@@ This is the common setting for setup
[ControlFlags]
ExcludeFromSelect=*
.
.
.
HKR, NDI\params\VistaProperty, default,    0, " "
HKR, NDI\params\VistaProperty, optional,   0, "1"

; No sys copyfiles - the sys files are already in-build
; (part of the operating system).
; We do not support XP SP1-, 2003 SP1-, ME, 9x.

[Strings]
Linux                 = "Linux Developer Community"
LinuxDevice           = "Linux USB Ethernet/RNDIS Gadget"
Vista_Property        = "Optional Vista Property"
```


 デバイス名などが Linux となっているのが面白いですね。