又来翻译C的程序了,哈哈
首先来看一下芯片
CMT2300A是一款数字模拟一体化收发机产品。该产品采用26MHz的晶体提供PLL的参考频率和数字时钟,同时支持OOK和(G)FSK的调制解调模式,并支持Direct和Packet两种数据处理模式。
芯片提供了SPI通讯口,外部的MCU/FPGA可以通过访问寄存器的方式来对芯片的各种功能进行配置,控制主控状态机,并访问FIFO。

SPI 接口时序
芯片是通过4-线的SPI 口与外部进行通信的。低有效的CSB是用于访问寄存器的片选信号。低有效的FCSB
是用于访问FIFO 的片选信号。两者不能同时设为低。SCL 是串口时钟,最快速度可以到5MHz。无论对于芯
片本身,还是外部的MCU,都是在SCLK 的下降沿送出数据,在上升沿采集数据。SDIO 是一个双向的脚,用
于输入和输出数据。地址和数据部分都是从MSB 开始传送。
这些信息都可以在《AN142-CMT2300A 快速上手指南_CN_V0.9.pdf》找到资料包CMT2300A中文文档
配合stm32实例程序CMT2300A-stm32例程服用效果更佳。

需要注意的几个点
1、频偏设置需要大于10K,太小的频偏需要更高质量的晶振;
2、软件上的模拟开关(ENABLE_ANTENNA_SWITCH CMT2300A_EnableantenaSwitch(1/0))和硬件上gpio1、gpio2和txant、rxant的连接关系;
3、天线和所选频率是否匹配;
4、收发数据的操作时间间隔,因为是半双工的,计算收发时间的时候记得算上前导和同步码

关于跳频:
按照正常配置流程前面的存储器配置完成后go_sleep生效配置寄存器,然后进入go_standby,再清中断后重新配置0x18、0x19、0x1A、0x1B、0x1C、0x1D、0x1E、0x1F、0x3D、0x3E、0x3F、0x40、0x41、0x42、0x43、0x44、0x27寄存器 后收发流程就可以以新的频率收发数据了。

其实整个控制的的过程就是按照顺序修改寄存器的过程 ,所以把一部分(0x00-0x5F)初始化的寄存器参数存在了ram中方便调用,你要想一个个的写过去其实也是没问题的。
关于这么多寄存器具体都是那些值对应哪些频率和相关射频参数你需要参阅《AN149-CMT2300A 射频参数配置指南_CN_V0.9.pdf》根据RFPDK软件上配置的参数导出后的数据来确定,配置软件RFPDK可以找供应商或者去官网下载。

资源中分为跳频和未跳频版本,跳频就是每次收发完成后可以指定下一次收发的频点设置,不跳频就一直用一个频点收发。

CMT230A-fpga控制程序

CMT2300A-FPGA控制程序相关推荐

  1. Wiznet W5300 FPGA 控制程序

    Wiznet W5300 FPGA 控制程序 用FPGA实现了最简单的TCP host 和UDP传输,硬件上就需要注意那个25Mhz的时钟,和复位信号,其它外部上下来参考<W5300数据手册V1 ...

  2. FPGA和CY7C68013A的连接以及控制程序(1)

    毕业设计的题目是"基于USB2.0的FPGA和PC之间的通讯".用的是Altera的FPGA,具体型号暂时不清楚,后续会更新.USB控制器用的是CY7C68013A.开发软件是Qu ...

  3. fpga驱动步进电机转动指定角度_PLC对步进电机进行定位控制程序

    三菱PLC和步进电机驱动器的接线图 步进电机是一种将电脉冲转化为角位移的执行机构.当步进驱动器接收到一个脉冲信号时就驱动步进电机按设定的方向转动一个固定的角度(称为"步距角"),其 ...

  4. 基于FPGA的并行计算技术

    1  微处理器与FPGA 微处理器普遍采用冯·诺依曼结构,即存储程序型计算机结构,主要包括存储器和运算器2个子系统.其从存储器读取数据和指令到运算器,运算结果储存到存储器,然后进行下一次读取-运算- ...

  5. 大疆FPGA/芯片开发工程师(A卷)笔试题(含详解)

    大疆芯片开发岗A卷 文章目录 一.单选题 二.多选题 三.填空题 四.问答题 **说明:答案仅供参考,个别可能存在错误.** 一.单选题 1.下列关于多bit数据跨时钟域的处理思路,错误的有 A    ...

  6. 简谈CPU、MCU、FPGA、SoC这些芯片异同之处

    既然已经梳理了两大类(微处理器,专用集成电路)芯片的概念和原理,接下来就了解一下常见的芯片 MCU 日常生活中最常见得到的微处理器系统就是我们身边的微型计算机,也就是个人电脑(Personal Com ...

  7. CPU、MCU、FPGA、SoC……这些芯片究竟是啥?

    目前世界上有两种文明,一种是人类社会组成的的碳基文明,一种是各种芯片组成的硅基文明--因为几乎所有的芯片都是以单晶硅为原料制作的,芯片系统的总数比人类的数量还多出数十上百倍.芯片大家族里面也分各种不同 ...

  8. 用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(1)——硬件平台搭建篇

    用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(1)--硬件平台搭建篇. 用ADI官方源码构建任意Xilinx的ZYNQ平台下的ADI芯片控制程序(2)--软件程序调试篇. ...

  9. ADC0809 VHDL控制程序

    ADC0809 VHDL控制程序 ADC0809简介 Connection Diagrams Block Diagram 模拟信道选择 工作过程 首先输入3位地址,并使ALE=1,将地址存入地址锁存器 ...

最新文章

  1. 如何完全卸载Java
  2. python管理技巧_8个经典的Python列表技巧,让你数据处理更简单!
  3. Spring MVC的DispatcherServlet – Java开发人员应该知道的10件事
  4. 【jQuery】学习整理(一) 认识jQuery
  5. 全局路径规划A star的Matlab实现
  6. android 显示清除缓存
  7. 传统MVP用在项目中是真的方便还是累赘?
  8. 低档显卡无法支持2K显示器
  9. 用华秋DFM处理Allegro PCB文件
  10. 带图像识别的YYS连点器 V2.0
  11. 2016腾讯实习生招聘在线笔试总结(移动开发)
  12. android 8.0手机无法更新版本,微信8.0更新不了是什么情况?安卓微信更新不了新版本怎么办?...
  13. 数据中心机房监控大厅效果图
  14. 混沌工程-为什么推广的如此困难
  15. Qt中使用DirectX
  16. BeautifulSoup使用
  17. 驰骋BPM工作流后台常用接口与前台常用方法
  18. JAVA中break和continue用法
  19. 拼多多-多多进宝 只有goods_id没有goods_sign如何获取商品详情,拼多多goods_sign
  20. 大班科学计算机的发明应用教案,大班科学教案:《中国古代四大发明》

热门文章

  1. Java--面包师与消费者2(发送线程与接收线程)
  2. 升级Big Sur系统后指纹解锁出现问题怎么办
  3. opencv里的Moments成员变量的理解
  4. java基本数据类型 string,String是基本的数据类型吗?
  5. python内置函数 blool()
  6. 分布式系统课程总结 西电计算机学院
  7. Android模拟器没有键盘的解决方法,Android DPAD not enabled in AVD
  8. #单调栈#洛谷 2947 向右看齐
  9. JavaScript高级程序设计(读书笔记)(六)
  10. iMAX B6AC充电的时报错:BATTERY CHECK LOW VOLTAGE