# HG changeset patch # User Ethan Zonca # Date 2016-01-19 22:08:19 # Node ID 0dd5c923fdea9e54a8d8b2539875f2f7c59bce71 # Parent 0d9900312165039d9d74d0cff88bd16c3789c020 i2c comms still not working diff --git a/inc/gpio.h b/inc/gpio.h --- a/inc/gpio.h +++ b/inc/gpio.h @@ -20,7 +20,8 @@ #define TCXO_EN TCXO_EN_GPIO_Port , TCXO_EN_Pin -void MX_GPIO_Init(void); +void gpio_init(void); +void led_blink(uint8_t n); #endif diff --git a/lib/si5351/si5351.c b/lib/si5351/si5351.c --- a/lib/si5351/si5351.c +++ b/lib/si5351/si5351.c @@ -25,6 +25,8 @@ #include #include "stm32f0xx_hal.h" #include "si5351.h" +#include "gpio.h" + // Private prototypes uint64_t si5351_pll_calc(uint64_t, struct Si5351RegSet *, int32_t); @@ -909,7 +911,11 @@ void si5351_set_clock_fanout(enum si5351 uint8_t si5351_write_bulk(uint8_t addr, uint8_t bytes, uint8_t *data) { - HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, bytes, 100); + HAL_Delay(300); + uint32_t res = HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, bytes, 100); + led_blink(res); + HAL_Delay(300); + /* @@ -925,9 +931,12 @@ uint8_t si5351_write_bulk(uint8_t addr, uint8_t si5351_write(uint8_t addr, uint8_t data) { + HAL_Delay(300); uint8_t data_arr[1] = {data}; - HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, 1, 100); + uint8_t res = HAL_I2C_Mem_Write(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data, 1, 100); + led_blink(res); + HAL_Delay(300); /* Wire.beginTransmission(SI5351_BUS_BASE_ADDR); Wire.write(addr); @@ -940,8 +949,11 @@ uint8_t si5351_read(uint8_t addr) { uint8_t data_arr[1] = {0}; - HAL_I2C_Mem_Read(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data_arr, 1, 100); + HAL_Delay(300); + uint8_t res = HAL_I2C_Mem_Read(si5351_i2cport, SI5351_BUS_BASE_ADDR, addr, 1, data_arr, 1, 100); + led_blink(res); + HAL_Delay(300); /* Wire.beginTransmission(SI5351_BUS_BASE_ADDR); Wire.write(addr); diff --git a/src/gpio.c b/src/gpio.c --- a/src/gpio.c +++ b/src/gpio.c @@ -1,6 +1,6 @@ #include "gpio.h" -void MX_GPIO_Init(void) +void gpio_init(void) { GPIO_InitTypeDef GPIO_InitStruct; @@ -53,3 +53,13 @@ void MX_GPIO_Init(void) } +void led_blink(uint8_t n) +{ + for(int i = 0; i < n; i++) + { + HAL_GPIO_WritePin(LED_BLUE, 1); + HAL_Delay(100); + HAL_GPIO_WritePin(LED_BLUE, 0); + HAL_Delay(100); + } +} diff --git a/src/i2c.c b/src/i2c.c --- a/src/i2c.c +++ b/src/i2c.c @@ -9,10 +9,12 @@ I2C_HandleTypeDef hi2c1; void i2c_init(void) { + __GPIOA_CLK_ENABLE(); + GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; - GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = GPIO_AF4_I2C1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -35,7 +37,7 @@ void i2c_init(void) // Get pointer to I2C port -inline I2C_HandleTypeDef* i2c_get(void) +I2C_HandleTypeDef* i2c_get(void) { return &hi2c1; } diff --git a/src/main.c b/src/main.c --- a/src/main.c +++ b/src/main.c @@ -19,11 +19,11 @@ uint8_t tx_buffer[255]; int main(void) { - HAL_Init(); sysclk_init(); - MX_GPIO_Init(); + gpio_init(); + led_blink(5); MX_DMA_Init(); MX_ADC_Init(); i2c_init(); @@ -34,7 +34,6 @@ int main(void) // MX_USART1_UART_Init(); - //jtencode_init(); //gps_init(); si5351_init(i2c_get(), SI5351_CRYSTAL_LOAD_8PF, 0); @@ -103,6 +102,5 @@ void sysclk_init(void) // SysTick_IRQn interrupt configuration HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); - }