This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:使用 R5FMCU 来控制用于读取和写入操作的 OSPI

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1281511/tda4vm-use-r5fmcu-to-control-ospi-for-read-and-write-operations

器件型号:TDA4VM

大家好、

要求:

a.通过访问 OSPI 的 TX-FIFO 和 RX-FIFO 来发送和接收数据。

b.通过8根电线接收或发送数据。

当前配置为传统模式、8位地址、数据、命令模式、CLK 和 DQ[0-8]在发送时可进行测量。 但是、未接收到 CLK 信号、无法读取该值。 配置寄存器值如下所示:

CONFIG_REG = 80783981
DEV_INSTR_RD_CONFIG_REG = 133300
DEV_INSTR_WR_CONFIG_REG = 1f033002
DEV_DELAY_REG = a0a0a0a
RD_DATA_CAPTURE_REG = 0
DEV_SIZE_CONFIG_REG = 81002
SRAM_PARTITION_CFG_REG = 3f
IND_AHB_ADDR_TRIGGER_REG = 4000000
DMA_PERIPH_CONFIG_REG = 0
REMAP_ADDR_REG = 0
MODE_BIT_CONFIG_REG = 200
SRAM_FILL_REG = 0
TX_THRESH_REG = 1
RX_THRESH_REG = 1
WRITE_COMPLETION_CTRL_REG = 10005
NO_OF_POLLS_BEF_EXP_REG = ffffffff
IRQ_STATUS_REG = 0
IRQ_MASK_REG = f7fff
LOWER_WR_PROT_REG = 0
UPPER_WR_PROT_REG = 0
WR_PROT_CTRL_REG = 0
INDIRECT_READ_XFER_CTRL_REG = 0
INDIRECT_READ_XFER_WATERMARK_REG = ffffffff
INDIRECT_READ_XFER_START_REG = 0
INDIRECT_READ_XFER_NUM_BYTES_REG = 0
INDIRECT_WRITE_XFER_CTRL_REG = 0
INDIRECT_WRITE_XFER_WATERMARK_REG = ffffffff
INDIRECT_WRITE_XFER_START_REG = 0
INDIRECT_WRITE_XFER_NUM_BYTES_REG = 0
INDIRECT_TRIGGER_ADDR_RANGE_REG = 4
FLASH_COMMAND_CTRL_MEM_REG = 0
FLASH_CMD_CTRL_REG = 0
FLASH_CMD_ADDR_REG = 0
FLASH_RD_DATA_LOWER_REG = 0
FLASH_RD_DATA_UPPER_REG = 0
FLASH_WR_DATA_LOWER_REG = 0
FLASH_WR_DATA_UPPER_REG = 0
POLLING_FLASH_STATUS_REG = 0
PHY_CONFIGURATION_REG = 0
PHY_MASTER_CONTROL_REG = 800000
DLL_OBSERVABLE_LOWER_REG = ff81f9
DLL_OBSERVABLE_UPPER_REG = 0
OPCODE_EXT_LOWER_REG = 13edfa00
OPCODE_EXT_UPPER_REG = 6f90000
MODULE_ID_REG = 3000300

static int32_t xg_ospi_reg_read(OSPI_Handle handle)
{
    OSPI_v0_HwAttrs const *hwAttrs = NULL;
    int32_t                regVal = 0;
	CSL_ospi_flash_cfgRegs *pRegs;
	int32_t val;

    hwAttrs = (OSPI_v0_HwAttrs const *)handle->hwAttrs;
	pRegs = (CSL_ospi_flash_cfgRegs *)(hwAttrs->baseAddr);

	CSL_REG32_WR(hwAttrs->dataAddr, 0x555aa5aa);
	wait_idle(handle);
	//val = CSL_REG32_RD(&pRegs->CONFIG_REG);
	//UART_printf("----------xiongg %s %d: config reg = %x\n",__FUNCTION__,__LINE__, val);
	val = CSL_REG32_RD((char *)hwAttrs->dataAddr);
	UART_printf("----------xiongg %s %d: val = %x\n",__FUNCTION__,__LINE__, val);

	return 0;
}

只能测量包含4字节数据的4个脉冲、如下图所示:  

:数据为0 μ A

您能帮助检查这个问题吗? 谢谢。

此致、

切里