Haremos uso de la interface RIIC0 con el que cuenta el MCU R5F562N8 de la tarjeta de evaluación YRDKRX62N. Haremos funcionar el sensor de temperatura ADT7420 cuyo protocolo es I2C e imprimiremos su valor en la LCD gráfica en grados Celsius.
- Inicializaremos el módulo RIIC0
- Se crearán rutinas de lectura y escritura I2C
- Se implementará la API del sensor de temperatura para manejo de sus funciones.
DESARROLLO:
- Del YRDKRX62N schematic ubicamos el sensor de temperatura y su dirección:
PASOS:
- Creación de un proyecto:
2.- New/ C Project / Renesas RXC ToolChain
3.- Seleccionar el target R5F562N8, debug hardware Segger jLink, después next
4.- Seleccionar C/C++ Source file y por ultimo Finish.
5.- Las rutinas de lectura del sensor de temperatura se encuentran en el archivo TemperatureSensor.c
/* ADT7420 IIC Registers */
#define ADT7420_ADDR 0x90
#define ADT7420_TEMP_MSB_REG 0x00
#define ADT7420_CONFIG_REG 0x03
#define BSP_TEMP_ADDR (ADT7420_ADDR >> 1)
void Temperature_Init(void)
{
uint8_t temp_data[2];
temp_data[0]
= ADT7420_CONFIG_REG; /* configure temperature sensor */
temp_data[1]
= 0x00;
I2C_Write(BSP_TEMP_ADDR,
&temp_data[0], 2, true);
}
unsigned int Temperature_Get(void)
{
uint8_t temp_data[2];
uint16_t temp;
temp_data[0]
= ADT7420_TEMP_MSB_REG;
I2C_Write(BSP_TEMP_ADDR,
&temp_data[0], 1, false);
I2C_Read(BSP_TEMP_ADDR,
&temp_data[0], 2, false);
temp
= temp_data[0] << 8;
temp
+= temp_data[1];
return temp;
}
· void I2C_Start(void);
·
void I2C_Read(uint8_t
addr, uint8_t *p_data, uint32_t
len, bool start)
·
void I2C_Write(uint8_t
addr, uint8_t *p_data, uint32_t
len, bool stop)
- Agregar código, compilar y debug:
--> Practica #9
2.- Compilar con el icono del martillo y debug con el icono del insecto:
VÍDEO:
No hay comentarios.:
Publicar un comentario