|
firefly-rk3288 SPI OLED 小屏驱动
发表于 2016-2-18 11:54:25
浏览:264090
|
回复:127
打印
只看该作者
[复制链接]
楼主
本帖最后由 madman 于 2016-2-18 12:01 编辑
刚好手头上有个OLED的小屏,就写了个小驱动尝试了下,学习下spi的接口。还是蛮好玩的这种小屏,有以前玩单片机的感觉;P。是在3288 android4.4 pad版的基础上写的,因为这个oled小屏是3线spi模式的(这里的3线只是没有接rx线是了),驱动还是按照通用的4线写的,也就是这里只验证了发数据。比较要注意下的是数据的大端小端格式的问题,还是拿示波器把数据一个个抓出来才发现的。不过也留了收数据的接口,应该也差不多的。刚好有可以接发设备的朋友的可以试试。
下面是dts的配置和驱动的代码:- &spi0 {
- status = "okay";
- max-freq = <48000000>;
- spidev@00 {
- compatible = "spi,oled";
- reg = <0x00>;
- spi-max-frequency = <48000000>;
- spi-cpha = <1>;
- spi-cpol = <1>;
- poll_mode = <0>;
- type = <0>;
- //enable_dma = <1>;
- spi-rst = <&gpio5 GPIO_C0 GPIO_ACTIVE_LOW>;
- spi-dc = <&gpio7 GPIO_B1 GPIO_ACTIVE_LOW>;
- };
复制代码 CPOL:表示时钟信号的初始电平的状态,0为低电平,1为高电平。
CPHA:表示在哪个时钟沿采样,0为第一个时钟沿采样,1为第二个时钟沿采样
spi-max-frequency:此处设置spi使用的最高频率。
spidev@00:由于本例子使用的是SPI0,且使用CS0,故此处设为00,如果使用CS1,则设为01。
具体wiki上有
下面是oled的效果{:3_51:},虽然有点小~:
|
|