Other Parts Discussed in Thread: AM4372, ADS8634
主题中讨论的其他器件:AM4372、
工具/软件:Linux
您好、先生、
我有一些问题需要你的善意帮助。
我想启用 辅助配置寄存器的内部 VREF 位(地址= 06h; 首先、发送 数据(0x0c)、包括寄存 器地址和 读/写指令 、然后发送数据(0x04)。其次、发送读命令(0x0D)。问题是我无法在寄存器(06h)中读取正确的日期。我的理解是否有问题?能否给我一些建议?
unsigned int read_ref[2];
unsigned int TX[2];
TX[0]=(0x06<1);
TX[1]=0x04;
unsigned int read_cmd[2];
READ_CMD[0]=((0x06<<1)|0x01);
Read_cmd[1]=0xff;
写入(FD、TX、2);
写入(fd、read_cmd、2);
读取(fd、read_ref、2);
printf ("读取字节为:read_ref[0]=%x read_ref[1]=%x\n"、read_ref[0]、read_ref[1]);
结果如下:
root@AM437X-EVM:/usr/bin #./SPI -D /dev/spidev1.0
[273.961755] spidev spi1.0:不对 McSPI 使用 DMA (-19)
[273.967391] spidev spi1.0:不对 McSPI 使用 DMA (-19)
[273.977474] spidev spi1.0:不对 McSPI 使用 DMA (-19)
SPI 模式:0
每字位数:8.
最大速度:1000Hz (1KHz)
读取字节为:read_ref[0]= 10c0d read_ref[1]= b6f06b50
以下是我的 SPI 配置:
spi0_pins_default:spi0_pins_default{
pinctrl-single、pins =<
AM4372_IOPAD (0x950、PIN_INPUT | MUX_MODE0)/*(P23) spi0_SCLK/spi0_SCLK *
AM4372_IOPAD (0x954、PIN_INPUT | MUX_MODE0) /*(T22) spi0_d0.spi0_d0 *
AM4372_IOPAD (0x958、PIN_OUTPUT | MUX_MODE0)/*(T21) spi0_D1.spi0_D1 *
AM4372_IOPAD (0x95c、PIN_OUTPUT | MUX_MODE0)/*(T20) spi0_cs0.spi0_cs0 *
>;
};
spi0{(&S)
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&spi0_pins_default>;
ti、pidd-d0-in-d1-out =<1>;
spidev@0{
#address-cells =<1>;
#size-cells =<0>;
兼容="spidev";
reg =<0>;
SPI-max-frequency =<1000000>;
};
};
兼容="ti、am4372-mcspi"、"ti、omAP4-mcspi";
REG =<0x48030000 0x400>;
中断= ;
ti、hwmods ="spi0";
#address-cells =<1>;
#size-cells =<0>;
时钟=<&DPLL_PER_M2_DIV4_ck >;
时钟名称="Fck";
时钟频率=<1000000>;
STATUS ="禁用";
};
该 SDK 为 Linux-AM437X-EVM-04.03.00.05。
内核为 linux-4.9.69。
期待您的回复。
此致、
Lihua。