首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    获取Xilinx FPGA芯片IDCODE的4种方法(支持任何FPGA型号)

    Xilinx任何一款FPGA型号都有一个唯一的IDCODE,用来区分不同的产品,同一型号不同封装的FPGA IDCODE是一致的,可以通过JTAG、ICAP原语、AXI_HWICAP IP核等多种方式读取。常见的应用场景是同一套代码兼容不同的芯片型号,比如现在使用的是XC7A35T,新产品更换成了XC7A100T,两个芯片的封装不同,管脚配置也不同,而这两种硬件需要使用一套C/Verilog代码,这样就可以通过读取IDCODE,来进行自动区分不同的硬件,分别进行不同的处理方式。本文介绍Xilinx所有FPGA芯片型号IDCODE的获取方法,一共4种方式,总有一种适合你,这些方法同样适用于别的厂家的FPGA/MCU,比如Intel,Lattice,Microchip等等。

    02

    流水灯(标准库函数

    这里就已经把GPIOx的类型变为结构体GPIO_TypeDef,地址变为GPIOx_BASE; 比如使用时可以 用GPIOC->ODR这样。 输入模式(上拉、下拉、浮空、模拟) 在输入模式时,施密特触发器打开,输出被禁止,可通过输入数据寄存器 GPIOx_IDR读取 I/O 状态。其中输入模式,可设置为上拉、下拉、浮空和模拟输入四种。上拉和下拉输入很好理解,默认的电平由上拉或者下拉决定。浮空输入的电平是不确定的,完全由外部的输入决定,一般接按键的时候用的是这个模式。模拟输入则用于 ADC 采集。 输出模式(推挽/开漏) 在输出模式中,推挽模式时双 MOS 管以轮流方式工作,输出数据寄存器 GPIOx_ODR可控制 I/O 输出高低电平。开漏模式时,只有 N-MOS 管工作,输出数据寄存器可控制 I/O输出高阻态或低电平。输出速度可配置,有2MHz\10MHz\50MHz的选项。此处的输出速度即 I/O 支持的高低电平状态最高切换频率,支持的频率越高,功耗越大,如果功耗要求不严格,把速度设置成最大即可。在输出模式时施密特触发器是打开的,即输入可用,通过输入数据寄存器 GPIOx_IDR可读取 I/O 的实际状态。 复用功能(推挽/开漏) 复用功能模式中,输出使能,输出速度可配置,可工作在开漏及推挽模式,但是输出信号源于其它外设,输出数据寄存器GPIOx_ODR 无效;输入可用,通过输入数据寄存器可获取 I/O 实际状态,但一般直接用外设的寄存器来获取该数据信号。 通过对 GPIO寄存器写入不同的参数,就可以改变 GPIO的工作模式,再强调一下,要了解具体寄存器时一定要查阅《STM32F10X-中文参考手册》中对应外设的寄存器说明。 在 GPIO外设中,控制端口高低控制寄存器 CRH和 CRL可以配置每个 GPIO 的工作模式和工作的速度,每 4个位控制一个 IO,CRH控制端口的高八位,CRL控制端口的低 8位,具体的看 CRH和 CRL的寄存器描述

    03
    领券