2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块
模块学习
- 1 IIC 模块
- 1.1 模型功能
- 2 eCAN模块
- 2.1 实验结果
- 3 SCI模块
- 3.1 实验结果
- 4 看门狗模块
- 5 eCAP模块
- 5.1 APWM模式
- 5.2 eCAP模式
模型链接: 链接
1 IIC 模块
1.1 模型功能
实现向地址0x50的从机写入数据(100 ,1),然后检测当写入数据发生变化时,就开始从(从机地址为0x50)的空间读取刚刚写入的数据。
可以看到上图中主要分为三大部分:1.全局变量的定义。2.写入数据。3.读取数据。
1.全局变量的定义使用的是Data Store Memory模块,与之对应的还有Data Store Write和Data Store Read模块用来读写开辟的空间,其Data Store Memory中设置如下:
2.写入数据子模块如下图,这里使用的是Enable Subsystem,与Trigger Subsystem的不同在于Enable Subsystem是电平触发而Trigger Subsystem是边沿触发。这里就是将数据和地址进行拼接然后给Transmit模块进行发送。
3.读取数据模块是发送给设备地址,然后do…while循环中等待I2caRegs.I2CFFTX.all标志准备好(TXFFST中会显示接收到数据的长度),然后使能接收模块进行接收数据,之后将数据存储在全局变量A和B中
do…while模块中情形:
2 eCAN模块
eCAN模块分为接收模块和发送模块,接收模块参数如下(目前进入接收中断服务函数执行,还有点问题。):
eCAN接收模块自带一个函数触发执行的接口,在搭建模型中,我接入了一个LED翻转的子模块。即当接收到消息后,LED会进行翻转。
eCAN发送模块参数如下,因为CAN的数据帧最大是8个字节长度,所以一定要注意给他的数据最大是一个无符号64位的数据。
这里构建了八字节发送和四字节发送两中数据发送的端口。这里要注意一下,需要修改Constant模块的输出类型。
之后需要在Configuration Parameters 中对eCAN_A进行相关的设置:
2.1 实验结果
这里使用的是硬件使用的是USB转CAN,软件是CANTest上位机进行的测试,可以看到发送ID为0x01的数据,dsp接收后LED进行翻转。然后观测数据是存在大端/小端存储的现象的这一点需要注意。串口调试助手中也可以清晰的看到数据格式,起始标准+数据长度+ID+数据的格式。
3 SCI模块
中断函数是SCIA的中断服务号:9.1。内部如下
这个实现了SCI接收中断,将发送的数据进行返回。
SCI模块也有接收和发送两个模块:接收模块配置:
发送模块配置:
之后需要在Configuration Parameters 中对SCI_A进行相关的设置:
3.1 实验结果
可以看到发送的数据可以正常返回。
4 看门狗模块
看门狗模块在实际程序中可以有效的防止程序跑飞。在Simulink中需要首先在Configuration Parameters中进行相关的设置,下图中的周期就是看门狗的溢出时间(即若在此时间内没有进行喂狗操作,则会复位整个系统)。
对应的在Simulink库文件中存在,Watchdog模块(用来喂狗)这里采用-1的意思是与仿真步长时间一样。在这里也可以设置喂狗时间,但是一定要注意这个喂狗时间必须小于上述在Target hardware resources中设置的时间,这样才能喂狗正常。
5 eCAP模块
eCAP模式是输入捕获模块,可以用来进行测试信号周期等信息。另外也可以用来作为APWM模式输出PWM波。
如上图,在Configuration Parameters中可以设置eCAP模式和APWM模型的管脚。
5.1 APWM模式
在选项卡中进行相应的设置即可。
实验结果:
5.2 eCAP模式
选项卡进行如下的设置即可,此时模块拥有一个输出接口TS,若按图中所示设置,第一次捕获上升沿,第二次捕获下降沿,第三次捕获上升沿。即就可以算出方波信号的占空比。那么输出直接利用DeMux模块可以分别得到三个时刻的计数器数组,数组乘以TCLK即得到时间。
2837xd代码生成模块学习(3)——IIC、eCAN、SCI、Watchdog、eCAP模块相关推荐
- 2837xd代码生成模块学习(2)——ADC、ePWM模块、Timer0
2837xd代码生成模块学习(2)--ADC.ePWM模块.Timer0 1 ADC模块 2 Timer0中断 3 ePWM模块配置 模型链接:链接 1 ADC模块 模型结构: 以上结构完成了经过AD ...
- Python模块学习:glob 文件路径查找
文章转载自<伯乐在线>原文出处: Darkbull Python模块学习:glob 文件路径查找 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用w ...
- Chapter007-FPGA学习之IIC总线EEPROM读取
IIC总线是嵌入式领域较为重要的器件间通信总线,同样,FPGA也能通过模块的形式实现IIC的功能,其原理和STM32的模拟IIC总线一致,就是控制每个时间点的SCL.SDA总线电平. IIC总线需要对 ...
- 蓝桥杯模块学习17——AT24C02存储器(深夜学习——单片机)
一.硬件电路: 1.引脚功能: (1)A0-A2:决定不同设备的地址码: (2)WP:写保护 二.通讯方式(IIC协议) 通讯方式与PCF8591相同,可参考以下文章: 蓝桥杯模块学习16--PCF8 ...
- 【五一特刊】FPGA零基础学习:IIC协议驱动设计
本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子.信息.通信类专业学生.初入职场小白及打算进阶提升的职 ...
- Maven学习总结(八)——使用Maven构建多模块项目
2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(八)--使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分 ...
- 【从零学习OpenCV 4】了解OpenCV的模块架构
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门 ...
- python 的日志logging模块学习
2019独角兽企业重金招聘Python工程师标准>>> python 的日志logging模块学习 分类: python 2011-08-02 23:51 8338人阅读 评论(0) ...
- Linux 内核安全模块学习总结
Linux安全模块(LSM) LSM是Linux Secrity Module的简称,即linux安全模块.其是一种轻量级通用访 问控制框架,适合于多种访问控制模型在它上面以内核可加载模块的形实现.用 ...
- python中configparser_python中confIgparser模块学习
python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...
最新文章
- 细说进程、应用程序域与上下文之间的关系(一)——进程的概念与作用
- Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介
- es的query及filter
- Java中对象的实例化顺序
- 机器视觉:ransac算法详解
- java环境教程_window下Java环境配置图文教程
- 自旋锁/互斥锁/读写锁/递归锁的区别与联系
- python与c的联系_Python与C的通信#
- php(2)—基础补充
- Qt持久性对象进行序列化
- [译]理解 Node.js 事件驱动架构
- Java基础练习之流程控制(一)
- 笔记︱精准营销解决方式以及营销组合评估
- Climbing Stairs @python
- 商业虚拟专用网络技术五IPSec
- 用360查看本地dns
- vscode全屏背景图
- Android 简单的折叠布局,上滑监听透明度
- iOS SDK开发系列一之Cocoapods原理,Xcode的配置,动态库和静态库介绍
- 三极管简介及其使用注意事项
热门文章
- python增加一列数据_使用Python向DataFrame中指定位置添加一列或多列的方法
- 职称专业技术工作小结 计算机,申报计算机专业中级职称任职来专业技术工作总结(范文).doc...
- 软件需求包括3个不同的层次 业务需求 用户需求和功能需求
- 【蓝桥杯省赛学习题Java】座次问题
- 【优秀毕设V2.0】基于树莓派的OpenCV-Python摄像头人脸追踪及手势识别、网络地址推流及远程控制系统(多功能系统、含演示视频)
- 原生js删除html,javascript删除一个html元素节点的方法
- 蘑菇街2016校园招聘之编程题解析-技术类
- 钉钉企业内微应用对现有系统的免登和消息发送
- 2021年N1叉车司机找解析及N1叉车司机考试试卷
- vue导入音乐_vue-music:添加歌曲到队列add-song.vue