Firefly-RK3399 加入WK2124驱动笔记

1、Firefly-RK3399平台简介

        目前我是用的是Firefly-RK3399这款开发板。作为Firefly新一代的顶级开源平台,Firefly-RK3399功能强大。具体情况参考Firefly-3399开发板信息

       实际上开源主板AIO-RK3399J(AIO-3399J开发板信息)中是直接有使用WK2124这款芯片,作为扩展串口的芯片。

2、WK2124简介

        WK2124是WK推出的一款SPI扩展4串口芯片,该芯片功能强大。支持10M设置更高的SPI接口速率,每个子串口独立,可以设置不同的波特率和数据格式;每个子串口支持最高2M的波特率,每个子串口都有独立的256Byte的硬件接收FIFO和256Byte的发送FIFO。合理使用该芯片,实际上可以扩展出更多串口,比如4、8、12、16甚至更多的串口。

3、WK2124驱动简介

         从WK(为开)可以获得该芯片的驱动代码和一些其他相关资料。

目前我做测试的用的是如下的代码:wk2xxx_spi.c   v2.4

     1)、 硬件连接示意图

       

         (1)   WK芯片作SPI从设备和CPU端的主SPI需要连接的信号有CS信号(此信号不能一直拉低,需要用主SPI的CS信号控制)、CLK信号、MOSI信号、MISO信号,具体连接方式如上图。

         (2)、IRQ信号为WK芯片的中断输出信号,需要连接到CPU具有外部中断功能的GPIO上。IRQ引脚外部需要加上拉电阻。

        (3)RST作为复位引脚,在SPI拓展4串口的时候,可以不用连接到CPU.直接使用阻容复位电路。

  2)、驱动基本框架

             驱动框架示意图 ​​​​​​​:

(1)、WK驱动工作在linux 内核层,向上提供4个串口设备节点供应用层用户调用。也就是说WK驱动注册成功以后,在/dev/ 目录下会生成 ttysWK0、ttysWK1、ttysWK2、ttysWK3  共4个串口设备节点,应用层就可以按照操作普通串口节点的方式操作。

(2)、WK驱动需要和WK芯片进行数据交互,数据交互是通过SPI总线进行的,所以WK驱动会调用SPI总线驱动接口进行数据收发。

3)、驱动内容

       驱动具体的内容和介绍,参考为开提供的移植手册。

       驱动源码:

4、WK2124驱动和内核一起编译

       (1)在内核源代码加入WK2124驱动源码

                  在内核源码目录加入WK2124的驱动,并修改驱动源代码的文件名为spi-wk2xxx.c

如下图:

通常在Firefly-RK339的SDK下面,都会有入上图的文件,但是这个驱动是比较老的驱动,只需要用最新的驱动去代替就可以。

(2)修改SDK目录/kernel /drivers/spi/  下的配置文件和makefile

       1、在Kconfig里面加入:

        config SPI_WK2XXX
                    tristate "wk2xxx Spi Switch Uart"
                    depends on SPI
                    help
                              Say Y to get the third party encryption service.

        如下图:

                 (2)修改makefile

如下图,在Makefile的结尾加入:

        obj-$(CONFIG_SPI_WK2XXX)                += spi-wk2xxx.o

      

       需要注释掉上图绿色的地方。这个应该是firefly增加的一个和编译相关的程序,现在不需要了。

(3)  make menuconfig

       将该驱动选择编译进入内核。

(4)修改DTS

            a、修改rk3399-firefly-port.dtsi

          在spi1节点中加入:

          

  b、修改rk3399-firefly.dts

     

其实上面的两个也可以合并在一起。只是为了rkfirefly-rk3399和其他一些开发平台兼容性更好适配,才分开写的。

   (5)、编译并下载镜像、测试驱动

      镜像加载完成以后,我们可以在/dev/ 下看见设备节点,如下图:

5、常见问题答疑

        1)由于WK2124的驱动可以看成是一个SPI的设备驱动,所以该驱动依赖于SPI总线驱动。如果总线驱动没有加载,那么WK2124的驱动也是没有办法加载的。

        2)由于驱动在加载的时候,驱动会去读取芯片寄存器GENA,如果默认值不对,那么驱动就会停止加载。所以如果SPI上没有芯片或者SPI读写操作还有问题,那么驱动是加载不了的。

        3)中断相关,由于收发数据依赖于中断信号,如果中断信号有问题,那么收发数据是没有办法进行,但是打开串口不受影响。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Firefly-RK3399的Android10中的pdf_20211123_1657.7z a4_portrait_rgbb.pdf a5_portrait_rgbb.pdf a5_portrait_rgbb_1_6_printscaling_default.pdf a5_portrait_rgbb_1_6_printscaling_none.pdf aacDecoder.pdf aacEncoder.pdf about_blank.pdf Android_malloc_debug.pdf annotation_highlight_long_content.pdf annotation_highlight_rollover_ap.pdf annotation_highlight_square_with_ap.pdf annotation_ink_multiple.pdf annotation_stamp_with_ap.pdf annotiter.pdf barcode_test.pdf BHUSA2014-capstone.pdf black.pdf bookmarks.pdf bookmarks_circular.pdf brotli-comparison-study-2015-09-22.pdf bug_113.pdf bug_213.pdf bug_216.pdf bug_298.pdf bug_325_a.pdf bug_325_b.pdf bug_343.pdf bug_344.pdf bug_355.pdf bug_360.pdf bug_451265.pdf bug_451830.pdf bug_452455.pdf bug_454695.pdf bug_455199.pdf bug_459580.pdf bug_481363.pdf bug_487928.pdf bug_507316.pdf bug_544880.pdf bug_547706.pdf bug_551248.pdf bug_551460.pdf bug_552046.pdf bug_554151.pdf bug_555784.pdf bug_557223.pdf bug_57.pdf bug_572871.pdf bug_583.pdf bug_601362.pdf bug_602650.pdf bug_603518.pdf bug_620428.pdf bug_631912.pdf bug_634394.pdf bug_634716.pdf bug_644.pdf bug_650.pdf bug_664284.pdf bug_679649.pdf bug_680376.pdf bug_707673.pdf bug_709793.pdf bug_713197.pdf bug_717.pdf bug_750568.pdf bug_757705.pdf bug_765384.pdf bug_779.pdf bug_781804.pdf bug_782596.pdf bug_921.pdf bug_xrefv4_loop.pdf CameraITS.pdf camera_engine_rkisp_user_manual_v2.2.pdf camera_hal3_user_manual_v2.3.pdf checkerboard.pdf circular_viewer_ref.pdf combobox_form.pdf control_characters.pdf default-values-ip.pdf DngNoiseModel.pdf Drm_Vendor_Modules_v1.pdf dynamic_list_box_allow_multiple_selection.pdf dynamic_password_field_background_fill.pdf dynamic_table_color_and_width.pdf EASLibrary3_5.pdf EAS_API_Reference.pdf EAS_Library_Integration_Guide.pdf Efuse process explain .pdf email_recommended.pdf embedded_attachments.pdf embedded_images.pdf encrypted.pdf feature_linearized_loading.pdf fieldsmanagement.pdf first.pdf hello_world.pdf ic_brightness_medium_24dp.pdf ic_radio_button_check

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值