当前位置: 首页 > 传感测量产品 > 工业传感器 > 温度传感器

类型分类:
科普知识
数据分类:
温度传感器

i2c温度传感器:IIC实现温度传感器(TMP1XX,LM75X)测量与显示

发布日期:2022-10-09 点击率:1368


i2c温度传感器:IIC实现温度传感器(TMP1XX,LM75X)测量与显示

IIC调试学习

由于项目要用到温度传感器,所以就挑选了TI的一款温度传感器Tmp102,这款温度传感器和TI的很多温度传感器都类似,比如Tmp112,lm75,lm75a等。这款温度传感器所用到的通信方式为IIC,之前仅仅了解过IIC并没有进行实际的操作,借着这个机会进行实际的IIC运用和学习。
其中IIC的基础知识点就不详细说明了,想要进行IIC的编程和学习,首先学习的应该是他的基本知识,只有知道了他的基础知识才能够进行有条不紊的应用。

我用的单片机是STM32F103ZET6,IIC为软件的形式是实现

IIC协议软件实现
产生开始信号

2.产生停止信号

3.主机等待从机应答

4.主机不产生应答

5.主机产生应答

6.IIC发送一个字节

6.IIC读一个字节

温度传感器实现
1.温度传感器初始化

2.温度传感器读取一个字节

3.温度传感器读取一个字

4.写入一个字节

5.写入一个字

主函数

实际测试效果

图片:

代码下载
链接: //download.csdn.net/download/little_ox/.
i2c温度传感器:IIC实现温度传感器(TMP1XX,LM75X)测量与显示  第1张

i2c温度传感器:linux下的I2C温度传感器应用

需求:
? 读嵌入式温度传感器的值。

已知条件:
*温度传感器已经在主板上焊好了。
*温度传感器型号为lm75
*linux自带驱动,在linux-2.6.20.21/drivers/hwmon/lm75.c
*温度传感器的电路

?

问题与解答:
*linux自带的驱动怎么用的?

看lm75.c的代码,发现此温度传感器用的是I2C的总线。
代码中看到i2c驱动的接口定义如下,和以前做过的字符型驱动的接口不一样。
static struct i2c_driver lm75_driver = {
.driver = {
 .name = "lm75",
},
.id  = I2C_DRIVERID_LM75,
.attach_adapter = lm75_attach_adapter,
.detach_client = lm75_detach_client,
};

在linux Device Driver这本书中搜,在此书中无介绍。

?

讲得还不错。尤其是后者对路。I2C在读主板上的传感器的应用上应用比较多,但它是在比较新的版本的LINUX内核版本中才加进来的,难怪LDD这本书中没有讲了。

再看上面数据结构中的回调函数,具体干什么就比较清楚了。根据函数内容得知,驱动在加载的时候会自动检测I2C总线上的设备,因此会自动发现温度传感器。lm75_update_device()是对温度传感器进行轮询读数时用的函数。

根据文章指引,看设备的/sys/bus/i2c/。下面已经有了lm75传感器的数据,直接读是有数据的,而且数据会变化,如下:

root:~# cat /sys/bus/i2c/devices/0-0048/temp1_input
-

*读数为负。什么样的读数才是正常的?
在驱动代码里增加了调试信息,打印出传感器上读的寄存器的值,和文件系统上读出的不一样。
看 linux-2.6.20.21/documentation/hwmon/lm75,了解到lm75是一个工业标准。所以linux里的lm75驱动是支持多种温度传感器的。

看了一下板子上的芯片,是lm75A.在网上下载了一个datasheet,上面显示一共9-bit来控制读数。头位为正负,后面8-bit为值。
在驱动代码里添加调试信息,只打印寄存器值的后8-bit,放到温度实验箱里测试的结果看起来满合理的。
@drivers/base/sys.c
static ssize_t
sysdev_show(struct kobject * kobj, struct attribute * attr, char * buffer)
{
struct sys_device * sysdev = to_sysdev(kobj);
struct sysdev_attribute * sysdev_attr = to_sysdev_attr(attr);
if (sysdev_attr->show)
return sysdev_attr->show(sysdev, buffer);
return -EIO;
}

?

?static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp_input, NULL);
?

?

struct device_attribute {
struct attribute attr;
ssize_t (*show)(struct device *dev, struct device_attribute *attr,
char *buf);
ssize_t (*store)(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count);
};
#define show(value) /
static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) /
{ /
struct lm75_data *data = lm75_update_device(dev); /
return sprintf(buf, "%d/n", LM75_TEMP_FROM_REG(data->value)); /
  ///sys/bus/i2c/devices/0-0048/temp1_input里面的东西就是通过上面打印到buffer中去的
}
show(temp_input);

