地平线—征程2(Journey 2-J2)芯片详解(21)—UART+SPI

2024-08-25 16:04

本文主要是介绍地平线—征程2(Journey 2-J2)芯片详解(21)—UART+SPI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

本系列文章主要讲解地平线征程2(Journey 2-J2)芯片的相关知识,希望能帮助更多的同学认识和了解征程2(Journey 2-J2)芯片。

若有相关问题,欢迎评论沟通,共同进步。(*^▽^*)


错过其他章节的同学可以电梯直达目录↓↓↓

地平线—征程2(Journey 2-J2)芯片详解——目录-CSDN博客


8. PERI子系统

8.1 UART

8.1.1 介绍

通用异步接收器/发射器(Universal Asynchronous Receiver/Transmitter-UART)模块提供串行通信功能,允许使用串行电缆和RS232协议与外部设备(如计算机)进行通信。该模块实现了与启停异步通信相关的所有必要功能。串行数据发送和接收的标准波特率由内部波特率发生器配置。

J2拥有4路UART模块,即是UART0~UART3。UART1是带有硬件流量控制的4线版本,其他的仅是带有TX和RX的2线版本。有些UART模块和其他引脚共用。

8.1.2 特性

UART模块的主要特性如下:

  • TXD和RXD的全双工操作
  • 带有16位过采样的稳定数据接收和噪声过滤
  • 可配置帧格式:

        ——数据位:7或8位

        ——校验位:无、奇数或偶数

        ——停止位:1或2位

  • 带有整数和分数除数的可编程波特率发生器
  • 支持的标准波特率:19200、38400、57600、115200、230400、460800和921600(16位过采样)
  • UART1拥有RTSN和CTSN的硬件流量控制
  • 支持UART RDR和UART TDR寄存器的数据发送和接收
  • 支持嵌入式DMA控制器的数据发送和接收,64字节的TX和RX先进先出(FIFO)
  • 在实时应用中,DMA支持在超时条件下RX FIFO刷新操作
  • 全面的状态和中断报告
  • 通过可编程XON/XOFF字符支持软件流量控制能力

8.2 SPI

8.2.1 介绍

J2的串行外设接口(Serial Peripheral Interface-SPI)控制模块包含3个SPI控制器。SPI是一个主/从同步串行总线。SPI模块符合SPI协议并可实现作为主机和从机的功能。

同步SPI协议允许主设备与从设备启动串行数据传输。从选择信号(Slave Select Signal-SSN)允许选择一个单独的从SPI设备。当SPI总线启动时,若没有接口,则从设备也不能被选择。主机通过提供串行时钟和从机选择信号来控制通信流。从机选择信号是一个可选的低电平有效信号从而控制从机的串行数据输入和输出。

4线SPI总线:

  • 时钟信号SCLK由主机驱动,所有的SPI信号都同步于此时钟信号
  • 从机选择信号SSN,用于和主机通信的从机选择
  • 从主机到从机的数据线,MOSI(Master Out-Slave In)
  • 从从机到主机的数据线,MISO(Master In-Slave Out)

8.2.2 特性

SPI模块的主要特性如下:

  • 主机模式下,MOSI和MISO之间的全双工同步串行数据传输
  • 可编程SCLK频率、极性和相位,最高可达48MHz
  • 可编程极性仅支持CSN信号
  • 优先可编程MSB或LSB,支持8位或16位传输模式
  • 支持TX和RX寄存器的数据接收和发送
  • 支持嵌入式DMA控制器的数据发送和接收,32字节的TX和RX先进先出(FIFO)
  • 在实时应用中,DMA支持在超时条件下RX FIFO刷新操作
  • 全面的状态和中断报告

总结:本部分主要讲解了J2的UART和SPI。同学们可以根据实际应用进行选择,比如J2和MCU之间的通信可选择UART或SPI或两者都接上。


本文章是博主花费大量的时间精力进行梳理和总结而成,希望能帮助更多的小伙伴~  🙏🙏🙏

后续内容将持续更新,敬请期待(*^▽^*)

欢迎大家评论,点赞,收藏→→→

这篇关于地平线—征程2(Journey 2-J2)芯片详解(21)—UART+SPI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106008

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar