-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathspec-jp.txt
378 lines (311 loc) · 17 KB
/
spec-jp.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
<<<<<<< HEAD
Code name: ExiBee (Pocket Exineris, Exineris Purple)Date: 19 Aug 2020Author: KIKUCHI, YutakaRev: 1.4==========================================================================基本コンセプト:・PLC風な Nerves マシンを作成する ・コンボ:CPU ボードに基本的な入出力を少しずつ多様に ・DIO:CPU ボードにデジタル入出力をたくさん ・AIO:CPU ボードにアナログ入出力をたくさん・CPUボードは単体でも使えるようにしたい PocketBeagle やラズパイ0W同程度の大きさで、より使いやすいのを目指す・Beagle Bone Black/Green, Pocket Beagle とソフト互換性をもたせるようにしたい すなわち Nerves で firmware を作るときに export MIX_TARGET=bbb で作製できると良い・出来たものはオープンソースにする。ライセンスは CC by-sa 4.0 で。==========================================================================Pocket Exineris (CPUボード)・ExiBee のベースになるほか、単体でも遊べるようにする・モードが有るピンについて ・基本リセットモード(モード番号7)で用いる ・BeagleBone でモードを変えているのものは同様に変更しても良い ・ヤムを得ない場合は別モードで ・使いたいピン機能がバッティングして仕様を満たせいない可能性あり ・これについては一旦考慮せずに仕様をつくって、ぶつかったらあとで検討・コネクタ ・ドータボード用コネクタ ・80pin x1 にするか、50pin x2 もしくは 60pin x2 とするhttps://www.hirose.com/product/document?clcode=CL0537-0731-3-86&productname=DF12(3.0)-60DP-0.5V(86)&series=DF12&documenttype=Catalog&lang=en&documentid=D31693_ja ・JTAG用 cTI(試作機に実装、本番では実装しない)http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_jtag_connectors.html・SiP: OSD3358-C-SiP SoC: TI AM335x (ARM Cortex-A8 1GHz, 3Dアクセラレータ, PRU) MEMS 24MHz Oscillator PMIC: TPS65217C, LDO: TL5209, Passives BGA 20x20 1.27mm Grid, 27mmx27mmhttps://octavosystems.com/octavo_products/osd335x-c-sip/・このシリーズは温度範囲の違う2種類しか出回ってない。OSD3358-512M-ICB を使う。 Soc: TI AM3358 (ARM Cortex-A8 1GHz, 3Dアクセラレータ, PRU) RAM: 512MB DDR3L EEPROM: 4KB eMMC: 4GB Temp: -40°C to 85°Chttps://www.digikey.com/product-detail/en/octavo-systems-llc/OSD3358-512M-ICB/1676-1005-ND/9608235 ・セキュリティ: Microchip ATECC608A I2C1 につなげる。(リセットモードでない機能) # I2C0 はEPROMとPMONにつながっている # Raspberry Pi では I2C1 につながってるhttps://www.microchip.com/wwwproducts/en/ATECC608Ahttps://github.com/nerves-project/nerves_system_bbb#nerveskey・ウォッチドッグタイマ:? BB同様にCPUのタイマーで良いのでは # あえて持つなら MAX6359 とかで・入出力(ボード上にあるもの) ・LED ・電源:青 ・緑、黄、橙、赤 USR0〜USR3, SiP GPMC_a5〜a8 (gpio1_21〜24)) ・RS232(デバッグ用コンソールポート, SiP UART0) x1 ・micro USB B (SiP USB0) x1 ・micro SDカード用ソケット x1 (SiP MMC0) ・無線LAN (WiFi/BLE) x1 TI WL1835MOD レベル変換(1.8V <-> 3.3V)をして SPI1, UART3 GPIO これは BBG wireless の場合を踏襲 あるいは SiP の SDIO を使うかhttps://www.ti.com/product/WL1835MOD・電源 ・SiP VIN_AC: ドータボードコネクタからのDC5V ・SiP VIN_USB: CPUボードの micro USB B コネクタからのDC5V ・SiP VIN_BAT: ドータボードコネクタからのバッテリーDC・コネクタ(SiP の信号を出す、GPIOを除いて46、GPIOは12か32) ・SiP USB1( 6): 各ボードの USB 2.0 x1 ・SiP MII1(15): 各ボードの 100base-TX x1? MII を持ち回るより PHY (LAN8710A等) を通した後が良いかも ・SiP UART1(4): 各ボードの RS422/485 x1 ・SiP Ain0〜Ain5(6): コンボA/D用 ・SiP I2C2(2): DIOボード用 ・SiP SPI0(5): AIOボード用 ・SiP GPMC(12): コンボDIO/DIOボード用GPIO ・SiP GPMC(20): DIOボード用GPIO DIOボードはCPUボードのGPIOではなくI2C制御が良いかも ・SiP PMIC(14): 電源管理用? ・SiP RTC(2): 内部RTC制御用(要る?)・形状:チョコベビーのケースに収まること ・参考: 56mm x 35mm x 5mm : pocket Beagle 65mm x 30mm x 5mm : raspberry Pi zero==========================================================================ExiBeeコンボ・DIO・AIO は Pocket Exineris を CPU ボードとして入出力を拡張するボードを装着して Phoenix Contact のケースに収めたもの。https://www.phoenixcontact.com/online/portal/jp?1dmy&urile=wcm%3apath%3a/jpja/web/main/products/subcategory_pages/ICS_modular_housings_P-01-12-03/10d97efb-d61d-4363-8853-97f3042d6b55共通I/O(コンボ、DIO、AIO): LED (CPUボードのを引き出せない場合はドータボードにもつける) 電源 (Blue) LED 4色 (Green, Yellow, Orange, Red) シリアル:RS422/485 x1 シリアル:USB 2.0 x1 有線LAN:100BASE-TX x1(SiP のデフォが MII なので 100Mbpsとする) RTC: DS3231(バッテリーバックアップ)コンボ: 絶縁 DI x8、絶縁 DO x4、AI x5、AO x1 AI: 4-20mA, SiP Ain1〜Ain5 AO: 4-20mA, SiP Ain0 (給電・無給電切替可能なこと) 電源:SiP AGND ADC: 0V, SiP VDDS: 1.8VDIOボード:絶縁 DI x16, 絶縁 DO x16 対応する LED をつけること。? SiP の GPIO を使うのでも良いが32pinを引き出すことになる? SiP の I2C2 で MCP23017 等を使っても良いAIOボード:AI x16, AO x16----ADCチップの選択についてコンボ用の ADC には CPU ボード自身の SiP Ain を使うつもり。- 12ビットの逐次比較型(SAR) ADC- 毎秒200kサンプル(5μs/ch)- 入力は、8:1アナログ・スイッチにより多重化(8chの一周で40μsぐらい)なので 12bit 25kS/s 程度と思って良い。これがコンボ用。AIOボードの能力は越えてほしい気がするので、解像度が 12bit を越えて 1chあたり40μs未満のポピュラーなチップとかがあると嬉しい。==========================================================================その他、検討先送り事項温度環境-40℃からにしようとするとチップを選ばないとならない。少なくとも TI WL1835MOD は-20℃からなので、現状の最低動作温度はこれに合わせざるをえない。IEEE1588 (PTP) を使うか LAN 内のマシンの時計の同期精度があがるのは良い 使うとしてどう使えるのか要調査 (NTP が使えなくなるので)Security: AM335x に FuseFarm で固有IDがあるのを有効に使えないかwatchdog reset: ファームウェアを更新した後に watch dog reset がかかったら 更新される前のファームウェアでブートするようにする… には何が必要?RTCについて: PMICのSLEEP状態で RTC 用の LDO1 のみに電源供給できそう。 C-SiP のマニュアルでは PMIC ver.C ではできないと明示。 PMIC のマニュアルでは ver に関係なくできそうに見えるが、 多くのweb上のドキュメントでうまくいかないようなことが書いてある電池駆動: こんなのに乾電池を1〜3本直列にするのもありか。http://akizukidenshi.com/catalog/g/gK-13065/紫色:Perple にするか Violet にするか Amethyst にするか。https://ja.wikipedia.org/wiki/紫https://ja.wikipedia.org/wiki/京紫https://ja.wikipedia.org/wiki/江戸紫色の感じで京紫 purple にした。電源LEDを紫色にとも思ったが無駄に高くなりそうなので将来の課題として。==========================================================================
=======
Code name: ExiBee (Pocket Exineris, Exineris Purple)
Date: 19 Aug 2020
Author: KIKUCHI, Yutaka
==========================================================================
基本コンセプト:
・PLC風な Nerves マシンを作成する
・コンボ:CPU ボードに基本的な入出力を少しずつ多様に
・DIO:CPU ボードにデジタル入出力をたくさん
・AIO:CPU ボードにアナログ入出力をたくさん
・CPUボードは単体でも使えるようにしたい
PocketBeagle やラズパイ0W同程度の大きさで、より使いやすいのを目指す
・Beagle Bone Black/Green, Pocket Beagle とソフト互換性をもたせるようにしたい
すなわち Nerves で firmware を作るときに export MIX_TARGET=bbb で作製できると良い
・出来たものはオープンソースにする。ライセンスは CC by-sa 4.0 で。
==========================================================================
Pocket Exineris (CPUボード)
・ExiBee のベースになるほか、単体でも遊べるようにする
・モードが有るピンについて
・基本リセットモード(モード番号7)で用いる
・BeagleBone でモードを変えているのものは同様に変更しても良い
・ヤムを得ない場合は別モードで
・使いたいピン機能がバッティングして仕様を満たせいない可能性あり
・これについては一旦考慮せずに仕様をつくって、ぶつかったらあとで検討
・コネクタ
・ドータボード用コネクタ
・80pin x1 にするか、50pin x2 もしくは 60pin x2 とする
https://www.hirose.com/product/document?clcode=CL0537-0731-3-86&productname=DF12(3.0)-60DP-0.5V(86)&series=DF12&documenttype=Catalog&lang=en&documentid=D31693_ja
・JTAG用 cTI(試作機に実装、本番では実装しない)
http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_jtag_connectors.html
・SiP: OSD3358-C-SiP
SoC: TI AM335x (ARM Cortex-A8 1GHz, 3Dアクセラレータ, PRU)
MEMS 24MHz Oscillator
PMIC: TPS65217C, LDO: TL5209, Passives
BGA 20x20 1.27mm Grid, 27mmx27mm
https://octavosystems.com/octavo_products/osd335x-c-sip/
・このシリーズは温度範囲の違う2種類しか出回ってない。OSD3358-512M-ICB を使う。
Soc: TI AM3358 (ARM Cortex-A8 1GHz, 3Dアクセラレータ, PRU)
RAM: 512MB DDR3L
EEPROM: 4KB
eMMC: 4GB
Temp: -40°C to 85°C
https://www.digikey.com/product-detail/en/octavo-systems-llc/OSD3358-512M-ICB/1676-1005-ND/9608235
・セキュリティ: Microchip ATECC608A
I2C1 につなげる。(リセットモードでない機能)
# I2C0 はEPROMとPMONにつながっている
# Raspberry Pi では I2C1 につながってる
https://www.microchip.com/wwwproducts/en/ATECC608A
https://github.com/nerves-project/nerves_system_bbb#nerveskey
・ウォッチドッグタイマ:
? BB同様にCPUのタイマーで良いのでは
# あえて持つなら MAX6359 とかで
・入出力(ボード上にあるもの)
・LED
・電源:青
・緑、黄、橙、赤 USR0〜USR3, SiP GPMC_a5〜a8 (gpio1_21〜24))
・RS232(デバッグ用コンソールポート, SiP UART0) x1
・micro USB B (SiP USB0) x1
・micro SDカード用ソケット x1 (SiP MMC0)
・無線LAN (WiFi/BLE) x1
TI WL1835MOD
レベル変換(1.8V <-> 3.3V)をして SPI1, UART3 GPIO
これは BBG wireless の場合を踏襲
あるいは SiP の SDIO を使うか
https://www.ti.com/product/WL1835MOD
・電源
・SiP VIN_AC: ドータボードコネクタからのDC5V
・SiP VIN_USB: CPUボードの micro USB B コネクタからのDC5V
・SiP VIN_BAT: ドータボードコネクタからのバッテリーDC
・コネクタ(SiP の信号を出す、GPIOを除いて46、GPIOは12か32)
・SiP USB1( 6): 各ボードの USB 2.0 x1
・SiP MII1(15): 各ボードの 100base-TX x1
? MII を持ち回るより PHY (LAN8710A等) を通した後が良いかも
・SiP UART1(4): 各ボードの RS422/485 x1
・SiP Ain0〜Ain5(6): コンボA/D用
・SiP I2C2(2): DIOボード用
・SiP SPI0(5): AIOボード用
・SiP GPMC(12): コンボDIO/DIOボード用GPIO
・SiP GPMC(20): DIOボード用GPIO
DIOボードはCPUボードのGPIOではなくI2C制御が良いかも
・SiP PMIC(14): 電源管理用
? ・SiP RTC(2): 内部RTC制御用(要る?)
・形状:チョコベビーのケースに収まること
・参考:
56mm x 35mm x 5mm : pocket Beagle
65mm x 30mm x 5mm : raspberry Pi zero
==========================================================================
ExiBee
コンボ・DIO・AIO は Pocket Exineris を CPU ボードとして
入出力を拡張するボードを装着して Phoenix Contact のケースに収めたもの。
https://www.phoenixcontact.com/online/portal/jp?1dmy&urile=wcm%3apath%3a/jpja/web/main/products/subcategory_pages/ICS_modular_housings_P-01-12-03/10d97efb-d61d-4363-8853-97f3042d6b55
共通 電源
・SiP VIN_AC(以下のどちらか(もしくは両方)がつながったら稼働すること)
・PoE (IEEE802.3af: DC 48V)
・DC 24V
・JIS B3502 の 5.1.1 に準拠、特に瞬時停電は 5.1.1.3 PS2 に準拠。
# 要は 10ms (50Hz で半サイクル)の電源断で、電解コンデンサないしはキャパシタから
# 供給する電圧が各チップの定格電源電圧の最低レベルを守ること
・電源ダウン時にGPIOのどれかを叩く
CPUに割り込みをかけるため
・CPU ボードの SiP VIN_BAT に供給する電源をもつこと(以下から選択)
? 電源ダウン時にCPUボードをシャットダウンできる容量のキャパシタを持つ
? CPUボードをリチウムイオン二次電池等である程度持たせるようにする
? 拡張ボードも含めてリチウムイオン二次電池等である程度持たせるようにする
共通I/O(コンボ、DIO、AIO):
LED (CPUボードのを引き出せない場合はドータボードにもつける)
電源 (Blue)
LED 4色 (Green, Yellow, Orange, Red)
シリアル:RS422/485 x1
シリアル:USB 2.0 x1
有線LAN:100BASE-TX x1(SiP のデフォが MII なので 100Mbpsとする)
RTC: DS3231(バッテリーバックアップ)
コンボ: 絶縁 DI x8、絶縁 DO x4、AI x5、AO x1
AI: 4-20mA, SiP Ain1〜Ain5
AO: 4-20mA, SiP Ain0 (給電・無給電切替可能なこと)
電源:SiP AGND ADC: 0V, SiP VDDS: 1.8V
DIOボード:絶縁 DI x16, 絶縁 DO x16
対応する LED をつけること。
? SiP の GPIO を使うのでも良いが32pinを引き出すことになる
? SiP の I2C2 で MCP23017 等を使っても良い
AIOボード:AI x16, AO x16
----
ADCチップの選択について
コンボ用の ADC には CPU ボード自身の SiP Ain を使うつもり。
- 12ビットの逐次比較型(SAR) ADC
- 毎秒200kサンプル(5μs/ch)
- 入力は、8:1アナログ・スイッチにより多重化(8chの一周で40μsぐらい)
なので 12bit 25kS/s 程度と思って良い。これがコンボ用。
AIOボードの能力は越えてほしい気がするので、
解像度が 12bit を越えて 1chあたり40μs未満の
ポピュラーなチップとかがあると嬉しい。
==========================================================================
その他、検討先送り事項
温度環境
-40℃からにしようとするとチップを選ばないとならない。
少なくとも TI WL1835MOD は-20℃からなので、
現状の最低動作温度はこれに合わせざるをえない。
IEEE1588 (PTP) を使うか
LAN 内のマシンの時計の同期精度があがるのは良い
使うとしてどう使えるのか要調査 (NTP が使えなくなるので)
Security:
AM335x に FuseFarm で固有IDがあるのを有効に使えないか
watchdog reset:
ファームウェアを更新した後に watch dog reset がかかったら
更新される前のファームウェアでブートするようにする… には何が必要?
RTCについて:
PMICのSLEEP状態で RTC 用の LDO1 のみに電源供給できそう。
C-SiP のマニュアルでは PMIC ver.C ではできないと明示。
PMIC のマニュアルでは ver に関係なくできそうに見えるが、
多くのweb上のドキュメントでうまくいかないようなことが書いてある
電池駆動:
こんなのに乾電池を1〜3本直列にするのもありか。
http://akizukidenshi.com/catalog/g/gK-13065/
紫色:
Purple にするか Violet にするか Amethyst にするか。
https://ja.wikipedia.org/wiki/紫
https://ja.wikipedia.org/wiki/京紫
https://ja.wikipedia.org/wiki/江戸紫
色の感じで京紫 purple にした。
電源LEDを紫色にとも思ったが無駄に高くなりそうなので将来の課題として。
==========================================================================
>>>>>>> a8a3d29d334f1e91890f11cfd153e39bfaea125c