0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I²C接口将小型闪存卡连接到微控制器

星星科技指导员 来源:ADI 作者:ADI 2023-02-14 10:19 次阅读

本应用笔记说明如何使用I²C I/O扩展器将CF卡连接到微控制器的I²C接口。解释了用于读取和写入数据的软件命令。MAX7311 I/O端口扩展器用于设计电路。

数据记录通常需要大量内存来存储测量数据,尤其是在监控通道数量很大的情况下。更复杂的是,小型微控制器的内部数据存储器(RAM和EEPROM)有限,并且缺少地址和数据端口,这通常妨碍了外部存储器的添加。图1电路使用16位I²C I/O扩展器(U1,MAX7311)将紧凑型闪存(CF)卡连接到微控制器的I²C接口。I²C接口是一个合理的选择,因为许多电路已经使用它来连接外部ADCDAC实时时钟和其他元件。

pYYBAGPq9LGAU2TSAACmkDuxncE791.png

图1.该电路采用16位I/O扩展器(MAX7311)将紧凑型闪存连接器连接到微控制器的I²C总线。

CF 卡以内存映射模式通过 8 位宽的数据总线进行控制。MAX7311的端口1(I/O线0–7)连接到CF卡的数据总线;端口 2 连接到地址和控制信号。CF卡的数据寄存器可以使用端口1的输入和输出寄存器进行读写。端口 2 寻址正确的寄存器并生成读写信号。

要写入特定寄存器,首先将数据写入配置为输出的端口 1。接下来,使用相同的数据连续三次写入端口 2,WR 除外N通过从 1 到 0 切换到 1 来生成写入信号的 PIN。地址位 A2–A0 指示要写入的寄存器。CE 低,而 RDN为高启用 CF 卡。类似的过程允许您从特定的寄存器读取。端口 1 用作输入端口,在三次写入端口 2 后读取,其中 RDNPIN 通过从 1 到 0 切换到 1 来生成读取信号。三次写入后,电路读取端口 1 并使数据可用。这三个地址位允许您读取、写入和寻址八个内部寄存器:

地址 注册 地址 注册
0x00 数据 0x04 气缸低
0x01 错误/功能 0x05 气缸高
0x02 扇区计数 0x06 选择卡/头
0x03 扇区编号 0x07 状态/命令

寄存器0x00用于主机和CF卡之间的数据交换。寄存器0x03、0x04、0x05和0x06用于指定读取或写入数据的磁道。每个轨道包含 512 个数据字节。处理器通过写入命令寄存器来指示读/写磁道和其他功能。您可以读取状态和错误寄存器以获取状态(忙、数据就绪等)和错误条件。

端口 2(I/O 10 和 11)上的两个未使用的引脚可用于驱动显示电路活动的 LED,或读取指示处理器使用或不使用卡的跳线(由用户设置)。如果第二个CF卡与第二个MAX7311连接,处理器可以从一个卡切换到下一个卡;用户可以拔下卡并处理其上的数据,而不会干扰数据记录过程。使用特殊的 CF 连接器时,该卡可热插拔。在这种情况下,MAX7311的中断输出应连接到微控制器上的中断输入。因此,通过放置或移除跳线产生的中断可用于触发处理器切换到另一张卡。

软件

两个I²C功能使微控制器能够读写。如果它具有硬件I²C接口,则功能可以非常简单。首先,读取和写入MAX7311端口需要两个功能:

Write_MAX7311(slv,prt,dat)此过程启动I²C总线,将数据字节数据发送到MAX7311上具有从地址slv的PRT端口。

Read_MAX7311(SLV,PRT)此过程启动I²C总线,从MAX7311端口prt读取数据字节,从地址为slv。

上述函数用于创建另外两个函数,它们读取和写入 CF 卡寄存器:

Write_CF_REG(注册,dat)此过程使用 Write_MAX7311 将数据 dat 放在端口 1 上。相同的过程用于将寄存器地址reg与其他控制信号一起放置在端口2上。写入执行三次(切换 WRN) 以生成写入信号。

Read_CF_REG(注册)此过程使用Write_MAX7311对CF卡寄存器进行寻址并生成读取信号。然后,Read_MAX7311过程从寄存器读取数据。

可用于读取和写入卡寄存器的函数现在可用于创建访问 CF 卡扇区的函数:

Write_CF(cyl,head,sec)此过程使用Write_CF_REG在写入操作中指定目标柱面、缸盖和扇区(寄存器0x03到0x06)。然后,通过将0x30写入命令寄存器来配置CF卡进行数据写入。然后执行 512 次Write_CF_REG,将数据(存储在全局数组中)写入数据寄存器。CF 卡会自动将此数据添加到当前轨道。

Read_CF(cyl,head,sec)此过程使用 Write_CF_REG 在读取操作中指定目标柱面、缸盖和扇区。然后,通过将0x20写入命令寄存器来配置CF卡进行数据读取。然后执行 512 次Read_CF_REG,通过数据寄存器从轨道读取所有 512 个字节,并将数据放入全局数组中。

