ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_tsn_regs.h
Go to the documentation of this file.
1
40
41#pragma once
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
47#include <stdint.h>
48
49#include "ra8_attributes.h"
50
51typedef enum : uintptr_t {
52 k_ra8_tsn_ctrl_base_addr = 0x40235000UL,
53 k_ra8_tsn_cal_base_addr = 0x02C1EDA0UL,
55
63typedef enum : uint8_t {
67
78typedef enum : uint8_t {
79 k_ra8_tscr_mask_tsen = (uint8_t)(1U << 4U),
80 k_ra8_tscr_mask_tsoe = (uint8_t)(1U << 7U),
81 k_ra8_tscr_mask_all = (uint8_t)((1U << 4U) | (1U << 7U)),
83
94typedef enum : uint16_t {
97
105typedef struct {
106 volatile uint8_t TSCR;
108
132typedef struct {
133 volatile uint32_t TSCDR;
134 volatile uint32_t TSCDR2;
136
139static inline volatile r_tsn_ctrl_regs_t* ra8_tsn(void)
140{
142}
143
153static inline volatile const r_tsn_cal_regs_t* ra8_tsn_cal(void)
154{
155 return (volatile const r_tsn_cal_regs_t*)k_ra8_tsn_cal_base_addr;
156}
157
160static inline volatile const uint32_t* ra8_tsn_tscdr(void)
161{
162 return (volatile const uint32_t*)k_ra8_tsn_cal_base_addr;
163}
164
173typedef enum : int32_t {
177
205
206#ifdef __cplusplus
207}
208#endif
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
ra8_tsn_addr_t
@ k_ra8_tsn_ctrl_base_addr
TSN control block.
@ k_ra8_tsn_cal_base_addr
Factory calibration.
ra8_tscdr_field_t
Field widths for TSCDR / TSCDR2 calibration words.
@ k_ra8_tscdr_data_mask
12-bit data mask (HUM Ch 55.2.2 p 3498).
static volatile const uint32_t * ra8_tsn_tscdr(void)
Get pointer to the factory-programmed calibration word (TSCDR).
ra8_tscr_mask_t
Bit masks for TSCR (Temperature Sensor Control Register).
@ k_ra8_tscr_mask_tsoe
TSOE bit (ADC output enable).
@ k_ra8_tscr_mask_all
TSEN | TSOE.
@ k_ra8_tscr_mask_tsen
TSEN bit (sensor enable).
ra8_tsn_adc_const_t
ADC-side scaling constants used by the two-point conversion.
@ k_ra8_tsn_uv_per_mv
1000-x scale (degC -> mC).
@ k_ra8_tsn_adc_avcc_uv
AVCC = 3.3 V expressed in uV.
@ k_ra8_tsn_adc_full_scale
12-bit ADC full-scale.
ra8_tscr_bit_t
Bit positions in TSCR (Temperature Sensor Control Register).
@ k_ra8_tscr_bit_tsoe
1 = output enabled to ADC_B.
@ k_ra8_tscr_bit_tsen
1 = sensor enabled, 0 = off.
static volatile r_tsn_ctrl_regs_t * ra8_tsn(void)
Get pointer to the TSN control block (HUM Ch 55.2.1 p 3498).
static volatile const r_tsn_cal_regs_t * ra8_tsn_cal(void)
Get pointer to the factory-calibration block (TSCDR + TSCDR2).
ra8_tsn_cal_t
Calibration constants for the degC conversion.
@ k_ra8_tsn_slope_uv_per_c
Slope in microvolts per degC.
@ k_ra8_tsn_ref_temp_degc
Reference temperature (degC).
TSN factory-calibration block (read-only on hardware).
volatile uint32_t TSCDR2
+0x04 Calibration code at low ref temperature.
volatile uint32_t TSCDR
+0x00 Calibration code at high ref temperature.
TSN control block register window.
volatile uint8_t TSCR
+0x00 Temperature Sensor Control Register.