UNPKG

bot-io

Version:

ADC, GPIO, PWM, UARTs, and more on the BeagleBone Black.

120 lines (98 loc) 4.04 kB
'use strict'; var pin; var pwmSubSystems = { subSystem0: {number: 0, addr: 0x48300000}, subSystem1: {number: 1, addr: 0x48302000}, subSystem2: {number: 2, addr: 0x48304000} }; var pwmModules = { ecap0: {subSystem: pwmSubSystems.subSystem0, name: 'ecap0', addr: 0x48300100}, ehrpwm0: {subSystem: pwmSubSystems.subSystem0, name: 'ehrpwm0', addr: 0x48300200}, ehrpwm1: {subSystem: pwmSubSystems.subSystem1, name: 'ehrpwm1', addr: 0x48302200}, ehrpwm2: {subSystem: pwmSubSystems.subSystem2, name: 'ehrpwm2', addr: 0x48304200} }; var pwmPins = { p8_13: {module: pwmModules.ehrpwm2, channel: 1, muxMode: 4, mux: 'ehrpwm2B'}, p8_19: {module: pwmModules.ehrpwm2, channel: 0, muxMode: 4, mux: 'ehrpwm2A'}, p9_14: {module: pwmModules.ehrpwm1, channel: 0, muxMode: 6, mux: 'ehrpwm1A'}, p9_16: {module: pwmModules.ehrpwm1, channel: 1, muxMode: 6, mux: 'ehrpwm1B'}, p9_21: {module: pwmModules.ehrpwm0, channel: 1, muxMode: 3, mux: 'ehrpwm0B'}, p9_22: {module: pwmModules.ehrpwm0, channel: 0, muxMode: 3, mux: 'ehrpwm0A'}, p9_42: {module: pwmModules.ecap0, channel: 0, muxMode: 0, mux: 'eCAP0_in_PWM0_out'} }; var ainPins = { p9_33: {channel: 4}, p9_35: {channel: 6}, p9_36: {channel: 5}, p9_37: {channel: 2}, p9_38: {channel: 3}, p9_39: {channel: 0}, p9_40: {channel: 1} }; var uartPins = { p9_11: {muxValue: 0x26}, // uart4 rx p9_13: {muxValue: 0x06}, // uart4 tx p9_21: {muxValue: 0x01}, // uart2 tx p9_22: {muxValue: 0x21}, // uart2 rx p9_24: {muxValue: 0x20}, // uart1 tx p9_26: {muxValue: 0x20} // uart1 rx }; var pins = { /* p8_01 - p8_06: power + emmc */ p8_07: {gpioNo: 66, muxOffset: 0x090}, p8_08: {gpioNo: 67, muxOffset: 0x094}, p8_09: {gpioNo: 69, muxOffset: 0x09c}, p8_10: {gpioNo: 68, muxOffset: 0x098}, p8_11: {gpioNo: 45, muxOffset: 0x034}, p8_12: {gpioNo: 44, muxOffset: 0x030}, p8_13: {gpioNo: 23, muxOffset: 0x024, pwm: pwmPins.p8_13}, p8_14: {gpioNo: 26, muxOffset: 0x028}, p8_15: {gpioNo: 47, muxOffset: 0x03c}, p8_16: {gpioNo: 46, muxOffset: 0x038}, p8_17: {gpioNo: 27, muxOffset: 0x02c}, p8_18: {gpioNo: 65, muxOffset: 0x08c}, p8_19: {gpioNo: 22, muxOffset: 0x020, pwm: pwmPins.p8_19}, /* p8_20 - p8_25: emmc */ p8_26: {gpioNo: 61, muxOffset: 0x07c}, /* p8_27 - p8_46: hdmi */ /* p9_01 - p9_10: power + reset */ p9_11: {gpioNo: 30, muxOffset: 0x070, uart: uartPins.p9_11}, p9_12: {gpioNo: 60, muxOffset: 0x078}, p9_13: {gpioNo: 31, muxOffset: 0x074, uart: uartPins.p9_13}, p9_14: {gpioNo: 50, muxOffset: 0x048, pwm: pwmPins.p9_14}, p9_15: {gpioNo: 48, muxOffset: 0x040}, p9_16: {gpioNo: 51, muxOffset: 0x04c, pwm: pwmPins.p9_16}, p9_17: {gpioNo: 5, muxOffset: 0x15c}, p9_18: {gpioNo: 4, muxOffset: 0x158}, /* p9_19 - p9_20: cape i2c EEPROM bus */ p9_21: {gpioNo: 3, muxOffset: 0x154, pwm: pwmPins.p9_21, uart: uartPins.p9_21}, p9_22: {gpioNo: 2, muxOffset: 0x150, pwm: pwmPins.p9_22, uart: uartPins.p9_22}, p9_23: {gpioNo: 49, muxOffset: 0x044}, p9_24: {gpioNo: 15, muxOffset: 0x184, uart: uartPins.p9_24}, /* p9_25: {gpioNo: 117, muxOffset: 0x1ac}, audio */ p9_26: {gpioNo: 14, muxOffset: 0x180, uart: uartPins.p9_26}, p9_27: {gpioNo: 115, muxOffset: 0x1a4}, /* p9_28: {gpioNo: 113, muxOffset: 0x19c}, audio */ /* p9_29: {gpioNo: 111, muxOffset: 0x194}, audio */ p9_30: {gpioNo: 112, muxOffset: 0x198}, /* p9_31: {gpioNo: 110, muxOffset: 0x190}, audio */ /* p9_32: adc power */ p9_33: {ain: ainPins.p9_33}, // AIN4 /* p9_34: adc power */ p9_35: {ain: ainPins.p9_35}, // AIN6 p9_36: {ain: ainPins.p9_36}, // AIN5 p9_37: {ain: ainPins.p9_37}, // AIN2 p9_38: {ain: ainPins.p9_38}, // AIN3 p9_39: {ain: ainPins.p9_39}, // AIN0 p9_40: {ain: ainPins.p9_40}, // AIN1 p9_41: {gpioNo: 20, muxOffset: 0x1b4}, p9_42: {gpioNo: 7, muxOffset: 0x164, pwm: pwmPins.p9_42} /* p9_43 - p9_46: power */ }; // Give each pin a name. for (pin in pins) { if (pins.hasOwnProperty(pin)) { pins[pin].name = pin; } } module.exports = pins;