当前位置: 首页 > news >正文

基于FPGA的PS端的Si5340的控制

1、功能
Si5340/41-D可以输出任意频率,当然有范围,100Hz1GHz。外部输入为24M或者4854M的XTAL,VCO在13500~14256Mhz之间,控制接口采用IIC或者SPI。
芯片架构图
在这里插入图片描述
2、IIC控制方式
在这里插入图片描述
在这里插入图片描述
3、直接上控制代码
使用米联客ZU3EG,将控制接口接入到PS的IIC上
在这里插入图片描述
4、控制需要注意的寄存器
输出公式
P0=IN*(M_NUM/M_DEN)/R_REG/(N_NUM/N_DEN)
(1)输入选择
在这里插入图片描述
(2)输出配置
在这里插入图片描述
在这里插入图片描述
(3)Divider
在这里插入图片描述
(4)分数倍频器 M_NUM/M_DEN
在这里插入图片描述
(5)第一级整数分频器R_REG
在这里插入图片描述
(6)分数分频器N_NUM/N_DEN
在这里插入图片描述
5、PS控制
(1)写函数

int si5340_write(XIicPs *I2C_Ptr,u16 register_address, u8 data) {u8 slave = SI5340_SLAVE_ID;u8 page_byte;page_byte = (register_address >> 8);int status;u8 page_select_send_buff[2] = {0x01,page_byte};status = XIicPs_MasterSendPolled(I2C_Ptr, page_select_send_buff, 2, slave);u8 reg_byte;reg_byte = (register_address & 0xFF);u8 write_reg_send_buff[2] = {reg_byte,data};status = XIicPs_MasterSendPolled(I2C_Ptr, write_reg_send_buff, 2, slave);return status;
}

(2)读函数

u8 si5340_read(XIicPs *I2C_Ptr,u16 register_address) {u8 slave = SI5340_SLAVE_ID;u8 page_byte;page_byte = (register_address >> 8);u8 page_select_send_buff[2] = {0x01,page_byte};XIicPs_MasterSendPolled(I2C_Ptr, page_select_send_buff, 2, slave);u8 reg_byte;reg_byte = (register_address & 0xFF);XIicPs_MasterSendPolled(I2C_Ptr, &reg_byte, 1, slave);u8 data;XIicPs_MasterRecvPolled(I2C_Ptr, &data, 1, slave);return data;
}

6、控制结束
控制函数在链接
https://download.csdn.net/download/sinat_39724439/88525099

http://www.lryc.cn/news/229595.html

相关文章:

  • 安装 Lua 的 HTTP 库
  • Redis解决缓存问题
  • 七个合法学习黑客技术的网站,让你从萌新成为大佬
  • 【数据结构】面试OJ题——带环链表(数学推论)
  • PostgreSQL中pg_ctl工具的使用
  • 深入理解Kafka3.6.0的核心概念,搭建与使用
  • 【python】编程题小代码
  • 抖音小程序开发全攻略:如何规划项目和选择合适的开发团队
  • PSP - 蛋白质复合物结构预测 模版配对(Template Pair) 逻辑的特征分析
  • 喜报不断!箱讯平台获评2023年上海市促进现代航运服务业创新示范项目
  • SOME/IP学习笔记3
  • 【ATTCK】ATTCK开源项目Caldera学习笔记
  • 黑窗口连接远程服务
  • 好消息!2023年汉字小达人市级比赛在线模拟题大更新:4个组卷+11个专项,助力孩子更便捷、有效、有趣地备赛
  • SAP 70策略测试简介
  • uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了
  • 分布式服务器架构的优点有哪些?
  • Zephyr-7B论文解析及全量训练、Lora训练
  • 如何使用群晖虚拟机部署本地网页文件实现公网远程访问?
  • 初识RabbitMQ - 安装 - 搭建基础环境
  • C/C++ #运算符、##运算符、变参宏 ...和_ _VA_ARGS_ _
  • 【全网首发】【Python】Python控制parrot ARDrone 2.0无人机
  • DPU国产生态版图又双叒扩大了
  • YOLOv5算法进阶改进(3)— 引入深度可分离卷积C3模块 | 轻量化网络
  • Linux的root用户
  • linux环境安装SVN,以及常用的SVN操作
  • 30天精通Nodejs--第十天:OS
  • C#使用时序数据库 InfluxDB
  • 正则表达式:验证中英文长度限制16个字符(8个中文),支持中文字母数字或者下划线
  • kafka和rocketMq的区别