如果微控制器的内部存储器太小,无法存储 512 字节的数据,则可以从进行数据采集的环路中写入扇区。也就是说,在接收到每个新的测量数据点后,其值可以直接写入CF卡。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7646

    浏览量

    152010
  • 寄存器
    +关注

    关注

    31

    文章

    5363

    浏览量

    121055
  • I²C总线
    +关注

    关注

    0

    文章

    14

    浏览量

    2161
收藏 人收藏

    评论

    相关推荐

    怎么Fieldfox连接到微控制器

    我正在构建一个微控制器控制的转盘,用于测量天线辐射模式。阶段1简单地平台定位在0到360度的任何位置。我最不想做的是使用我的Fieldfox频谱分析仪以单一频率读取信号电平。有了这
    发表于 02-12 12:35

    如何ESP连接到微控制器

    你好! 我有一个问题:这是 ESP 的最小电路。 我想用微控制器驱动它。我的问题是: 1) RST 和 EN 引脚通过电阻连接到 Vcc。如果我想将它连接到 STM32(连接到 STM
    发表于 05-15 08:30

    闪存卡类型

    闪存卡类型 闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储,一般应用在数码相机,掌上电脑,MP3等
    发表于 01-09 14:54 1014次阅读

    闪存卡的存取速度

    闪存卡的存取速度             存取速度是指闪存卡在被写入数据或读取数据时的数据传输速度。不同类型的闪存卡采用
    发表于 01-09 15:03 1079次阅读

    闪存卡的电压

    闪存卡的电压            不同类型的闪存卡具有不同的规
    发表于 01-09 15:04 1166次阅读

    什么是手机扩展/ 闪存卡

    什么是手机扩展 一: 什么叫闪存卡
    发表于 01-28 10:26 729次阅读

    什么是闪存卡/U盘/SD/FIFO/FRAM

    什么是闪存卡/U盘/SD/FIFO/FRAM 闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储
    发表于 03-24 16:49 2054次阅读

    IDE模式下TMS320VC54与紧凑型闪存卡进行接口的信息

    本文档包含关于如何在真正的IDE模式下TMS320VC54与紧凑型闪存卡进行接口的信息。一个完整的参考设计,包括硬件和软件接口。该软件由一组文件系统无关子程序组成,这些子程序执行从压
    发表于 05-07 10:55 3次下载
    IDE模式下<b class='flag-5'>将</b>TMS320VC54与紧凑型<b class='flag-5'>闪存卡</b>进行<b class='flag-5'>接口</b>的信息

    如何实现SDRAM存储并通过接口连接到高性能微控制器

    电子发烧友网站提供《如何实现SDRAM存储并通过接口连接到高性能微控制器.zip》资料免费下载
    发表于 09-07 09:31 1次下载
    如何实现SDRAM存储<b class='flag-5'>器</b>并通过<b class='flag-5'>接口</b><b class='flag-5'>连接到</b>高性能<b class='flag-5'>微控制器</b>

    小型RAM微控制器与SL API大量REST接口连接

    电子发烧友网站提供《小型RAM微控制器与SL API大量REST接口连接.zip》资料免费下载
    发表于 12-09 09:37 0次下载
    <b class='flag-5'>小型</b>RAM<b class='flag-5'>微控制器</b>与SL API大量REST<b class='flag-5'>接口</b><b class='flag-5'>连接</b>

    MAX1169 ADC与PIC微控制器接口

    本应用笔记介绍如何MAX1169模数转换(ADC)连接至PIC®微控制器。它包括PIC18F442的示例电路和软件。该软件包含函数调用,用于使用内部MSSP
    的头像 发表于 02-25 12:11 641次阅读
    MAX1169 ADC与PIC<b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>

    MAX1169 ADC与PIC微控制器接口

    本应用笔记介绍如何MAX1169模数转换(ADC)连接至PIC微控制器。它包括PIC18F442的示例电路和软件。该软件包含函数调用,用于使用内部MSSP
    的头像 发表于 03-30 11:29 965次阅读
    MAX1169 ADC与PIC<b class='flag-5'>微控制器</b><b class='flag-5'>接口</b>

    基于8051的微控制器连接到SCI端口

    本应用笔记介绍如何配置高速微控制器或超高速闪存微控制器的UART,以便与支持SCI的设备通信。它首先简要讨论了SCI和UART模块之间的差异,并以一个实际示例结束,说明如何配置基于8051的达拉斯半导体
    的头像 发表于 06-13 15:48 802次阅读
    <b class='flag-5'>将</b>基于8051的<b class='flag-5'>微控制器</b><b class='flag-5'>连接到</b>SCI端口

    工业闪存卡:CF、SD、TF

    工业闪存卡有很多种类,常见的有CF、SD、MMC、记忆棒、SM、xD、TF
    的头像 发表于 10-25 15:53 2368次阅读
    工业<b class='flag-5'>闪存卡</b>:CF<b class='flag-5'>卡</b>、SD<b class='flag-5'>卡</b>、TF<b class='flag-5'>卡</b>

    MSP430™ MCU与MMC或SD闪存卡连接

    电子发烧友网站提供《MSP430™ MCU与MMC或SD闪存卡连接.pdf》资料免费下载
    发表于 10-22 09:21 0次下载
    <b class='flag-5'>将</b>MSP430™ MCU与MMC或SD<b class='flag-5'>闪存卡</b><b class='flag-5'>连接</b>