请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM3358 工具/软件:Code Composer Studio
你好!
我使用 AM3358从 ADC 采集数据、但_R31寄存器位16始终为零!
引脚复用配置如下
PRU_PRU_PINS:pinmux_PRU_PRU_PINS{// PRU 引脚模式 pinctrl-single、pins =< 0x190 0x26 /*(PIN_INPUT | MUX_MODE5)(A13) McASP0_aclkx.pr1_pru0_PRU_R31[0]* / 0x194 0x26 /*(PIN_INPUT | MUX_MODE5)(B13) McASP0_pru0_PRU_R31* (0xPRU_PRU_0_PRU_R12* 0x26_MR0_PRU_PRU_IN0* (PIN_INPUT | MUX_MODE5)(B12) McASP0_aclkr.pr1_pru0_PRU_R31[4]*/ 0x1a4 0x26 //(PIN_INPUT | MUX_MODE5)(C13) McASP0_pru0_PRU_R31* (0x1u_MR0* )*(0x14_MR0_MR1*) (F17 ) mmc0_data3.pr1_pru0_pru0_pru0_pru_R31[8]*/ 0x0f4 0x26 //(PIN_INPUT | MUX_MODE5)(F18) mmc0_data2.pr1_pru0_pru0_pru0_r31[0x10_mc12_mpru_mu0_mu20_mu_mu0_mu_mu012*(0xc12_mpru_mu_mu0_mu20_mu_mpru_mu_mu0_mu_mu20_mu_mu20_mu_mu_mu2012* (PIN_INPUT | MUX_MODE5)(G18) mmc0_cmd.pr1_pru0_PRU_R31[13]*/ 0x038 0x26 /*(PIN_INPUT | MUX_MODE5)(V13) GPMC_ad14.pr1_PRU_R31[14]*(PIN_DRU015_MR1*)( 0x14_PRU_INTRU15_PRU_14_PRU1.14_PRU_U_PRU1.14_PRU_U_INTR16* )*(0x14_PRU_U_PRU1.14_PRU1.14_PRU_UMR1* >; };
Cat $Pins 引脚109 (44e109b4.0) 00000026 pinctrl-single
如果我在 器件树中将引脚0x1b4配置为 GPIO
0x1b4 0x27
更低
Echo 20 >/sys/class/gpio/export
并对 D14 ZCZ 焊球施加3.3V 电压、我从 gpio20/value 文件中读取1
但是、当我将引脚多路复用器切换到 PRU 时、结果为0。
即使我将 pinmux 设置为上拉模式0x36 (在0x1b4引脚偏移的偏离树中)读取_R31寄存器返回零
所有其他16位(_R31[0:15]只是正常)问题仅与_R31[16]有关
PRU 的程序在 CCS 中使用 PRU 编译器2.1.4在 C 上编写
#define data ((uint16_t)(__R31 >> 3))//Data reg
#define PSYNC(__R31 & 1<<0)//PSYNC 引脚
#define VSYNC (_R31和1 << 1) //VSYNC 引脚
#define HSYNC(__R31 & 1<<2)//HSYNC 引脚
while (!VSYNC){}
while (VSYNC)
{uint16_t*
Loc =(uint16_t*) imagecur.cur.cur.;
while (!HSYNC){}while
(HSYNC){}+Psum=}/*ydata
=(}/ycur.}+}/ybul.al.al.al.al.al.al.al.al.al.al.al.al.al.al.al./!/!/!/y!/y!/!/ybul.al.al.al.al.al.al.al.
那么、我怎么做呢?