The AlarmDecoder AD2PI also supports other embedded systems that can use TTL RS-232 such as the BeagleBone Black. It's a fairly simple process to wire everything up and configure the BeagleBone to communicate with your device.
What you need
- An AlarmDecoder AD2PI
- NOTE: The AD2PI pictured is a development board with an extra long pin header. You'll need to solder the connection or go in through the bottom.
- A BeagleBone Black
- Wires & solder
Steps
- Make sure your BeagleBone and AD2PI are disconnected from power and the panel, respectively.
- Connect the pins. See the images on the sidebar if you need a visual reference.
- Connect power to your BeagleBone and boot it up.
- Enable UART (instructions based on those found here)
- Create a file named enable-art5.dts containing the DTS script to enable UART5.
- Compile the device tree overlay:
- dtc -O dtb -o enable-uart5-00A0.dtbo -b O -@ enable-uart5.dts
- Copy the compiled file to /lib/firmware
- cp enable-uart5-00A0.dtbo /lib/firmware
- Enable the overlay:
- echo enable-uart5 >/sys/devices/bone_capmgr.*/slots
- Your device should now show up as /dev/ttyO4.
- Test your device:
- Open the serial port with screen:
- screen /dev/ttyO4 115200
- Confirm communication with the device by rebooting it with =.
- Exit screen by typing Ctrl+A+K.
Conn | AD2PI Pin | BeagleBone Pin |
---|---|---|
GND | 6 | 1 |
3.3V | 1 | 3 |
RX | 10 | 11 |
TX | 8 | 13 |
DTS script
/* * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; /plugin/; / { compatible = "ti,beaglebone", "ti,beaglebone-black"; /* identification */ part-number = "uart5"; fragment@0 { target = <&am33xx_pinmux>; __overlay__ { pinctrl_uart5: pinctrl_uart5_pins { pinctrl-single,pins = < 0x070 0x26 /* P9_11 = GPIO0_30 = GPMC_WAIT0 , MODE6 */ 0x074 0x06 /* P9_13 = GPIO0_31 = GPMC_WPN, MODE6 */ >; }; }; }; fragment@1{ target = <&uart5>; __overlay__ { status = "okay"; }; }; fragment@2 { target = <&ocp>; __overlay__ { test_helper: helper { compatible = "bone-pinmux-helper"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart5>; status = "okay"; }; }; }; };