完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我最近尝试使用OSPI驱动APS6404,这非常方便的扩展了RAM的大小,读写速度也有30M字节每秒。
我在阅读APS6404的手册时注意到它单次突发访问是1k字节大小,在STM32中我没有注意到这方面的配置。 OSPIM_CfgTypeDef sOspiManagerCfg = {0}; /* USER CODE BEGIN OCTOSPI1_Init 1 */ /* USER CODE END OCTOSPI1_Init 1 */ hospi1.Instance = OCTOSPI1; hospi1.Init.FifoThreshold = 1; hospi1.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE; hospi1.Init.MemoryType = HAL_OSPI_MEMTYPE_APMEMORY; hospi1.Init.DeviceSize = 23; hospi1.Init.ChipSelectHightime = 2; hospi1.Init.FreeRunningClock = HAL_OSPI_FREERUNCLK_DISABLE; hospi1.Init.ClockMode = HAL_OSPI_CLOCK_MODE_0; hospi1.Init.WrapSize = HAL_OSPI_WRAP_NOT_SUPPORTED; hospi1.Init.ClockPrescaler = 2; hospi1.Init.SampleShifting = HAL_OSPI_SAMPLE_SHIFTING_HALFCYCLE; hospi1.Init.DelayHoldQuarterCycle = HAL_OSPI_DHQC_DISABLE; hospi1.Init.ChipSelectBoundary = 0; hospi1.Init.DelayBlockBypass = HAL_OSPI_DELAY_BLOCK_BYPASSED; hospi1.Init.MaxTran = 0; hospi1.Init.Refresh = 0; if (HAL_OSPI_Init( hospi1) != HAL_OK) { Error_Handler(); }是不是WrapSize可以进行设置,但是我配置为NOT_SUPPORTED似乎也工作的很好。我想了解一些OSPI在内存映射模式下默认的突发访问长度是多少? |
|
相关推荐
1个回答
|
|
首先,我们需要了解STM32H730 OSPI(Octal Serial Peripheral Interface)的基本功能。OSPI是一种高速串行接口,用于与外部存储器(如SPI闪存、SRAM等)进行通信。在STM32H730中,OSPI可以配置为内存映射模式,这意味着它可以像访问内部存储器一样访问外部存储器。
关于STM32H730 OSPI在内存映射模式下单次读写长度的问题,我们需要查看STM32H7系列的参考手册和OSPI驱动的配置。在STM32H7系列的参考手册中,OSPI的内存映射模式并没有明确指定单次读写长度。然而,我们可以从OSPI驱动的配置中找到一些线索。 在您提供的代码片段中,我们可以看到以下几个关键配置: 1. `hospi1.Instance = OCTOSPI1;`:这行代码设置了OSPI实例为OCTOSPI1。 2. `hospi1.Init.FifoThreshold = 1;`:这行代码设置了FIFO阈值为1。FIFO(First In First Out)是一种缓冲区,用于在OSPI传输过程中存储数据。当FIFO中的可用空间少于阈值时,OSPI会触发中断。这个设置并不直接影响单次读写长度。 3. `hospi1.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE;`:这行代码禁用了双四线模式。双四线模式允许OSPI在一个时钟周期内传输更多的数据。禁用此模式意味着OSPI将使用单线模式进行通信。 关于APS6404的单次突发访问长度为1k字节的问题,这实际上是与APS6404芯片的特性有关,而不是STM32H730 OSPI的配置。在STM32中,您需要确保OSPI驱动能够与APS6404的突发访问长度兼容。这通常涉及到设置OSPI驱动的时序参数,以适应APS6404的访问需求。 在STM32H730的OSPI驱动中,您可以通过配置`OSPIM_CfgTypeDef`结构体中的`Init`字段来设置时序参数。例如,您可以设置`Init.SampleShifting`、`Init.DelayHoldQuarterCycle`等参数,以确保OSPI驱动与APS6404的时序要求相匹配。 总之,STM32H730 OSPI在内存映射模式下单次读写长度并没有一个固定的值,而是取决于OSPI驱动的配置以及外部存储器(如APS6404)的特性。为了确保OSPI驱动与APS6404兼容,您需要仔细配置OSPI驱动的时序参数,并确保它们满足APS6404的访问需求。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1885 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1663 浏览 1 评论
1149 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
763 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1964浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
790浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
614浏览 3评论
631浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
593浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-14 02:59 , Processed in 0.851139 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号