mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-30 08:24:11 +01:00
68 lines
4.0 KiB
C
68 lines
4.0 KiB
C
/*
|
|
* pios_i2c_config.h
|
|
*
|
|
* Created on: May 8, 2011
|
|
* Author: Michael Smith
|
|
*/
|
|
|
|
#ifndef PIOS_I2C_CONFIG_H_
|
|
#define PIOS_I2C_CONFIG_H_
|
|
|
|
/**
|
|
* Generic I2C configuration for the STM32F4xx
|
|
*/
|
|
#define I2C_CONFIG(_i2c, _scl_gpio, _scl_pin, _sda_gpio, _sda_pin) \
|
|
{ \
|
|
.regs = _i2c, \
|
|
.remap = GPIO_AF_##_i2c, \
|
|
.init = { \
|
|
.I2C_ClockSpeed = 400000, /* bits/s */ \
|
|
.I2C_Mode = I2C_Mode_I2C, \
|
|
.I2C_DutyCycle = I2C_DutyCycle_2, \
|
|
.I2C_OwnAddress1 = 0, \
|
|
.I2C_Ack = I2C_Ack_Enable, \
|
|
.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit, \
|
|
}, \
|
|
.transfer_timeout_ms = 50, \
|
|
.scl = { \
|
|
.gpio = _scl_gpio, \
|
|
.init = { \
|
|
.GPIO_Pin = _scl_pin, \
|
|
.GPIO_Mode = GPIO_Mode_AF, \
|
|
.GPIO_Speed = GPIO_Speed_50MHz, \
|
|
.GPIO_OType = GPIO_OType_OD, \
|
|
.GPIO_PuPd = GPIO_PuPd_NOPULL, \
|
|
}, \
|
|
}, \
|
|
.sda = { \
|
|
.gpio = _sda_gpio, \
|
|
.init = { \
|
|
.GPIO_Pin = _sda_pin, \
|
|
.GPIO_Mode = GPIO_Mode_AF, \
|
|
.GPIO_Speed = GPIO_Speed_50MHz, \
|
|
.GPIO_OType = GPIO_OType_OD, \
|
|
.GPIO_PuPd = GPIO_PuPd_NOPULL, \
|
|
}, \
|
|
}, \
|
|
.event = { \
|
|
.flags = 0, /* FIXME: check this */ \
|
|
.init = { \
|
|
.NVIC_IRQChannel = _i2c##_EV_IRQn, \
|
|
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGHEST, \
|
|
.NVIC_IRQChannelSubPriority = 0, \
|
|
.NVIC_IRQChannelCmd = ENABLE, \
|
|
}, \
|
|
}, \
|
|
.error = { \
|
|
.flags = 0, /* FIXME: check this */ \
|
|
.init = { \
|
|
.NVIC_IRQChannel = _i2c##_ER_IRQn, \
|
|
.NVIC_IRQChannelPreemptionPriority = PIOS_IRQ_PRIO_HIGHEST, \
|
|
.NVIC_IRQChannelSubPriority = 0, \
|
|
.NVIC_IRQChannelCmd = ENABLE, \
|
|
}, \
|
|
}, \
|
|
}
|
|
|
|
#endif /* PIOS_I2C_CONFIG_H_ */
|