在文件 函数 transfer 中, 变量 tr.tx_single_len 值, 是在1/2/4线模式下, 有多少个tx_buf数据是需要单线输出的.
因此, 在选择2/4线模式下, tx_single_len 值默认为数据长度 len, 因此, 才会导致D1-D3无法正常输出数据位
正确做法应该是
if (tr.tx_nbits > SPI_NBITS_SINGLE)
tr.tx_single_len = 0;
maplerian 发布的最佳帖子
-
R128-S2 test_spi.c 文件问题修复: 修复2/4线 无法正常输出数据位
maplerian 发布的最新帖子
-
R128 SPI 问题 : 高于20MHZ CS控制出现异常, 导致无法传输数据, 且某些频率无法正常使用
在用 hal_spidev_test 测试命令测试 SPI 时, 发现 高于 20MHZ 的频率中, 发送cmd 数据时(single_len > 0) cs 电平异常翻转, 导致传输数据失败, 在测试时, 进一步发现 21-39MHZ 频率 中, spi初始化显示 hal-sspi 4000f000.sspi1: init clock rate xx000000 success (不一定等于设定值, 但不是20M), 但是实际输出的频率依然是20MHZ
在20M以下传输大量的数据 ( (Q) SPI LCD) 下 CS_Mode 使用软件控制, 数据采用 打包 hal_spi_master_transfer_t 数组, 最后一起发送也无法保证 在传输数据过程中 保持拉低, 依然会异常翻转设置21-39M, 但是实际还是20M
异常翻转截图:
20MHZ及以下, 在传输大量数据的情况, cs位异常翻转:
-
R128-S2 test_spi.c 文件问题修复: 修复2/4线 无法正常输出数据位
在文件 函数 transfer 中, 变量 tr.tx_single_len 值, 是在1/2/4线模式下, 有多少个tx_buf数据是需要单线输出的.
因此, 在选择2/4线模式下, tx_single_len 值默认为数据长度 len, 因此, 才会导致D1-D3无法正常输出数据位
正确做法应该是
if (tr.tx_nbits > SPI_NBITS_SINGLE)
tr.tx_single_len = 0; -
回复: R128-S2 使用外部1.2VDC的情况下, 如何关闭 APP_LDO
@awwwwa 还是说, 只要我进入程序后, 开启外部DCDC, POWERTCTL会自动关闭APP_LDO?
-
回复: R128-S2 使用外部1.2VDC的情况下, 如何关闭 APP_LDO
@awwwwa 你的意思是,如果我需要开关APP_LDO, 需要开机启动后, 延迟判断是否开启了内部APP_LDO, 如果是, 则调RTC定时唤醒, 置RTC变量标志位, 进入深度睡眠后等待RTC唤醒, 唤醒后检测标志位, 然后开启外部DC?
-
回复: R128-S2 使用外部1.2VDC的情况下, 如何关闭 APP_LDO
@awwwwa 在 如何优化R128/XR875功耗 问题的解决方法3中, SYS电源和DSP电源需外挂DCDC,并在常规模式使能. 此处说是常规模式下
在R28_S1_S2_EVB1 原理图中, DCDC to 1.2V中, 也注释了是应用起来后, 拉PA11开启外部DC, 然后把内部APP和DSP的LDO关闭.
倘若是需要进入深度睡眠模式下, 则不符合常规模式下, 且无法让应用处于运行状态下使用外部DC1.2V供电 -
R128-S2 使用外部1.2VDC的情况下, 如何关闭 APP_LDO
在芯片数据手册中, APP_LDO_CTRL 寄存器可以控制睡眠电压, 输出电压, LDO_EN只读, 并标注由POWERCTRL寄存器控制, 在POWERCTRL寄存器中, 只有 DSP_LDO_SHUT_DOWN DSP_LDO控制, 其它位都没有明确指示出APP_LDO的开关在哪