7_Apollo4BlueLite MSPI

1.概述

Apollo4BlueLite芯片的MSPI(Multi-Serial Peripheral Interface)总线是一种高性能的串行通信接口,用于在芯片内部连接各种外设设备,例如存储器、传感器和其他外部模块。

与常规SPI(Serial Peripheral Interface)总线相比,MSPI总线具有以下几个异同点:

(1)数据传输速度:MSPI总线支持更高的数据传输速率,因为它使用了高速时钟和多通道传输机制。相比之下,常规SPI总线的数据传输速度较低。

(2)灵活性:MSPI总线采用了灵活的多通道传输机制,可以同时传输多个数据通道。这意味着可以在同一时钟周期内进行多个设备的读写操作,从而提高了总线的效率和响应速度。而常规SPI总线只能在一个时钟周期内传输一个数据通道。

(3)电源效率:由于MSPI总线支持更高的数据传输速率,它可以在更短的时间内完成数据传输,从而减少了总线的工作时间,降低了功耗和能耗。常规SPI总线的传输速率较低,需要更多的时间完成数据传输。

在使用场景方面,MSPI总线适用于需要高速数据传输和低功耗要求的应用。例如,它可以用于高性能存储器读写操作、数据采集和传感器控制等领域。相比之下,常规SPI总线更适用于传输速率要求不高、设备数量较少的应用,例如显示屏控制、简单外设控制等。

总之,Apollo4BlueLite芯片的MSPI总线相比常规SPI总线具有更高的传输速率、更高的灵活性和更低的功耗,适用于高性能和低功耗要求的应用场景。

2. MSPI框图

3.MSPI特性

(1)该接口支持1/2/4/8/16位传输

(2)支持用于显示的DCX信号

(3)支持XiP

(4)支持DMA传输

(5)支持命令队列

(6)接口时钟频率最高可达96 MHz(SDR模式)或48 MHz(DDR模式)

(7)支持全部四种SPI CPOL/CPHA模式

4.功能概览

Apollo4BlueLite有3组MSPI,其中MSPI0和MSPI1的最大时钟速率为96 MHz,而MSPI2的最大时钟速率为48 MHz,因此SDR模式限于48 MHz或更低,DDR模式限于24 MHz或更低。可以以串行、双路、四路和八路模式进行传输。MSPI0还支持用于更高吞吐量的十六进制(16位)模式。

MSPI模块具有统一的16个条目FIFO(32位宽),用于传输和接收数据。为了确保事务不会因系统或软件延迟而丢失,MSPI控制器在操作期间如果TX FIFO为空或RX FIFO已满,将暂停时钟(从而暂停总线上的传输)。一旦FIFO条件被清除,它将自动恢复。

(1)传输格式

MSPI传输通常由传输1字节的指令、1-4字节的地址(可选)和1字节到64KB的写入或读取数据组成。

(2)传输模式和引脚配置

串行模式:

    • MOSI(Master Out Slave In):用于主设备发送数据。
    • MISO(Master In Slave Out):用于主设备接收数据。
    • SCLK(Serial Clock):用于同步数据传输的时钟信号。
    • CS(Chip Select):用于选择从设备的引脚。在串行模式下,CS通常由主设备控制。

双线模式:

    • IO0(Data 0):用于数据传输。
    • IO1(Data 1):用于数据传输。
    • SCLK(Serial Clock):用于同步数据传输的时钟信号。
    • CS(Chip Select):用于选择从设备的引脚。

四线模式:

    • IO0(Data 0):用于数据传输。
    • IO1(Data 1):用于数据传输。
    • IO2(Data 2):用于数据传输。
    • IO3(Data 3):用于数据传输。
    • SCLK(Serial Clock):用于同步数据传输的时钟信号。
    • CS(Chip Select):用于选择从设备的引脚。

(3)寄存器配置

Apollo4BlueLite有3组独立的MSPI配置寄存器,寄存器详细信息可以查看Apollo4BlueLite官方文档。

Instance 0 Address:

0x40060000

Instance 1 Address:

0x40061000

Instance 2 Address:

0x40062000

(4)访问方式

MSPI接口可以通过CPU直接访问,也可以使用DMA进行数据传输。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/ /apollo/bazel-bin WARNING: Logging before InitGoogleLogging() is written to STDERR E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1 Pcd folders are as follows: /apollo/hdmap/pcd_apollo/ Resolution: 0.125 Dataset: /apollo/hdmap/pcd_apollo Dataset: /apollo/hdmap/pcd_apollo/ Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706 Failed to find match for field 'intensity'. Failed to find match for field 'timestamp'. E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0. F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false *** Check failure stack trace: *** scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single root@in_dev_docker:/apollo# bash scripts/msf_create_lossless_map.sh /apollo/hdmap/pcd_apollo/ 50 /apollo/hdmap/
07-16
根据提供的信息,执行脚本 `scripts/msf_create_lossless_map.sh` 时出现了错误。具体的错误信息如: ``` E0715 22:08:35.399576 6436 lossless_map_creator.cc:162] num_trials = 1 Pcd folders are as follows: /apollo/hdmap/pcd_apollo/ Resolution: 0.125 Dataset: /apollo/hdmap/pcd_apollo Dataset: /apollo/hdmap/pcd_apollo/ Loaded the map configuration from: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. Saved the map configuration to: /apollo/hdmap//lossless_map/config.xml. E0715 22:08:35.767315 6436 lossless_map_creator.cc:264] ieout_poses = 1706 Failed to find match for field 'intensity'. Failed to find match for field 'timestamp'. E0715 22:08:35.769896 6436 velodyne_utility.cc:46] Un-organized-point-cloud E0715 22:08:35.781770 6436 lossless_map_creator.cc:275] Loaded 245443D Points at Trial: 0 Frame: 0. F0715 22:08:35.781791 6436 base_map_node_index.cc:101] Check failed: false *** Check failure stack trace: *** scripts/msf_create_lossless_map.sh: line 11: 6436 Aborted (core dumped) $APOLLO_BIN_PREFIX/modules/localization/msf/local_tool/map_creation/lossless_map_creator --use_plane_inliers_only true --pcd_folders $1 --pose_files $2 --map_folder $IN_FOLDER --zone_id $ZONE_ID --coordinate_type UTM --map_resolution_type single ``` 这段错误信息表明在执行脚本时发生了一个检查失败的情况。错误的具体位置在 `base_map_node_index.cc:101`。可能的原因包括: 1. 数据不匹配:脚本中使用的数据可能存在不匹配的情况,例如字段名或者数据格式不正确。 2. 数据文件缺失:脚本所需的某些数据文件可能不存在或者路径不正确。 3. 依赖问题:脚本所依赖的某些组件或库可能缺失或者版本不兼容。 请检查脚本 `scripts/msf_create_lossless_map.sh` 中的相关代码,确保数据文件和依赖项的正确性。如果问题仍然存在,您可以提供更多的上下文信息,以便我们能够更好地帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值