?

? show_temp_input); //@ show_##value()?

lm75_update_device(dev);?

然后把内核的lm75.h的代码修正(只读后面8个比特并根据大小判断正负),测试通过。

?

?

?

i2c温度传感器:开发板温度传感器

上一篇教程挖了一个NEXYS4 开发板中MicroSD的天坑,发现难度过高,打算放到之后再完成,这一篇来电不这么重口味的温度传感器配置。在NEXYS 4开发板上的温度传感器使用的是I2C接口,这个接口很常见,可以写一个模块留着以后使用

FPGA基础入门【15】开发板I2C温度传感器配置
开发板温度传感器I2C接口简介ADT7420简介寄存器
 逻辑设计I2C控制模块UART串口控制模块顶层逻辑
 模拟仿真Testbench仿真脚本仿真结果
 编译测试结果
 总结

开发板温度传感器
NEXYS 4文档中写着它使用的温度传感器名字是Analog Device ADT7420,提供16位精度,一般精确到0.25摄氏度,用I2C接口和FPGA连接如下:

SCL和SDA是I2C接口,用来和FPGA连接。可以看到它只有两根线,非常精简,一般用来和不太复杂的外围设备连接。并且它还有地址识别,因此1个master设备可以同时和多个slave设备相连。剩下两条线表示温度溢出(过高或者过低),以及温度高到有危险的程度。

ADT7420的文档链接:ADT7420

I2C接口简介
从ADT7420的文档中读到,它的时钟需求是400kHz以下,我们采用200kHz,需要把系统时钟100MHz减慢500倍

和这款芯片相关的I2C的时序如下:
写单字节数据

写双字节数据:

从配置寄存器中读取数据:

读取温度数据:

在SCL为高电平时,拉低SDA是开始信号在SCL为高电平时,拉高SDA是结束信号Master设备在读回信号的最后传出低电平表示,再来一个,高电平表示,够了够了不用再传了
从这个时序图看出,I2C读写控制参数有四个:读写控制、寄存器地址、读写数据长度、写的8位数据(每完成一次输出就更新一次)

ADT7420简介
网上很多Arduino用的温度传感器模块用的就是这款芯片,引脚如下:

其中SCL和SDA是和FPGA相连的I2C接口,CT和INT是临界温度警告,VDD和GND是电源和接地,A0和A1是低地址位,在芯片较少时可以直接通过连线来同时连接几个芯片。

NEXYS 4文档中说要制定slave地址0x4B来和传感器通信,通过前面的I2C接口介绍可以看出,开发板把A0和A1两个引脚都拉高了。

ADT7420在上电后会自动进入简单温度传感器模式,不需要初始化配置。设备地址寄存器一开始被指向温度数据的高位MSB,因此不用制定地址读出来的第一个字节就是温度的MSB,第二个字节是LSB,组成需要的16位结果。因此上面的时序图中读取温度的两步,如果一开始没有做别的操作,可以把写地址省略。把16位结果右移3位,再除以16,就可以得到摄氏温度

寄存器
ADT7420的寄存器全家福及其默认值如下:

这里我们只关注温度高低位、状态和配置四个寄存器

温度高低位:

状态寄存器,复位后要先等这个寄存器的最高位变成0:

配置寄存器:

逻辑设计
首先需要一个I2C的控制逻辑模块I2C_transmitter.v,然后就可以配置一个串口控制器,随时读取寄存器与数据。这里我们把之前做过的串口模块集成一下,加个FIFO以便之后再使用

这次的代码比较长,要把之前做过的一些东西做个综合

I2C控制模块
从前面的I2C时序逻辑可以分析,定义一段I2C数据传输参数有这么几个:寄存器地址、读写选择、读写长度、需要写入的8位数据。

新建一个代码文件I2C_transmitter.v,代码如下:

顶层接口配置,前面分析过I2C必要参数,还需要一些其他的控制信号

设备地址dev_addr,这个应该连到固定值0x4B读写控制rdh_wrl,高电平代表读,低电平代表写寄存器地址reg_addr操作准备信号ready,它的上升沿代表数据准备完成,可以进行I2C传输输出8位数据dout传输长度dout_length输出确认dout_ack,表示一个byte已经输出完成,可以更新到下一个byte输入8位数据din输入准备信号din_valid,每当此信号升高,就有一个byte输入在din接口准备好

生成I2C接口需要的100kHz时钟,用I2C_SCL_en来使能控制

实时监测SCL的上升沿和下降沿,由于SDA是双向的信号,读的时候用上升沿,写的时候用下降沿,经常需要切换

探测ready信号的上升沿以开始I2C传输

状态机配置

侦测到ready上升沿,在SCL为高的情况下拉低SDA表示开始(Start by master),这也就是SCL生成器在复位情况下为高的原因

输出设备地址0x4B,带上最低位为1表示写入,经历9个时钟周期,最后一个上升沿观察设备是否传回一个ack信号

写入寄存器地址,根据读写控制信号进入读流程或者写流程

当需要读数据时,需要再次进行Start by master,拉高SDA后,在SCL的高电平时拉低SDA

读流程还需要再写一次设备地址,并把最后一位改成高电平以表示读取

写操作,将一个byte输出给设备,获得ack信号后计算是否已经输出到指定长度,如果已经达到则进入结束流程

读操作,从设备读取一个byte后,如果还没有读取足够数据,则在第九个时钟周期输出一个低电平作为ack信号,否则输出一个高电平作为no ack信号,表示master已经读取了足够的数据

结尾操作,关闭SCL生成器,在SCL的高电平拉高SDA(Stop by master)

UART串口控制模块
看过前面教程的人可能会觉得奇怪,为什么还需要写UART串口控制的模块,明明已经有它的逻辑代码了。问题是ADT7420的I2C接口(包括不少其他芯片的I2C)使用的时钟是400kHz以下,一般比UART串口用的波特率要高很多,如果继续用之前的简单逻辑会出现串口数据还没送完,新的数据就已经进来的情况。

这里我们改进一下串口逻辑,添加一个同步先入先出队列(First in first out, FIFO)。FIFO在FPGA设计中非常常见,通过调用少量存储器平衡写入和读出两端的速度差。同步是指读写用的是同一个时钟,读写使能可以在不同的时间段激活,对于高速时钟控制低速接口很有用。异步FIFO是用在读写用的是不同时钟的情况下(不是读写使能信号),比起同步FIFO,它的难点在于跨越了时钟域,这部分有很多细节,以后再写。

同步FIFO的代码syn_fifo.v如下:

顶层接口定义,这里我们用了模块定义参数,在名称后面加上井号#与一对括号,在其中定义一些与该模块有关的参数,比如FIFO的数据宽度和地址长度,这样在调用相似模块时不用写多个模块,只需要在调用时候配置不同参数即可

接口比较简单,rd_en读使能的高电平时读取一个FIFO数据到data_out,wr_en写使能的高电平时写一个data_in到FIFO中,empty和full分表代表FIFO空了或者满了,避免出现错误

最大深度由地址宽度决定,定义RAM的读指针和写指针(可循环),加上一个FIFO有效计数器,用来观察FIFO是空还是满。

这里data_ram是RAM的核心,定义比较特殊,前面的宽度代表每个地址对应的数据宽度,后面的是定义它的深度

定义一个RAM,通过操控读写的地址来读写数据

有了FIFO的代码,我们可以改进之前的串口控制代码为UART_transmitter.v:

顶层定义,除了UART必要的接口外,加上dout、din以及他们的准备信号。这些信号都是十六进制数,每4位都是一位数

加入前面写好的FIFO代码,调用时参数的配置可以参考下面的代码

和之前差不多的串口发送端代码,去除了接收回传,这部分由调用串口模块的顶层做

和之前差不多的串口接收逻辑,加入了转换成16进制数的逻辑,每次输出一个4位的十六进制数

顶层逻辑
做好两个接口的准备工作,开始写顶层的temperature.v:

顶层定义,时钟复位和LED,I2C接口以及UART串口接口

将ADT7420另外两个引脚直接连接到LED上

调用前面写好的I2C控制器

调用前面写好的UART串口控制模块

根据串口接收到的指令,进行不同的读写操作

0读取温度数据,传回四个byte1读取ADT7420的状态寄存器,期望是0x002读取温度上限高位寄存器3把温度上限设置为28摄氏度4把温度上限改回默认的64摄氏度
另外把串口接收到的数据重传回PC,用来显示自己打入的命令,由于收到的是4位,而输出是8位,在高位加4位0

模拟仿真
和之前一样,要写一个Testbench和一个仿真脚本来仿真

Testbench
代码tb_temperature如下:

复位以后,参考I2C的时序,接收或者传回生成的数据,使用指令0,读取温度数据

仿真脚本
写脚本sim.do如下:

调用前面全部的代码,打开ModelSim后转到脚本在的路径,使用命令do sim.do即可开始仿真。

仿真时可以添加想要的信号到waveform窗口中观察,然后可以保存为wave.do,这样下次可以通过调用它来加入一样的信号,节省一个一个加入的时间,这时你可以把sim.do中被#注释掉的那行去注释

仿真结果
调用仿真脚本得到的结果如下:

和前面介绍的I2C时序比较可以看出是符合预期的,当中的一些蓝色和红色是由于Testbench毕竟不是真实芯片,无法返回完美的确认信号ack,之后可以用ChipScope来观察I2C信号

编译测试
新建一个叫temperature的project,配置为开发板NEXYS4。添加代码文件temperature.v、I2C_transmitter.v、UART_transmitter.v和syn_fifo.v

下一步加入约束constraint文件temperature.xdc,同样这是用标准模板取自己需要部分修改出来的(NEXYS 4 DDR Master XDC):

到这里可以点击 Run Synthesis做综合,几分钟完成后用Set Up Debug配置ChipScope,加入和I2C有关的接口SCL和SDA(进出两个口),并设置长度为:

下面就可以Run Implementation和Generate Bitstream生成bitstream了。

和前面的教程一样,USB线连接NEXYS4板子,开启Hardware Manager,然后auto连接上板子,Program Device烧写进程序,注意Debug probes file有对应的ltx文件。

结果
打开Putty串口接口,具体配置可以参考教程系列11,分别打入几个指令后收到结果如下:

指令00读取温度,返回0x0DC8,根据温度的计算方式,右移3位后除以16,得到温度27.5625摄氏度,当然精度没有这么高,只是计算的结果指令01读取状态寄存器,如同预料的返回0x00指令02读取温度上限的高位,返回了默认值0x20,表示64摄氏度指令03写温度上限的高位为0x0E,表示28摄氏度,不会返回数据再用指令02读取温度上限高位,返回的是刚刚写入的0x0E指令04把温度上限的高位写回0x20再用指令02,读回的是0x20
调用ChipScope,设置trigger为SCL的下降沿,分别在putty打入指令0和3显示如下:

这个波形图基本展示了I2C读和写的时序图,就算不是使用FPGA,应该也可以参考这两张图。

总结
没能填上上期说的SD卡的坑,那部分要放到最后。下一篇要介绍板载的加速度传感器accelerometer ADXL362
i2c温度传感器:IIC实现温度传感器(TMP1XX,LM75X)测量与显示  第2张

i2c温度传感器:数字温度传感器系统接口:SPI、I2C 、SMBus如何选

相关推荐

罗姆公司的ML5238电压采集芯片问题

发表于 2018-04-09 16:58
?
66次阅读

温度传感器I2C的总线应用及设计

需求:读嵌入式温度传感器的值。已知条件:*温度传感器已经在主板上焊好了。*温度传感器型号为lm75*...

发表于 2018-04-07 07:11
?
1147次阅读

基于Proteus的SPI接口的设计与实现方案资...

基于Proteus的SPI接口的设计与实现 现在,人们生活中的每个角落都有 嵌入式 设备的存在,比如...

发表于 2018-04-05 09:31
?
61次阅读

