

























PolarFire Family FPGA Security User Guide

每个器件都内置 温度与电压传感器(TVS)。
它会把内核温度和三路电源电压(1.0V / 1.8V / 2.5V)以数字形式上报给 FPGA 逻辑。
TVS 用一个 4 通道 ADC 实现。
4 个通道定义(原文)
TVS 输出一个 16 位编码值,代表电压或温度,同时输出当前是哪个通道。
温度通道的结果会送入系统控制器的比较器:
一旦温度超出用户设定的上限 / 下限,立刻触发报警(tamper alarm)
电压通道的 16 位输出以毫伏(mV)为单位,可按照下表所示进行解码。例如:电压通道输出值 0x385E 对应 1803.75 毫伏。
温度通道的 16 位输出值以开尔文(K)为单位表示,可按照下表所示进行解码。 例如:温度通道输出值 0x133B 对应 307.6875 开尔文。
PL 读取方式:

PS端 读取方式:

typedef struct
{
volatile uint32_t SOFT_RESET;
volatile uint32_t VDETECTOR;
volatile uint32_t TVS_CONTROL;
volatile uint32_t TVS_TEMP_A;
volatile uint32_t TVS_TEMP_B;
volatile uint32_t TVS_TEMP_C;
volatile uint32_t TVS_VOLT_A;
volatile uint32_t TVS_VOLT_B;
volatile uint32_t TVS_VOLT_C;
volatile uint32_t TVS_OUTPUT0;
volatile uint32_t TVS_OUTPUT1;
volatile uint32_t TVS_TRIGGER;
volatile uint32_t TRIM_VDET1P05;
volatile uint32_t TRIM_VDET1P8;
volatile uint32_t TRIM_VDET2P5;
volatile uint32_t TRIM_TVS;
volatile uint32_t TRIM_GDET1P05;
volatile uint32_t RESERVED0;
volatile uint32_t RESERVED1;
volatile uint32_t RESERVED2;
volatile uint32_t SERVICES_CR;
volatile uint32_t SERVICES_SR;
volatile uint32_t USER_DETECTOR_SR;
volatile uint32_t USER_DETECTOR_CR;
volatile uint32_t MSS_SPI_CR; // 对应地址 0x37020100
} SCBCTRL_TypeDef;
#define MSS_SCBCTRL ((SCBCTRL_TypeDef*) (0x37020000UL))
PolarFire FPGA and PolarFire SoC FPGA Programming User Guide
volatile uint32_t MSS_SPI_CR; // 对应地址 0x37020100 这里正好对应 QSPI base address as 0x37020100
寄存器 对应文档 :
https://ww1.microchip.com/downloads/aemDocuments/documents/FPGA/ProductDocuments/SupportingCollateral/PolarFireSoC_Register_Map.zip
PolarFireSoC_Register_Map/PF_SoC_RegMap/MPFS/pfsoc_control_scb.htm
控制寄存器: 4个通道 使能控制 ,速率控制 ,单位 32 us

后面这三个寄存器 应该是温度阈值,怎么用暂时未知

电压阈值


Accessing TVS (Temperature Voltage Sensor) Registers in PFSoC

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。