rk3399 rv1126上使用wk2124

wk2124是一个通过spi扩充为4路串口的模块,在嵌入式设备上能充分利用资源,我在rk3399和rv1126上移植了wk2124,比较容易,我想它在其他linux平台使用起来也是可以的。

  • 设备树添加
&spi0 {
	status = "okay";
	max-freq = <48000000>; /* spi internal clk, don't modify */
	spi_wk@20 {
		compatible = "wkmic,wk2124spi";
		reg = <0>;
		spi-max-frequency = <10000000>;
		poll_mode = <0>;
		type = <0>;
		enable_dma = <0>;
		irq_gpio = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
		//irq_gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
	};
};

关键配置解释:

status = "okay";                   //激活
spi_wk@20                         //spi_wk这个随意写,没有关系,我认为@后的20为这个设备在spi线上的地址,或者叫id,不冲突就可以
compatible = "wkmic,wk2124spi";   //驱动匹配的名字,必须一致
reg = <0>;                         //记不清了,写0即可(好像是片选,scl连接的spi的片选0脚就写0,片选1脚就写1)
irq_gpio = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;     //这是wk2124的中断脚,需查看芯片手册对应

还有就是wk2124是工作在spi的0模式下,上面的配置没有写出,即为默认0模式
  • 驱动
    驱动可以从为开官网,或者网上自行下载,下载的驱动可能有错误,修改的不多
    我编译使用的wk2124驱动

  • 波特率支持
    wk2124最大可以4路uart,每路uart支持最大2M波特率,但是需要使用不同的晶振,如果要使用2M波特率,需要使用5v,替换32M晶振,驱动波特率的寄存器值要从新计算,这样就可以了,改起来也比较容易。

  • 调试技巧
    wk2124的调试比较简单,主要是确认wk2124的电压和输入晶振是否正常,不要量片选scl和clk,这个是量不到的,这个只有在发送数据的时候才会有信号;如果最后软件没问题,硬件也觉得没问题还是起不来,可能就是主cpu出问题了(我就遇到了,折磨好久)。
    软件测试方法:
    在驱动加载后,首先执行下面的命令,这个命令在串口0有数据的时候打印出来

#cat /dev/ttysWK0 

然后另开一个终端

#echo "asdfasfsdf" > /dev/ttysWK0

给串口发送数据,正常情况下是收不到的,需要短接tx rx就可以了。

当然也可以使用代码来控制串口
wk2124串口应用测试程序

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值