at24c04中文资料汇总(at24c04引脚图...

本文主要介绍了at24c04中文资料汇总(at24c04引脚图及功能_工作原理及电路图)。AT24C...

发表于 2018-04-04 16:26
?
107次阅读

详细讲解RT-Thread I2C设备驱动框架及...

本应用笔记以驱动I2C接口的6轴传感器MPU6050为例,说明了如何使用I2C设备驱动接口开发应用程...

发表于 2018-03-29 10:52
?
203次阅读

新手关于I2C,master转slave的一些问题

发表于 2018-03-26 10:54
?
199次阅读

浅淡CAN总线,CAN总线网络拓扑结构

CAN 总线网络是一种真正的多主机网络,在总线处于空闲状态时,任何一个节点单元都可以申请成为主机,向...

发表于 2018-03-22 11:13
?
504次阅读

基于I2C接口与上级无线传感器网络通信的环境监测...

本项目开发了一个使用 Xilinx 公司的 SPARTAN3A-DSP FPGA 作为目标开发板,采...

发表于 2018-03-21 16:46
?
267次阅读

浅谈I2C总线,I2C接口和SPI接口的作用相同

SDA 和 SCL 都是双向的。SPI 总线有两根单独的线,分别用于两个方向的通信,而 I2C 总线...

发表于 2018-03-21 10:24
?
2572次阅读

根据时钟极性和时钟相位的不同,SPI有四个工作模...

串行外围设备接口是由 Motorola 公司开发的,用来在微控制器和外围设备芯片之间提供一个低成本、...

发表于 2018-03-20 11:43
?
514次阅读

单片机与数字温度接口及程序设计分析

数字式温度传感器(简称SWC),又称集成数字脉冲式感温探头,是一种新型的三端温度变送器件。该器件采用...

发表于 2018-03-17 11:40
?
472次阅读

串行SPI Nor Flash启动流程

关于外部Flash的代码安全问题和代码在外部执行对整个系统性能的影响,RT105x的加密启动(HA...

发表于 2018-03-16 09:32
?
650次阅读

模拟SPI数据传输的读写程序(时钟芯片DS130...

在时钟的上升沿是写入数据,是从低位开始写入。还有一个需要注意的地方是写字节和读字节连接处,从图中可以...

发表于 2018-03-14 14:46
?
231次阅读

代码分析:九轴姿态传感器是无人机中必备重要器件。

SPI连接的是型号为BMI160的六轴加速度计和陀螺仪传感器。具体是如何通过寄存器的读取加速度值的我...

发表于 2018-03-12 11:29
?
630次阅读

教你分清楚SPI、I2C、UART、I2S、GP...

一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性...

发表于 2018-03-12 08:53
?
692次阅读

SPI通信总线的原理及工作过程简单分析

SPI, 串行外围设备接口。高速的,全双工的,同步通信总线。有四个引脚:SDI(数据输入),SDO(...

发表于 2018-03-08 09:39
?
709次阅读

高通gpio模拟i2c

发表于 2018-03-07 09:11
?
467次阅读

CAN总线,I2C,USB等的FPGA实现源码

发表于 2018-02-27 12:53
?
315次阅读

深度解读SPI特点、机制和驱动以及其举例

SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备...

发表于 2018-02-19 09:58
?
1712次阅读

MSP430f249使用SPI通信遇到问题

发表于 2018-02-18 15:12
?
890次阅读

DSP虚拟I2C软件包的应用设计案例

TMS320C2XX系列产品,基本包括4根通用I/O口线I/O0~I/O4(由于XF仅能作为输入口线...

发表于 2018-02-12 16:35
?
271次阅读

基于S3C2410的串行外围设备接口SPI实现数...

串行外围设备 接口 SPI (serial peripheral interface)总线技术是Mo...

发表于 2018-02-07 09:16
?
150次阅读

分享一个用计算机直接通过串口驱动DS1621测温...

今天发现的这个实验作品非常经典,用计算机直接通过串口驱动DS1621测温,整个测温模块精简之至,没有...

发表于 2018-02-05 16:55
?
1268次阅读

如何使用单片机I/O口模拟I2C信号读取SHT30温湿度。

发表于 2018-02-05 09:02
?
794次阅读

SPI接口的概念,数据传输, 时钟极性、时钟相位...

SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司...

发表于 2018-02-05 08:49
?
5138次阅读

spi读取sd卡数据例程

SD 卡有两个可选的通讯协议:SD 模式和 SPI模式 SD 模式是SD 卡标准的读写方式,但是在选...

发表于 2018-02-02 13:55
?
105次阅读

SPI的MRST和SDO怎么接

发表于 2018-02-02 10:47
?
291次阅读

i2s和i2c的区别

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总...

发表于 2018-01-29 16:47
?
620次阅读

数字温度传感器全方面分析介绍

数字温度传感器有两种:本地或远程温度传感器,它们均采用某种方法强制两个成比例的电流通过一个连接成二极...

发表于 2018-01-22 14:37
?
290次阅读

nrf24l01+和stm32的spi通讯需要设置nrf24l01+的spi波特率吗

发表于 2018-01-21 17:16
?
600次阅读

I2C总线主机和从机之间加隔离开关后,不能通讯(从机无应答)

发表于 2018-01-20 08:07
?
609次阅读

实现智能家电控制系统设计方案的几大关键点

计算机网络、通信和控制技术的发展使家电的集中和远程智能控制成为可能,将信息技术和家电技术相融合,在更...

发表于 2018-01-18 07:37
?
1949次阅读

SPI-WIFI模块让普通单片机实现“有效速度”过兆字节每秒的高速传输不再是梦想

发表于 2018-01-17 12:51
?
411次阅读

深度解析IO模拟时序(SPI)的注意事项

有硬件I2C、SPI时尽量用硬件操作,省去IO模拟繁琐的时序调试。但在内部资源不够时就要用IO模拟总...

发表于 2018-01-17 09:37
?
1359次阅读

STM32通过I2C与BMP280通信

BMP280对温度和气压的测量是通过一堆补偿数据然后根据自己的算法算出来的,要注意这些数据是什么类型...

发表于 2018-01-12 13:14
?
898次阅读

揭开Zynq Z-7000从SPI接口挂载的fl...

今天给各位介绍另外一款Xilinx公司芯片的产品Zynq Z-7000 SoC,我们一起来揭开它从S...

发表于 2018-01-10 10:37
?
1516次阅读

详细剖析I2C和SPI通信协议的区别

IIC和SPI都对低速设备通信提供了很好的支持,不过,SPI适合数据流应用,而IIC更适合“字节设备...

发表于 2018-01-03 11:40
?
1246次阅读

spi从机程序设计_spi从机程序代码详细介绍

本文介绍STM32F407的SPI主从机通信程序和基于计数器的spi从机程序这两种spi从机程序

发表于 2017-12-29 15:05
?
336次阅读

I2C总线的特点、控制技术与传输分析

I2C总线主要在微处理器的控制之下,因此通常称微处理器是I2C总线的主机。习惯上总称受控设备及功能电...

发表于 2017-12-25 15:17
?
944次阅读

嵌入式工程师详解常用的IIC和SPI总线协议概念

IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integra...

发表于 2017-12-22 20:15
?
162次阅读

深度解析IIC和SPI总线协议的区别与应用场景

IIC vs SPI: 哪位是赢家?我们来对比一下IIC 和 SPI的一些关键点:
第一,总线拓扑...

发表于 2017-12-22 16:48
?
3697次阅读

详细讲解重用外设驱动代码_SPI_NOR_Fla...

第六章为重用外设驱动代码,本文内容为6.2 SPI NOR Flash 存储器。

发表于 2017-12-21 07:59
?
2668次阅读

基于Linux驱动的I2C总线的深度分析

I2C总线的硬件特性:两线式串行总线.用于连接CPU和外设之间的通信接口需要2根信号线,时钟控制线S...

发表于 2017-12-18 16:31
?
719次阅读

iic和spi有什么区别

IIC的数据输入输出用的是一根线,SPI则分为data IN和 data OUT。由于这个原因,采用...

发表于 2017-12-12 11:51
?
461次阅读

I2C和SPI总线协议详解

一种只使用二根线接连所有外围芯片的总线协议。最初的标准定义总线速度为100kbps。经历几次修订,主...

发表于 2017-12-12 11:08
?
1319次阅读

mpu6050对应i2c地址是什么_如何读取数据

本文主要介绍了mpu6050对应i2c地址是什么,并通过stm32的硬件读取mpu6050的数据。M...

发表于 2017-12-11 16:04
?
963次阅读

spi与i2c总线协议的对比分析

现今,在低端数字通信应用领域,我们随处可见I2C (Inter-Integrated Circuit...

发表于 2017-12-06 11:57
?
222次阅读

spi与i2c总线有什么区别

SPI是串行外设接口(Serial Peripheral Interface)的缩写。I2C总线是一...

发表于 2017-12-06 11:39
?
323次阅读

LTC3675 非常适用于要求用单节锂离子电池提...

LTC3675 是一个节省空间的单芯片电源解决方案,适用于靠单节锂离子电池运行的多轨应用。其 4mm...

发表于 2017-12-04 01:13
?
154次阅读

软件模拟SPI接口的实现方法过程详解

由于SPI总线接口只占用微处理器四个I/O口线,采用SPI总线接口可以简化电路没计,节省很多常规电路...

发表于 2017-12-01 11:13
?
1189次阅读

u-boot i2c的调试

有许多外设芯片都通过i2c总线接到主芯片上,主芯片通过i2c发命令去初始化外设芯片。

发表于 2017-11-27 15:00
?
163次阅读

Stm32的io口模拟spi例程分析

SPCE061A的I/O端口,对某一位的设定包括以下3个基本项:数据向量Data、属性向量Attri...

发表于 2017-11-24 17:45
?
491次阅读

基于FPGA的SPI串行方式自动发送技术设计

SPI接口应用十分广泛,在很多情况下,人们会用软件模拟的方法来产生SPI时序或是采用带SPI功能模块...

发表于 2017-11-24 15:32
?
310次阅读

Arduino主从机之间的I2C通讯实验

I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC...

发表于 2017-11-23 16:20
?
681次阅读

一种可复用的高速SPI总线的设计

随着计算机处理能力及存储规模的迅速增长,这个问题表现得更加突出。为此人们采取了各种软、硬件的方法,不...

发表于 2017-11-23 15:40
?
244次阅读

一文读懂i2c的总线信号传输

总线空闲状态   I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此...

发表于 2017-11-21 15:09
?
2321次阅读

全面剖析i2c总线的原理与控制技术

IIC总线,是INTER-IC串行总线的缩写。INTER-IC原文大意是用于相互作用的集成电路,这种...

发表于 2017-11-20 10:54
?
1240次阅读

EMIO方式模拟I2C时序对ADV7511进行读...

创建硬件工程,很简单,PS接出两个EMIO和一个74.25M时钟

发表于 2017-11-18 13:50
?
218次阅读

FPGA多重加载技术的设计模块及其在硬件平台上的...

Xilinx 7系列FPGA是Xilinx公司最新推出的一个芯片系列,Kintex7是该系列芯片中...

发表于 2017-11-18 04:41
?
253次阅读

在ZedBoard下SPI接口和ARM处理器端实...

该文介绍了ZedBoard平台下可编程逻辑端SPI接口和ARM处理器端以太网远端传输的设计。结合实例...

发表于 2017-11-17 12:12
?
176次阅读

I2C标准协议的时序时钟问题详解

对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应...

发表于 2017-11-15 15:08
?
286次阅读

对三种总线SPI、UART、I2C分析理解

SPI(Serial Peripheral Interface,串行外设接口) SPI是一种高速、全...

发表于 2017-11-15 12:32
?
202次阅读

数字锁相环ADF4351原理详解与合成频率源的设...

以数字锁相环ADF4351和Xilinx公司的Spartan-6系FPGA为主要元件设计了一个合成频...

发表于 2017-11-15 11:27
?
431次阅读

PIC单片机之I2C(从模式)详解

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总...

发表于 2017-11-14 17:24
?
562次阅读

i2c时序图的详细讲解

开始信号:主机+从设备地址+写命令,从机应答,应答成功,表示有这个设备,然后主机+设备内部寄存器地址...

发表于 2017-11-14 16:59
?
5186次阅读

ad7190配置GPIO模拟SPI程序源码

 AD7190是一款适合高精密测量应用的低噪声完整模拟前端。它集成一个低噪声、24位Σ-Δ型模数转换...

发表于 2017-11-14 14:14
?
347次阅读

数字通信协议中,什么是I2C和SPI总线协议?

现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit...

发表于 2017-11-12 09:28
?
2434次阅读

教你如何有效解决I2C配置顺序引发无法收发数据问...

在参考Cube软件包中I2C例程后, 根据应用需要新增了一路I2C接口,结果新增I2C无法收发数据。...

发表于 2017-11-12 08:55
?
3791次阅读

spi是什么spi检测是什么意思

SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种...

发表于 2017-11-09 10:01
?
812次阅读

spi与i2c区别

 我相信如果你是从事的是嵌入式开发,一定会用到这三种通信协议,串口的话因为和波特率有关,所以一般的C...

发表于 2017-11-09 09:58
?
488次阅读

简述spi与sci区别

SCI串行通信接口(serial communication interface)也是由Motoro...

发表于 2017-11-08 14:46
?
251次阅读

ds18b20中文资料详解

DS18B20是常用的数字温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B...

发表于 2017-11-06 16:15
?
3630次阅读

终于看懂了iic与spi这两种通讯协议了

IIC vs SPI现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrat...

发表于 2017-11-02 11:06
?
5729次阅读

SPI总线有四种工作方式,哪几种最为广泛

SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和S...

发表于 2017-10-25 06:44
?
5146次阅读

stc12c5a60s2_spi程序

单片机是STC12C5A60S2,用的是单片机的硬件SPI驱动的nRF24L01+,这个是从机(接收...

发表于 2017-10-20 18:08
?
310次阅读

在SPI总线中常用的6N137和ADuM315x...

SPI即串行外围设备接口,是一种高速的,全双工,同步的通信总线,在强干扰环境中,或是高的性能要求下,...

发表于 2017-08-25 17:14
?
992次阅读

教你LPC双核套件固件库SPI的用法

最近进度有点慢。现在把我SPI这部分分享下吧。这次我使用SPI0和I2C2这两个模块,I2C2负责采...

发表于 2017-08-25 15:58
?
238次阅读

如何满足复杂系统的高性能时序需求

时钟设备设计使用 I2C 可编程小数锁相环 (PLL),可满足高性能时序需求,这样可以产生零 PPM...

发表于 2017-08-23 17:39
?
234次阅读

数字电位器串口设计与仿真

数字电位器是利用微电子技术制成的集成电路,它是依靠电阻阵列和多路模拟开关的组合完成阻值的变化。它没有...

发表于 2017-06-30 09:42
?
283次阅读

如何判断芯片程序不正常的原因

最近有用户反映一个非常蹊跷的现象,在烧录文件时,编程器全过程提示PASS,但是芯片贴板后产品无法正常...

发表于 2017-06-14 17:09
?
662次阅读

SPI、I2C、UART三种串行总线协议的区别和...

SPI接口在Master控制下产生的从器件使能信号和时钟信号,两个双向移位寄存器按位传输进行数据交换...

发表于 2017-05-08 14:40
?
9308次阅读

在Linux环境下I2C总线EEPROM驱动程序...

I2C (Inter-Integrated Circuit1总线是一种由Philips公司开发的2线...

发表于 2017-04-27 15:30
?
621次阅读

带SPI接口、尺寸最小的1Mb FRAM器件诞生...

富士通半导体(上海)有限公司日前宣布,成功推出拥有1 Mb内存的FRAM产品---MB85RS1MT...

发表于 2017-03-28 17:52
?
483次阅读

用示波器直接破解30种通信协议

数字示波器的发展极大的降低了低速总线调试的难度,无论是IIC、SPI还是CAN、LIN等,示波器都可...

发表于 2017-03-21 12:04
?
1305次阅读

7000 芯片Linux下的SPI接口与驱动配置

本文将介绍如何利用Vivado和petalinux开发Zynq7000系列芯片的SPI外设接口。

发表于 2017-03-20 14:00
?
538次阅读

教你的安卓系统DragonBoard 410c也...

内核的定制。首先我们需要对内核进行重新配置,从而添加我们的设备驱动,重新编译内核,在96board官...

发表于 2017-03-01 10:47
?
405次阅读

单片机SPI通信接口

SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 ...

发表于 2016-12-26 15:46
?
2103次阅读

听说,电子工程师经常被“狗”咬!

汇总看门狗问题的解决办法,希望能够合理设计仿真、编程接口,以及合理设计应用程序,规避看门狗对编程、仿...

发表于 2016-09-08 09:56
?
620次阅读

工程师很有必要了解的常用接口大全

接口就是一种间接手段,所以相比起直接沟通,会引致些额外负担。在电子产品中有硬件接口和软件接口之分:电...

发表于 2016-08-15 09:50
?
3909次阅读

CAN、USART、SPI、SCI等常见总线技术...

随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色...

发表于 2016-07-08 14:46
?
3051次阅读

工程师经验分享:采用硬件I2C读取E2PROM

在I2C主设备进行读写操作的过程中。主设备在开始信号后控制SCL产生8个时钟脉冲,然后拉低SCL信号...

发表于 2016-06-16 17:06
?
2006次阅读

带你详细解析串行外设接口(SPI)总线时序

SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sc...

发表于 2016-01-25 13:54
?
1976次阅读

利用I2C通信接口实现测温的设计方案

测温功能是很多智能硬件设计都会用到的,本文介绍一种带I2C通信接口的数字温度传感器SD5075来实现...

发表于 2015-10-13 13:51
?
1049次阅读

高清视频监控中的I2C总线云台电机控制设计

社会的发展,汽车增量不断增多,道路上各种违章的车辆也逐渐增多,为了构建一个平安交通和智能交通,视频监...

发表于 2015-08-01 23:29
?
426次阅读

使用光学鼠标传感器实现旋转测量

 本设计实例使用光学电脑鼠标中的传感器测量圆盘的旋转,其中的圆盘可以通过机械方式连接到任何一种旋转装...

发表于 2015-07-30 16:33
?
1418次阅读

最小尺寸USB Type-C解决方案

 全球领先的高性能功率半导体解决方案供应商Fairchild今天发布了USB Type-C解决方案的...

发表于 2015-07-30 11:40
?
887次阅读

如何通过一个差分接口来延长SPI总线

本文将介绍如何通过一个差分接口来延长串行外设接口 (SPI) 总线,而这可以应用在支持远程温度或压力...

发表于 2015-04-24 11:27
?
2250次阅读

I2C与串口通信模块电子电路设计

OZ89采样模块将采集处理后的数据通过I2C总线发送到LF2407,由于LF2407自身不带I2C ...

发表于 2014-09-17 13:42
?
5148次阅读

采用SMBus温度传感器IC实现风扇开关控制

在很多产品中,低或中速运行的风扇已足以散热,同时允许保留最高速模式以应付最糟糕的情形。本文阐述的电路...

发表于 2014-07-10 17:25
?
623次阅读

如何利用isoSPI数据链路实现高性能车载电池管...

通过整合行之有效的数据通信技术,isoSPI提供了一种稳健和简单的标准SPI设备远程控制法,而这在以...

发表于 2013-06-14 15:21
?
2075次阅读

下一篇: PLC、DCS、FCS三大控

上一篇: 电气控制线路图控制原

推荐产品

更多