Changeset - 0dd5c923fdea
[Not reviewed]
default
0 5 0
Ethan Zonca - 10 years ago 2016-01-19 22:08:19
ez@ethanzonca.com
i2c comms still not working
5 files changed with 34 insertions and 11 deletions:
0 comments (0 inline, 0 general)
inc/gpio.h
Show inline comments
 
@@ -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 
 
lib/si5351/si5351.c
Show inline comments
 
@@ -25,6 +25,8 @@
 
#include <stdint.h>
 
#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);
src/gpio.c
Show inline comments
 
#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);
 
    }
 
}
src/i2c.c
Show inline comments
 
@@ -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;
 
}
src/main.c
Show inline comments
 
@@ -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);
 
 
}
 
0 comments (0 inline, 0 general)