I2C Master Bootloader Bridge Application.
Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries.
Macros | |
#define | PATTERN_TEST_LENGTH (5 * UDI_CDC_DATA_EPS_FS_SIZE) |
Functions | |
void | cdc_rx_notify (uint8_t port) |
static void | configure_i2c_master (void) |
Configure I2C master. More... | |
static void | configure_usart (void) |
Configure UART console. More... | |
int | main (void) |
Main function. Execution starts here. More... | |
void | main_cdc_disable (uint8_t port) |
Closes the communication port This is called by CDC interface when USB Host disable it. More... | |
bool | main_cdc_enable (uint8_t port) |
Opens the communication port This is called by CDC interface when USB Host enable it. More... | |
void | main_cdc_set_dtr (uint8_t port, bool b_enable) |
Save new DTR state to change led behavior. The DTR notify that the terminal have open or close the communication port. More... | |
void | main_remotewakeup_lpm_disable (void) |
Called by UDC when USB Host request to disable LPM remote wakeup. More... | |
void | main_remotewakeup_lpm_enable (void) |
Called by UDC when USB Host request to enable LPM remote wakeup. More... | |
void | main_resume_action (void) |
Turn on a led to notify active mode Called when the USB line is resumed from the suspend state. More... | |
void | main_sof_action (void) |
Manages the leds behaviors Called when a start of frame is received on USB line each 1ms. More... | |
void | main_suspend_action (void) |
Enters the application in low power mode Callback called when USB host sets USB line in suspend state. More... | |
void | main_suspend_lpm_action (void) |
Enters the application in low power mode Callback called when USB host sets LPM suspend state. More... | |
Variables | |
static volatile bool | b_cdc_data_rx = false |
static volatile bool | b_com_port_opened = false |
static volatile bool | b_wait = false |
uint8_t | cdc_data [PATTERN_TEST_LENGTH] |
struct i2c_master_module | i2c_master_instance |
static volatile bool | main_b_cdc_enable = false |
struct usart_module | usart_instance |
#define PATTERN_TEST_LENGTH (5 * UDI_CDC_DATA_EPS_FS_SIZE) |
Referenced by main().
void cdc_rx_notify | ( | uint8_t | port | ) |
References b_cdc_data_rx.
|
static |
Configure I2C master.
References BOOT_I2C_PAD0, BOOT_I2C_PAD1, i2c_master_config::buffer_timeout, GCLK_GENERATOR_3, i2c_master_config::generator_source, i2c_master_enable(), i2c_master_get_config_defaults(), i2c_master_init(), i2c_master_instance, i2c_master_config::pinmux_pad0, and i2c_master_config::pinmux_pad1.
Referenced by main_cdc_enable().
|
static |
Configure UART console.
References usart_config::baudrate, EDBG_CDC_MODULE, EDBG_CDC_SERCOM_MUX_SETTING, EDBG_CDC_SERCOM_PINMUX_PAD0, EDBG_CDC_SERCOM_PINMUX_PAD1, EDBG_CDC_SERCOM_PINMUX_PAD2, EDBG_CDC_SERCOM_PINMUX_PAD3, GCLK_GENERATOR_3, usart_config::generator_source, usart_config::mux_setting, usart_config::pinmux_pad0, usart_config::pinmux_pad1, usart_config::pinmux_pad2, usart_config::pinmux_pad3, usart_enable(), usart_get_config_defaults(), and usart_instance.
Referenced by main().
int main | ( | void | ) |
Main function. Execution starts here.
References i2c_master_packet::address, b_cdc_data_rx, b_com_port_opened, b_wait, cdc_data, configure_usart(), cpu_irq_enable, i2c_master_packet::data, i2c_master_packet::data_length, i2c_master_instance, i2c_master_read_packet_wait(), i2c_master_write_packet_wait(), irq_initialize_vectors, MSB0W, MSB1W, MSB2W, MSB3W, PATTERN_TEST_LENGTH, SLAVE_ADDRESS, sleepmgr_init(), STATUS_OK, system_init(), TARGET_PAGE_SIZE, udc_start(), udi_cdc_get_nb_received_data(), udi_cdc_read_buf(), udi_cdc_write_buf(), ui_init(), and ui_powerdown().
void main_cdc_disable | ( | uint8_t | port | ) |
Closes the communication port This is called by CDC interface when USB Host disable it.
References b_com_port_opened, i2c_master_disable(), i2c_master_instance, and main_b_cdc_enable.
bool main_cdc_enable | ( | uint8_t | port | ) |
Opens the communication port This is called by CDC interface when USB Host enable it.
true | if cdc startup is successfully done |
References configure_i2c_master(), and main_b_cdc_enable.
void main_cdc_set_dtr | ( | uint8_t | port, |
bool | b_enable | ||
) |
Save new DTR state to change led behavior. The DTR notify that the terminal have open or close the communication port.
References b_com_port_opened, ui_com_close(), and ui_com_open().
void main_remotewakeup_lpm_disable | ( | void | ) |
Called by UDC when USB Host request to disable LPM remote wakeup.
References ui_wakeup_disable().
void main_remotewakeup_lpm_enable | ( | void | ) |
Called by UDC when USB Host request to enable LPM remote wakeup.
References ui_wakeup_enable().
void main_resume_action | ( | void | ) |
Turn on a led to notify active mode Called when the USB line is resumed from the suspend state.
References ui_wakeup().
void main_sof_action | ( | void | ) |
Manages the leds behaviors Called when a start of frame is received on USB line each 1ms.
References main_b_cdc_enable, udd_get_frame_number(), and ui_process().
void main_suspend_action | ( | void | ) |
Enters the application in low power mode Callback called when USB host sets USB line in suspend state.
References ui_powerdown().
void main_suspend_lpm_action | ( | void | ) |
Enters the application in low power mode Callback called when USB host sets LPM suspend state.
References ui_powerdown().
Referenced by cdc_rx_notify(), and main().
Referenced by main(), main_cdc_disable(), and main_cdc_set_dtr().
uint8_t cdc_data[PATTERN_TEST_LENGTH] |
Referenced by main().
struct i2c_master_module i2c_master_instance |
Referenced by configure_i2c_master(), main(), and main_cdc_disable().
Referenced by main_cdc_disable(), main_cdc_enable(), and main_sof_action().
struct usart_module usart_instance |
Referenced by configure_usart().