| 1 | = RS232C x4 Capeの作成 = |
| 2 | |
| 3 | [http://beagleboard.org/Products/BeagleBone%20Black BeagleBone Black]上のCPUには6個のUARTが載っていて、そのうちの1つはシリアルコンソール用、それ以外の5本が拡張IOで使用可能になっている。 |
| 4 | (厳密には、3番ポートがTxのみなので4.5本だが、、、)[[br]] |
| 5 | これを使って、[http://japan.moxa.com/product/NPort_5410.htm MOXAの4ポートシリアルコンバータ]の代わりにならないかということで作り始めた。+αとして単体でEPICS動作が可能なので、IOCの分散にもつながる。 |
| 6 | |
| 7 | == Hardware == |
| 8 | |
| 9 | [http://beagleboard.org/Products/BeagleBone%20Black BeagleBone Black]側はUART1,2,4,5を使うことにし、CTS/RTSはつながない。[[br]] |
| 10 | EEPROMはつけておくことにする。 |
| 11 | |
| 12 | === HDMI OFF === |
| 13 | |
| 14 | |
| 15 | 今回のHWでは、UART5とHDMI出力が被ってしまう。今回は画面が必要ないので、HDMI出力を停止させることにした。[[br]] |
| 16 | HDMI出力の確認は、 |
| 17 | {{{ |
| 18 | root@beaglebone:/media/card# cat /sys/devices/bone_capemgr.8/slots |
| 19 | 0: 54:PF--- |
| 20 | 1: 55:PF--- |
| 21 | 2: 56:PF--- |
| 22 | 3: 57:PF--- |
| 23 | 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G |
| 24 | 5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI |
| 25 | }}} |
| 26 | |
| 27 | で行う。[[br]] |
| 28 | 5にHDMIのモジュールが読み込まれているのがわかる。"P-O-L"の"L"が"Load"ということらしく、これが消えればいいらしい。[[br]] |
| 29 | 設定は、ブートローダーで行うので、boot領域をmountして、uEnv.txtを書き換える。 |
| 30 | |
| 31 | {{{ |
| 32 | root@beaglebone:~/cape/UARTx4# df |
| 33 | Filesystem 1K-blocks Used Available Use% Mounted on |
| 34 | rootfs 3369444 1641652 1553304 52% / |
| 35 | /dev/root 3369444 1641652 1553304 52% / |
| 36 | devtmpfs 255228 0 255228 0% /dev |
| 37 | tmpfs 255356 0 255356 0% /dev/shm |
| 38 | tmpfs 255356 232 255124 1% /run |
| 39 | tmpfs 255356 0 255356 0% /sys/fs/cgroup |
| 40 | tmpfs 255356 232 255124 1% /etc/machine-id |
| 41 | tmpfs 255356 0 255356 0% /tmp |
| 42 | /dev/mmcblk0p1 72102 59252 12850 83% /media/card |
| 43 | root@beaglebone:~/cape/UARTx4# cd /media/card/ |
| 44 | root@beaglebone:/media/card# ls |
| 45 | App Drivers LICENSE.txt README.md autorun.inf uEnv.txt |
| 46 | Docs ID.txt MLO START.htm u-boot.img |
| 47 | root@beaglebone:/media/card# vi uEnv.txt |
| 48 | optargs=quiet |
| 49 | ↓ |
| 50 | optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN |
| 51 | }}} |
| 52 | |
| 53 | 設定を書き換えたらreboot。[[br]] |
| 54 | reboot後は、画面に何もでなくなるので注意すること。[[br]] |
| 55 | sshで他のマシンからログインして、状態を確認。 |
| 56 | |
| 57 | {{{ |
| 58 | root@beaglebone:/media/card# cat /sys/devices/bone_capemgr.8/slots |
| 59 | 0: 54:PF--- |
| 60 | 1: 55:PF--- |
| 61 | 2: 56:PF--- |
| 62 | 3: 57:PF--- |
| 63 | 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G |
| 64 | 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI |
| 65 | 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN |
| 66 | }}} |
| 67 | |
| 68 | この状態になっていればOK。 |
| 69 | |
| 70 | === Cape回路図 === |
| 71 | |
| 72 | 今回の回路は、各uartにRS232CのレベルコンバータとEEPROMを載せるだけの簡単なものにする。 |
| 73 | |
| 74 | [[Image(BBBSerialCape.png,300px)]] [[Image(BBBSerialCape_board.png,300px)]] |
| 75 | |
| 76 | |
| 77 | == firmware == |
| 78 | |
| 79 | firmwareのひな形は/lib/firmwareにあったので、それを編集して作成。 |
| 80 | |
| 81 | {{{ |
| 82 | /* |
| 83 | * Copyright (C) 2013 Tetsuya Michikawa <hig-mchi@post.kek.jp> |
| 84 | * |
| 85 | * BeagleBone Black UART 1,2,4,5 used RS232c cape |
| 86 | */ |
| 87 | /dts-v1/; |
| 88 | /plugin/; |
| 89 | |
| 90 | / { |
| 91 | compatible = "ti,beaglebone", "ti,beaglebone-black"; |
| 92 | |
| 93 | /* identification */ |
| 94 | part-number = "cape-bone-uartx4"; |
| 95 | version = "00A0"; |
| 96 | |
| 97 | /* state the resources this cape uses */ |
| 98 | exclusive-use = |
| 99 | /* the pin header uses */ |
| 100 | "P9.24", /* uart1_txd */ |
| 101 | "P9.26", /* uart1_rxd */ |
| 102 | "P9.21", /* uart2_txd */ |
| 103 | "P9.22", /* uart2_rxd */ |
| 104 | "P9.13", /* uart4_txd */ |
| 105 | "P9.11", /* uart4_rxd */ |
| 106 | "P8.37", /* uart5_txd */ |
| 107 | "P8.38", /* uart5_rxd */ |
| 108 | /* the hardware ip uses */ |
| 109 | "uart1", |
| 110 | "uart2", |
| 111 | "uart4", |
| 112 | "uart5"; |
| 113 | |
| 114 | fragment@0 { |
| 115 | target = <&am33xx_pinmux>; |
| 116 | __overlay__ { |
| 117 | bb_uart1_pins: pinmux_bb_uart1_pins { |
| 118 | pinctrl-single,pins = < |
| 119 | 0x180 0x20 /* P9.26 uart1_rxd.uart1_rxd INPUT */ |
| 120 | 0x184 0x20 /* P9.24 uart1_txd.uart1_txd OUTPUT */ |
| 121 | >; |
| 122 | }; |
| 123 | bb_uart2_pins: pinmux_bb_uart2_pins { |
| 124 | pinctrl-single,pins = < |
| 125 | 0x150 0x21 /* P9.22 spi0_sclk.uart2_rxd | MODE1 */ |
| 126 | 0x154 0x01 /* P9.21 spi0_d0.uart2_txd | MODE1 */ |
| 127 | >; |
| 128 | }; |
| 129 | bb_uart4_pins: pinmux_bb_uart4_pins { |
| 130 | pinctrl-single,pins = < |
| 131 | 0x070 0x26 /* P9.11 gpmc_wait0.uart4_rxd | MODE6 */ |
| 132 | 0x074 0x06 /* P9.13 gpmc_wpn.uart4_txd | MODE6 */ |
| 133 | >; |
| 134 | }; |
| 135 | bb_uart5_pins: pinmux_bb_uart5_pins { |
| 136 | pinctrl-single,pins = < |
| 137 | /* the uart pins */ |
| 138 | 0x0C4 0x24 /* P8.38 lcd_data9.uart5_rxd | MODE4 */ |
| 139 | 0x0C0 0x04 /* P8.37 lcd_data8.uart5_txd | MODE4 */ |
| 140 | >; |
| 141 | }; |
| 142 | }; |
| 143 | }; |
| 144 | |
| 145 | fragment@1 { |
| 146 | target = <&uart2>; /* really uart1 */ |
| 147 | __overlay__ { |
| 148 | status = "okay"; |
| 149 | pinctrl-names = "default"; |
| 150 | pinctrl-0 = <&bb_uart1_pins>; |
| 151 | }; |
| 152 | }; |
| 153 | fragment@2 { |
| 154 | target = <&uart3>; /* really uart2 */ |
| 155 | __overlay__ { |
| 156 | status = "okay"; |
| 157 | pinctrl-names = "default"; |
| 158 | pinctrl-0 = <&bb_uart2_pins>; |
| 159 | }; |
| 160 | }; |
| 161 | fragment@3 { |
| 162 | target = <&uart5>; /* really uart4 */ |
| 163 | __overlay__ { |
| 164 | status = "okay"; |
| 165 | pinctrl-names = "default"; |
| 166 | pinctrl-0 = <&bb_uart4_pins>; |
| 167 | }; |
| 168 | }; |
| 169 | fragment@4 { |
| 170 | target = <&uart6>; /* really uart5 */ |
| 171 | __overlay__ { |
| 172 | status = "okay"; |
| 173 | pinctrl-names = "default"; |
| 174 | pinctrl-0 = <&bb_uart5_pins>; |
| 175 | }; |
| 176 | }; |
| 177 | }; |
| 178 | |
| 179 | }}} |
| 180 | |
| 181 | このファイルをコンパイルして、firmwareを作成。[[br]] |
| 182 | これを/lib/firmwareにコピーして、ロードさせてみる。 |
| 183 | |
| 184 | {{{ |
| 185 | root@beaglebone:~/cape/UARTx4# dtc -O dtb -o cape-bone-uartx4-00A0.dtbo -b 0 -@ cape-bone-uartx4-00A0.dts |
| 186 | root@beaglebone:~/cape/UARTx4# cp cape-bone-uartx4-00A0.dtbo /lib/firmware |
| 187 | root@beaglebone:~/cape/UARTx4# cd /lib/firmware |
| 188 | root@beaglebone:/lib/firmware# echo cape-bone-uartx4 > /sys/devices/bone_capemgr.8/slots |
| 189 | }}} |
| 190 | |
| 191 | ここで何もでなければOKだけど、ロードできないとエラーが出る。エラーの内容はdmesgで出力されるので、それを確認してエラーを修正後、再度実行。 |
| 192 | |
| 193 | |
| 194 | {{{ |
| 195 | root@beaglebone:/lib/firmware# cat /sys/devices/bone_capemgr.8/slots |
| 196 | 0: 54:PF--- |
| 197 | 1: 55:PF--- |
| 198 | 2: 56:PF--- |
| 199 | 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G |
| 200 | 5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI |
| 201 | 6: ff:P-O-L Override Board Name,00A0,Override Manuf,cape-bone-uartx4 |
| 202 | }}} |
| 203 | |
| 204 | |
| 205 | == EEPROM == |
| 206 | |
| 207 | Capeに載せるEEPROMを作成する。 |
| 208 | |
| 209 | === EEPROMへのアクセス === |
| 210 | |
| 211 | その前に、I2C2でEEPROMが認識されるかをチェックする。今回はEEPROMにATMEL AT24C256Bを使った。BBBはIO電圧が3.3Vなので、そこにつなぐICも3.3V対応のものを使う必要があるので注意。 |
| 212 | |
| 213 | [[Image(http://papermint-designs.com/community/files/images/eeprom-circuit.preview.png)]] |
| 214 | |
| 215 | 画像の実験回路をブレッドボード等で作成して、初めはSW A0,A1,A2のプルアップ抵抗を接続せずにGNDに接続してみる。[[br]] |
| 216 | 回路を作成後、BBBのI2C2 SCL,SDAに接続し、i2cdetectでバススキャンしてみる。 |
| 217 | |
| 218 | {{{ |
| 219 | root@beaglebone:~# i2cdetect -r 1 |
| 220 | WARNING! This program can confuse your I2C bus, cause data loss and worse! |
| 221 | I will probe file /dev/i2c-1 using read byte commands. |
| 222 | I will probe address range 0x03-0x77. |
| 223 | Continue? [Y/n] y |
| 224 | 0 1 2 3 4 5 6 7 8 9 a b c d e f |
| 225 | 00: -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 226 | 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 227 | 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 228 | 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 229 | 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 230 | 50: 50 -- -- -- UU UU UU UU -- -- -- -- -- -- -- -- |
| 231 | 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| 232 | 70: -- -- -- -- -- -- -- -- |
| 233 | }}} |
| 234 | |
| 235 | 回路が正しければ、上記のような表示になるはず。ならなければ、どこか回路が間違っているので修正する。[[br]] |
| 236 | 次にEEPROMへの読み書きができるかを実験。[[br]] |
| 237 | |
| 238 | まず、EEPROMにアクセスするためのデバイスインターフェイス(?といえばいいのかな)を作成。 |
| 239 | |
| 240 | {{{ |
| 241 | root@beaglebone:~# echo 24c256 0x50 > /sys/bus/i2c/devices/i2c-1/new_device |
| 242 | root@beaglebone:~# ls /sys/bus/i2c/devices |
| 243 | 0-0024 0-0050 1-0050 1-0054 1-0055 1-0056 1-0057 i2c-0 i2c-1 |
| 244 | root@beaglebone:~# dmesg |
| 245 | : |
| 246 | [ 5404.713106] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 247 | [ 5404.713545] i2c i2c-1: new_device: Instantiated device 24c256 at 0x50 |
| 248 | }}} |
| 249 | |
| 250 | 1-0050がEEPROMにアクセスするためのインターフェイスになる。[[br]] |
| 251 | |
| 252 | {{{ |
| 253 | root@beaglebone:~ # cd /sys/bus/i2c/devices/1-0050 |
| 254 | root@beaglebone:/sys/bus/i2c/devices/1-0050# ls -la |
| 255 | total 0 |
| 256 | drwxr-xr-x 3 root root 0 Oct 22 02:19 . |
| 257 | drwxr-xr-x 9 root root 0 Jan 1 2000 .. |
| 258 | lrwxrwxrwx 1 root root 0 Oct 22 02:19 driver -> ../../../../../bus/i2c/drivers/at24 |
| 259 | -rw------- 1 root root 32768 Oct 22 02:22 eeprom |
| 260 | -r--r--r-- 1 root root 4096 Oct 22 02:22 modalias |
| 261 | -r--r--r-- 1 root root 4096 Oct 22 02:22 name |
| 262 | drwxr-xr-x 2 root root 0 Oct 22 02:22 power |
| 263 | lrwxrwxrwx 1 root root 0 Oct 22 02:19 subsystem -> ../../../../../bus/i2c |
| 264 | -rw-r--r-- 1 root root 4096 Oct 22 02:19 uevent |
| 265 | root@beaglebone:/sys/bus/i2c/devices/1-0050# |
| 266 | }}} |
| 267 | |
| 268 | EEPROMへのデータの書き込み、読み込みはeepromファイルにアクセスすることで行われる。 |
| 269 | {{{ |
| 270 | root@beaglebone:/sys/bus/i2c/devices/1-0050# echo "hoge" > eeprom |
| 271 | root@beaglebone:/sys/bus/i2c/devices/1-0050# cat eeprom | hexdump -C |
| 272 | 00000000 68 6F 67 65 ff ff ff ff ff ff ff ff ff ff ff ff |hoge | |
| 273 | * |
| 274 | }}} |
| 275 | |
| 276 | === EEPROMの作成 === |
| 277 | |
| 278 | EEPROMのイメージデータは、firmwareファイルから生成することはできないので、別の定義ファイルから作成するしかないみたい。[[br]] |
| 279 | EEPROMのフォーマットは規定されているが、それを作る方法が確立しているわけではないみたい。[[br]]色々なページでも、自作のプログラムでひな形を作ったりしている。一応、正式な方法としてはJSON形式のファイルを作成して、それをコンバートして作る方法が紹介されている。[[br]] |
| 280 | 変換プログラム自体はjavascriptで書かれているが、OSにはインストールされていないのでどこかから持ってくる必要がある。今回は[https://bitbucket.org/intelligentagent/replicape/src/28dfc97a7230/eeprom?at=master ここ]から、eeprom.jsとbone.jsをとってきた。[[br]] |
| 281 | このスクリプトを使って変換する。ちなみに、EEPROMの定義ファイルは、cape-bone-uartx4-00A0.jsonとした。 |
| 282 | |
| 283 | {{{ |
| 284 | root@beaglebone:~/cape/UARTx4/eeprom# node ./eeprom.js -w cape-bone-uartx4-00A0.json |
| 285 | }}} |
| 286 | |
| 287 | JSON形式の設定ファイルの内容は以下の通り。[[br]] |
| 288 | 注意点として、partNumberとversionはfirmwareの設定内容(ファイル名?)と同じにしておかないといけない。これをキーにして対応するfirmwareを検索するらしい。 |
| 289 | |
| 290 | {{{ |
| 291 | { |
| 292 | "uartx4.eeprom": { |
| 293 | "type": "cape", |
| 294 | "header": "aa5533ee", |
| 295 | "formatRev": "A0", |
| 296 | "boardName": "RS232C x4 Cape", |
| 297 | "version": "00A0", |
| 298 | "manufacturer": "KEK cERL CTRL", |
| 299 | "partNumber": "cape-bone-uartx4", |
| 300 | "numPins": 8, |
| 301 | "serialNumber": "0000-0000-0001", |
| 302 | "currentVDD_3V3EXP": 250, |
| 303 | "currentVDD_5V": 250, |
| 304 | "currentSYS_5V": 1000, |
| 305 | "DCSupplied": 1000, |
| 306 | "mux": { |
| 307 | "P9_26": { |
| 308 | "used": "used", |
| 309 | "direction": "in", |
| 310 | "pullup": "disabled", |
| 311 | "slew": "fast", |
| 312 | "rx": "enabled", |
| 313 | "mode": 0, |
| 314 | "function": "uart1_rxd" |
| 315 | }, |
| 316 | "P9_24": { |
| 317 | "used": "used", |
| 318 | "direction": "out", |
| 319 | "pullup": "disabled", |
| 320 | "slew": "fast", |
| 321 | "rx": "disabled", |
| 322 | "mode": 0, |
| 323 | "function": "uart1_txd" |
| 324 | }, |
| 325 | "P9_22": { |
| 326 | "used": "used", |
| 327 | "direction": "in", |
| 328 | "pullup": "disabled", |
| 329 | "slew": "fast", |
| 330 | "rx": "enabled", |
| 331 | "mode": 1, |
| 332 | "function": "uart2_rxd" |
| 333 | }, |
| 334 | "P9_21": { |
| 335 | "used": "used", |
| 336 | "direction": "out", |
| 337 | "pullup": "disabled", |
| 338 | "slew": "fast", |
| 339 | "rx": "disabled", |
| 340 | "mode": 1, |
| 341 | "function": "uart2_txd" |
| 342 | }, |
| 343 | "P9_11": { |
| 344 | "used": "used", |
| 345 | "direction": "in", |
| 346 | "pullup": "disabled", |
| 347 | "slew": "fast", |
| 348 | "rx": "enabled", |
| 349 | "mode": 6, |
| 350 | "function": "uart4_rxd" |
| 351 | }, |
| 352 | "P9_13": { |
| 353 | "used": "used", |
| 354 | "direction": "out", |
| 355 | "pullup": "disabled", |
| 356 | "slew": "fast", |
| 357 | "rx": "disabled", |
| 358 | "mode": 6, |
| 359 | "function": "uart4_txd" |
| 360 | }, |
| 361 | "P8_38": { |
| 362 | "used": "used", |
| 363 | "direction": "in", |
| 364 | "pullup": "disabled", |
| 365 | "slew": "fast", |
| 366 | "rx": "enabled", |
| 367 | "mode": 4, |
| 368 | "function": "uart5_rxd" |
| 369 | }, |
| 370 | "P8_37": { |
| 371 | "used": "used", |
| 372 | "direction": "out", |
| 373 | "pullup": "disabled", |
| 374 | "slew": "fast", |
| 375 | "rx": "disabled", |
| 376 | "mode": 4, |
| 377 | "function": "uart5_txd" |
| 378 | } |
| 379 | } |
| 380 | } |
| 381 | } |
| 382 | |
| 383 | }}} |
| 384 | |
| 385 | 変換したEEPROMイメージをダンプするとこんな感じ。 |
| 386 | |
| 387 | {{{ |
| 388 | root@beaglebone:~/cape/UARTx4/eeprom# hexdump -C uartx4.eeprom |
| 389 | 00000000 aa 55 33 ee 41 30 52 53 32 33 32 43 20 78 34 20 |.U3.A0RS232C x4 | |
| 390 | 00000010 43 61 70 65 00 00 00 00 00 00 00 00 00 00 00 00 |Cape............| |
| 391 | 00000020 00 00 00 00 00 00 30 30 41 30 4b 45 4b 20 63 45 |......00A0KEK cE| |
| 392 | 00000030 52 4c 20 43 54 52 4c 00 00 00 63 61 70 65 2d 62 |RL CTRL...cape-b| |
| 393 | 00000040 6f 6e 65 2d 75 61 72 74 78 34 00 08 30 30 30 30 |one-uartx4..0000| |
| 394 | 00000050 2d 30 30 30 30 2d 30 30 a0 29 c0 09 00 00 00 00 |-0000-00.)......| |
| 395 | 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0 28 |...............(| |
| 396 | 00000070 c0 08 00 00 00 00 00 00 00 00 00 00 a0 2e c0 0e |................| |
| 397 | 00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
| 398 | * |
| 399 | 000000c0 00 00 c0 0c a0 2c 00 00 00 00 00 00 00 00 00 00 |.....,..........| |
| 400 | 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| |
| 401 | 000000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 fa 00 fa |................| |
| 402 | 000000f0 03 e8 03 e8 |....| |
| 403 | 000000f4 |
| 404 | }}} |
| 405 | |
| 406 | |
| 407 | これをEEPROMに書き込んで、Capeを起動すれば、自動的にfirmwareが読み込まれる。[[br]] |
| 408 | EEPROMがI2C2の0x54に接続されている場合には、以下のコマンドで書き込みができる。 |
| 409 | |
| 410 | {{{ |
| 411 | root@beaglebone:~/cape/UARTx4/eeprom# cat uartx4.eeprom > /sys/bus/i2c/devices/1-0054/eeprom |
| 412 | }}} |
| 413 | |
| 414 | == 実機テスト == |
| 415 | |
| 416 | 実際にCapeを試作して実装してみる。 |
| 417 | |
| 418 | {{{ |
| 419 | root@beaglebone:~# cat /sys/devices/bone_capemgr.8/slots |
| 420 | 0: 54:PF--- |
| 421 | 1: 55:PF--- |
| 422 | 2: 56:PF--- |
| 423 | 3: 57:P---L RS232C x4 Cape,00A0,KEK cERL CTRL,cape-bone-uartx4 |
| 424 | 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G |
| 425 | 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI |
| 426 | 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN |
| 427 | }}} |
| 428 | |
| 429 | I2Cアドレスの設定によって、表示されるスロットは変わるが、0x57の位置に今回作成したcapeがロードされたことがわかる。[[br]] |
| 430 | dmesgで詳細を確認。 |
| 431 | |
| 432 | {{{ |
| 433 | [ 0.000000] Booting Linux on physical CPU 0x0 |
| 434 | [ 0.000000] Initializing cgroup subsys cpu |
| 435 | [ 0.000000] Linux version 3.8.13 (koen@rrMBP) (gcc version 4.7.3 20130205 (prerelease) (Linaro GCC 4.7-2013.02-01) ) #1 SMP Wed Aug 14 16:25:00 CEST 2013 |
| 436 | [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d |
| 437 | [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache |
| 438 | |
| 439 | : |
| 440 | |
| 441 | [ 0.244885] loop: module loaded |
| 442 | [ 0.245009] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 443 | [ 0.245089] at24 1-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 444 | [ 0.245159] at24 1-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 445 | [ 0.245228] at24 1-0056: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 446 | [ 0.245298] at24 1-0057: 32768 byte 24c256 EEPROM, writable, 1 bytes/write |
| 447 | [ 0.252493] bone-capemgr bone_capemgr.8: Baseboard: 'A335BNLT,0A5C,2713BBBK6962' |
| 448 | [ 0.252534] bone-capemgr bone_capemgr.8: compatible-baseboard=ti,beaglebone-black |
| 449 | [ 0.252607] bone-capemgr bone_capemgr.8: Skipping disabled cape with part# BB-BONELT-HDMI |
| 450 | [ 0.252690] bone-capemgr bone_capemgr.8: Skipping disabled cape with part# BB-BONELT-HDMIN |
| 451 | [ 0.282744] bone-capemgr bone_capemgr.8: slot #0: No cape found |
| 452 | [ 0.319851] bone-capemgr bone_capemgr.8: slot #1: No cape found |
| 453 | [ 0.356959] bone-capemgr bone_capemgr.8: slot #2: No cape found |
| 454 | [ 0.387222] bone-capemgr bone_capemgr.8: slot #3: 'RS232C x4 Cape,00A0,KEK cERL CTRL,cape-bone-uartx4' |
| 455 | [ 0.387406] bone-capemgr bone_capemgr.8: slot #4: specific override |
| 456 | [ 0.387447] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 4 |
| 457 | [ 0.387475] bone-capemgr bone_capemgr.8: slot #4: 'Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G' |
| 458 | [ 0.387608] bone-capemgr bone_capemgr.8: slot #5: specific override |
| 459 | [ 0.387644] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 5 |
| 460 | [ 0.387672] bone-capemgr bone_capemgr.8: slot #5: 'Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI' |
| 461 | [ 0.387809] bone-capemgr bone_capemgr.8: slot #6: specific override |
| 462 | [ 0.387845] bone-capemgr bone_capemgr.8: bone: Using override eeprom data at slot 6 |
| 463 | [ 0.387873] bone-capemgr bone_capemgr.8: slot #6: 'Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN' |
| 464 | [ 0.388152] bone-capemgr bone_capemgr.8: Skipping loading of disabled cape with part# BB-BONELT-HDMI |
| 465 | [ 0.388222] bone-capemgr bone_capemgr.8: Skipping loading of disabled cape with part# BB-BONELT-HDMIN |
| 466 | [ 0.388534] bone-capemgr bone_capemgr.8: initialized OK. |
| 467 | |
| 468 | : |
| 469 | |
| 470 | [ 4.800832] bone-capemgr bone_capemgr.8: slot #3: dtbo 'cape-bone-uartx4-00A0.dtbo' loaded; converting to live tree |
| 471 | [ 4.801128] bone-capemgr bone_capemgr.8: slot #3: #5 overlays |
| 472 | [ 4.804422] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 89) is a OMAP UART1 |
| 473 | [ 4.806330] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 90) is a OMAP UART2 |
| 474 | [ 4.809856] 481a8000.serial: ttyO4 at MMIO 0x481a8000 (irq = 61) is a OMAP UART4 |
| 475 | [ 4.811270] 481aa000.serial: ttyO5 at MMIO 0x481aa000 (irq = 62) is a OMAP UART5 |
| 476 | [ 4.811678] bone-capemgr bone_capemgr.8: slot #3: Applied #5 overlays. |
| 477 | [ 4.811731] bone-capemgr bone_capemgr.8: slot #4: Requesting firmware 'cape-bone-2g-emmc1.dtbo' for board-name 'Bone-LT-eMMC-2G', version '00A0' |
| 478 | [ 4.811751] bone-capemgr bone_capemgr.8: slot #4: dtbo 'cape-bone-2g-emmc1.dtbo' loaded; converting to live tree |
| 479 | [ 4.812171] bone-capemgr bone_capemgr.8: slot #4: #2 overlays |
| 480 | |
| 481 | }}} |
| 482 | |
| 483 | UART1,2,4,5がそれぞれttyO1,ttyO2,ttyO4,ttyO5になっていることが確認できた。[[br]] |
| 484 | |
| 485 | |
| 486 | 実際に通信して確かめてみる。[[br]] |
| 487 | RS232Cクロスケーブルをポート1と2につなぎ、シリアル通信プログラム minicom で実験。タミーナルを2つ立ち上げて、それぞれでminicomを実行する。 |
| 488 | |
| 489 | {{{ |
| 490 | root@beaglebone:~# minicom -D /dev/ttyO1 -b 115200 |
| 491 | }}} |
| 492 | |
| 493 | {{{ |
| 494 | root@beaglebone:~# minicom -D /dev/ttyO2 -b 115200 |
| 495 | }}} |
| 496 | |
| 497 | minicomが起動したら、片方のターミナル画面から適当な文字を入力すると、もう片方のターミナルに入力した文字が表示されれば成功。表示されないようなら、配線をチェックするか、違うRS232Cポートにケーブルをつないでいないかをチェックする。 |
| 498 | |
| 499 | == 参照HP == |
| 500 | |
| 501 | [http://papermint-designs.com/community/node/338 NULLCape. How to Roll your own BeagleBone Capes (Part II) | Community Papermint Designs][[br]] |
| 502 | [https://groups.google.com/forum/#!topic/beagleboard/pf1MNKptqS0 Where are the serial ttyO1,2,3,4? - Google グループ][[br]] |
| 503 | [http://circuitco.com/support/index.php?title=Cape_Expansion_Headers Cape Expansion Headers - Circuitco Wiki Support][[br]] |
| 504 | [http://www.logicsupply.com/blog/2013/07/18/disabling-the-beaglebone-black-hdmi-cape/ Disabling the BeagleBone Black HDMI Cape Logic Supply Blog][[br]] |
| 505 | [http://azkeller.com/blog/?p=62 Adventures in BeagleBone Cape EEPROMs | K.Keller's Blog][[br]] |