原理图
dts配置
&spi1 {
status = "okay";
max-freq = <48000000>;
pinctrl-names = "default";
pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
spi_test@00 {
compatible = "rockchip,spi_test_bus0_cs0";
id = <0>;
reg = <0>;
spi-max-frequency = <24000000>;
spi-cpha;
spi-cp0l;
};
};
加入测试代码编译
drivers/spi/Makefile
+ obj-y += spi-rockchip-test.o
命令行测试
echo read 0 10 255 > /dev/spi_misc_test
echo write 0 10 255 > /dev/spi_misc_test
当前未控制写入数据,灯显示绿色
dts配置(客户提供)
&spi1 {
status = "okay";
max-freq = <50000000>;
spi_test@10 {
compatible = "rockchip,spidev";
//id = <0>;
reg = <0>;
spi-max-frequency = <50000000>;
//spi-cpha;
//spi-cpol;
};
};
客户测试代码编译
Documentation/spi/spidev_test.c
编译方式:
../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc Documentation/spi/spidev_test.c
测试方法
将编译生成的文件拷贝到开发版
运行编译生成的文件
显示结果:
灯显示白色
修改客户显示颜色及亮度
当前数据协议如上:
发送数据时需加上数据头和数据尾
数据头:
占4字节,
数据:0x00, 0x00, 0x00, 0x00
颜色数据:
占四字节
数据:
第一字节为亮度:
前三bit为为标志 111
后五个bit为亮度:共32种(0~31)
第二个字节为蓝色
占8bit,共256种(0~255)
第三个字节为绿色
死四个字节为红色
数据尾:
占四个字节
数据: 0xFF, 0xFF, 0xFF, 0xFF