DesignWare I2C模块的验证
I2C通信协议主要同一块板上芯片间的通信,因此速度不是很高。SCL为时钟线,SDA为数据线。时钟由主设备发送给从设备,数据可以在两设备间互传。
在测试DW_I2C模块时,如果外面都包了一层,在tb中只有两个inout类型的信号,那么验证方法如下:
例化两个完全相同的IIC模块,一个设置为主设备另一个为从设备,那么将两个设备的SCL线相接,SDA线相接即可。但接线的类型必须为tri1,即上拉电阻三态型,否则无法正常工作。具体为
tri1scl_iopad ;
tri1 sda_iopad ;
令iic0做主设备,iic1做从设备,从而验证iic的基本收发功能是否正确。
.iic0_scl_iopad (scl_iopad ),
.iic0_sda_iopad (sda_iopad ),
.iic1_scl_iopad (scl_iopad ),
.iic1_sda_iopad (sda_iopad ),
验证过程中需注意以下几点:
- DW_I2C模块有三个重要的寄存器,偏移0x00的配置寄存器,偏移0x10的DATA_CMD寄存器,偏移0x6C的使能寄存器。
- 此外还有中断相关的状态寄存器和CLEAR寄存器。
- DW_I2C清中断的方式是读CLEAR寄存器。
- 在写配置寄存器之前必须先把DW_I2C使能关掉,否则无法写入。
- DW_I2C可以设置为8位或10位模式寻址
DesignWare I2C模块的验证的更多相关文章
- Asp.net Mvc4 基于Authorize实现的模块权限验证方式
在MVC中,我们可以通过在action或者controller上设置Authorize[Role="xxx"] 的方式来设置用户对action的访问权限.显然,这样并不能满足我们的 ...
- postman简单教程,使用tests模块来验证接口时是否通过
接口测试醉重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要postman 的tests模块来代替 概念: Postman ...
- Python之socketserver模块和验证客户端链接的合法性
验证客户端链接的合法性 分布式系统中实现一个简单的客户端链接认证功能 #_*_coding:utf-8_*_ from socket import * import hmac,os secret_ke ...
- auth模块(登录验证)
settings:'django.contrib.auth.middleware.AuthenticationMiddleware',#这个是认证的中间件,认证成功的话,就可以把这个用户user封装到 ...
- day76 auth模块 用户验证,
概要: form组件回顾: (1) 创建form组件对应的类,比如LoginForm (2) views.login: if get请求: form_obj=LoginForm() return re ...
- 单片机TM4C123学习(七):I2C模块(温度传感器)
I2C(Inter Intergrated Circuit)总线是Philips公司推出的一种用于IC器件之间连接的二线制串行扩展总线,它通过两根信号线(SDA-串行数据线:SCL-串行时钟线)在连接 ...
- SocketServer模块,hmac模块验证client合法性
hmac模块: 1.模块初识: import hmac # h = hmac.new() #括号里要给它连个bytes类型,一个是自定义的secret_key,一个是你想进行加密的bytes # 密文 ...
- 微软企业库5.0 学习之路——第六步、使用Validation模块进行服务器端数据验证
前端时间花了1个多星期的时间写了使用jQuery.Validate进行客户端验证,但是那仅仅是客户端的验证,在开发项目的过程中,客户端的信息永远是不可信的,所以我们还需要在服务器端进行服务器端的验证已 ...
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——下篇
一.独立验证器 我上篇中我将AndCompositeValidator和OrCompositeValidator归为独立验证器,这2个验证器主要是为了第一类验证服务,可以进行多种验证组合在一起进行复杂 ...
随机推荐
- 基于RSA的前后端登陆密码加密JAVA实现(转)
RSA加密算法简介 SA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法愈 ...
- C#多播委托详解
包含多个方法的委托成为多播委托,调用多播委托,可以按照顺序连续调用多个方法,因此,委托的签名就必须返回void;否则,就只能得到委托调用的最好一个方法的结果 1.多播委托可以用运算符"+&q ...
- CentOS服务器开放端口
拿到服务器之后接着之前的通信步骤进行,却发现怎么也连接不上.最后发现是因为服务器端的端口5000没有开放.下面记录一下开放端口的过程. 使用命令 netstat -anp 查看端口开放情况.如果显示命 ...
- vue编写轮播图组件
<template> <div id="slider"> <div class="window" @mouseover=& ...
- input 限制 中文输入
ime-mode:disabled是什么? 解决: 1. ime-mode版本:IE5+专有属性 继承性:无 语法: ime-mode : auto | active | ina ...
- 时间戳转换日期格式 - Vue
日常开发中经常会遇到时间相关的问题,服务端返回的数据都是以时间戳的方式,那么需要将其处理转化为对应的时间格式,具体方式如下: 一.filters 中 formatDate 方法实现 <scrip ...
- lilo.conf - lilo 配置文件
描述 默认情况下,本文件 ( /etc/lilo.conf ) 由引导管理程序 lilo 读取 (参考 lilo(8)). 它看起来可能象这样: boot = /dev/hda delay = 40 ...
- 如何利用scrapy新建爬虫项目
抓取豆瓣top250电影数据,并将数据保存为csv.json和存储到monogo数据库中,目标站点:https://movie.douban.com/top250 一.新建项目 打开cmd命令窗口,输 ...
- Ant Design -- 图片可拖拽效果,图片跟随鼠标移动
Ant Design 图片可拖拽效果,图片跟随鼠标移动,需计算鼠标在图片中与图片左上角的X轴的距离和鼠标在图片中与图片左上角的Y轴的距离. constructor(props) { super(pro ...
- Codeforces 912 质因数折半 方格数学期望
A B #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #d ...