BV: fix going to safe state on full version, and RS485 pin info
This commit is contained in:
parent
8774be07cd
commit
fee77b8231
|
@ -69,12 +69,8 @@ uint8_t busvoodoo_revision = 0;
|
|||
void busvoodoo_setup(void)
|
||||
{
|
||||
// enable all GPIO domains since we use pins on all ports
|
||||
rcc_periph_clock_enable(RCC_GPIOA); // enable clock for all GPIO domains
|
||||
rcc_periph_clock_enable(RCC_GPIOB); // enable clock for all GPIO domains
|
||||
rcc_periph_clock_enable(RCC_GPIOC); // enable clock for all GPIO domains
|
||||
rcc_periph_clock_enable(RCC_GPIOD); // enable clock for all GPIO domains
|
||||
rcc_periph_clock_enable(RCC_AFIO); // enable pin alternate function (for communication)
|
||||
busvoodoo_safe_state(); // switch off all outputs
|
||||
rcc_periph_clock_enable(RCC_GPIOA|RCC_GPIOB|RCC_GPIOC|RCC_GPIOD|RCC_AFIO); // enable clock for all GPIO domains and alternate function (for communication)
|
||||
busvoodoo_safe_state(); // put pins in safe state (for common light version)
|
||||
|
||||
// check if this BusVoodoo is a full version
|
||||
rcc_periph_clock_enable(RCC_ADC12_IN(BUSVOODOO_HV_CHANNEL)); // enable clock for GPIO domain for HV channel
|
||||
|
@ -85,6 +81,7 @@ void busvoodoo_setup(void)
|
|||
busvoodoo_full = false;
|
||||
} else {
|
||||
busvoodoo_full = true;
|
||||
busvoodoo_safe_state(); // also put the full version pins in safe state
|
||||
}
|
||||
|
||||
// setup ADC to measure hardware revision voltage
|
||||
|
@ -217,8 +214,10 @@ void busvoodoo_safe_state(void)
|
|||
gpio_set_mode(GPIO(BUSVOODOO_RS485_RE_PORT), GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO(BUSVOODOO_RS485_RE_PIN)); // use external pull-up resistor to set high by default
|
||||
gpio_clear(GPIO(BUSVOODOO_RS485_DE_PORT), GPIO(BUSVOODOO_RS485_DE_PIN)); // set low to disable transmitter
|
||||
gpio_set_mode(GPIO(BUSVOODOO_RS485_DE_PORT), GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO(BUSVOODOO_RS485_DE_PIN)); // there is also an external pull-down resistor to disable per default
|
||||
gpio_set_mode(GPIO(BUSVOODOO_RS485_TX_PORT), GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO(BUSVOODOO_RS485_TX_PIN)); // set pin to floating
|
||||
gpio_set_mode(GPIO(BUSVOODOO_RS485_RX_PORT), GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO(BUSVOODOO_RS485_RX_PIN)); // set pin to floating
|
||||
|
||||
// disable all CAN and some RS-458 signals (put back to input floating)
|
||||
// disable CAN transceiver and signals (put back to input floating)
|
||||
gpio_set_mode(GPIO(BUSVOODOO_CAN_TX_PORT), GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO(BUSVOODOO_CAN_TX_PIN)); // set pin to floating
|
||||
gpio_set_mode(GPIO(BUSVOODOO_CAN_RX_PORT), GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO(BUSVOODOO_CAN_RX_PIN)); // set pin to floating
|
||||
gpio_set(GPIO(BUSVOODOO_CAN_EN_PORT), GPIO(BUSVOODOO_CAN_EN_PIN)); // set high to power off transceiver
|
||||
|
|
|
@ -76,10 +76,10 @@
|
|||
/** @defgroup busvoodoo_rs485 RS-485 (and RS-422) transceiver connection definition
|
||||
* @{
|
||||
*/
|
||||
#define BUSVOODOO_RS485_RE_PORT C /**< RS-232 pin to enable receiver (active low, pulled up) */
|
||||
#define BUSVOODOO_RS485_RE_PIN 13 /**< RS-232 pin to enable receiver (active low, pulled up) */
|
||||
#define BUSVOODOO_RS485_DE_PORT C /**< RS-232 pin to enable transmitter (active high, pulled low) */
|
||||
#define BUSVOODOO_RS485_DE_PIN 14 /**< RS-232 pin to enable transmitter (active high, pulled low) */
|
||||
#define BUSVOODOO_RS485_RE_PORT C /**< RS-485 pin to enable receiver (active low, pulled up) */
|
||||
#define BUSVOODOO_RS485_RE_PIN 13 /**< RS-485 pin to enable receiver (active low, pulled up) */
|
||||
#define BUSVOODOO_RS485_DE_PORT C /**< RS-485 pin to enable transmitter (active high, pulled low) */
|
||||
#define BUSVOODOO_RS485_DE_PIN 14 /**< RS-485 pin to enable transmitter (active high, pulled low) */
|
||||
#define BUSVOODOO_RS485_TX_PORT A /**< RS-485 Transmit output pin */
|
||||
#define BUSVOODOO_RS485_TX_PIN 2 /**< RS-485 Transmit output pin */
|
||||
#define BUSVOODOO_RS485_RX_PORT A /**< RS-485 Receive input pin */
|
||||
|
|
Loading…
Reference in New Issue