硬汉嵌入式论坛

 找回密码
 立即注册
查看: 22633|回复: 15
收起左侧

【安富莱】4.3寸屏和7寸屏模块开发记录(RA8875方案)

[复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2012-6-16 21:42:24 | 显示全部楼层 |阅读模式
市面主流4.3寸屏(480X272) 和7寸屏(800x480)的接口

在国产手机、MP4、平板电脑领域,主流的4.3寸屏和7寸屏的接口定义是一样的,FPC-40P-0.5MM 扁平电缆连接。这种接口的屏很好购买,有很多厂家生产。
下面是接口定义,不同厂家的屏之间最大的区别是对背光电压电流的要求不同。

LCD-40P.PNG
    [li]LEDA 、LEDK :LED背光供电接口,LEDA接正极、LEDK接负极,屏内部一般是几个白色LED串联,或几个串联后在并联。所需电压一般10V以上、甚至20V以上,电流20mA-150mA不等,因此需要LED背光升压驱动芯片。[/li][li]VCC:面板的供电电源,电流不大,一般是3.3V[/li][li]RGB:24bit数据口,R = 红色; G = 绿色; B = 蓝色;STM32的总线是16位,不足以驱动24位颜色,一般我们接成 565模式,即R取5bit,G取6bit,B取5bit,未用的低bit接地,可以实现64K色,对于一般的应用是足够了。[/li][li]CLK:像素时钟,由RA8875提供[/li][li]DISP:显示开关ON/OFF,可有CPU的GPIO控制,也可用RA8875的扩展GPIO控制[/li][li]HSYNC:水平同步信号,由RA8875提供[/li][li]VSYNC:水平同步信号,由RA8875提供[/li][li]DEN:数据时能信号,由RA8875提供[/li][li]XR:电阻式触摸屏信号-右[/li][li]XD:电阻式触摸屏信号-下[/li][li]XL:电阻式触摸屏信号-左[/li][li]XU:电阻式触摸屏信号-上[/li]
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-6-16 23:56:52 | 显示全部楼层
2012-06-16   4.3寸模块电路板布局:
4-3寸模块布局.PNG
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-6-27 21:08:37 | 显示全部楼层
2012-6-27  4.3寸转接板PCB 已回,已经焊接2块样品,正在测试中...

由“Ex008-4.3寸TFT浏览中文点阵字库例程”作为基础进行调试,仅修改 bsp_tft_lcd.c 和 bsp_tft_lcd.h 这2个文件

4.3寸屏模块采用RA8875驱动芯片,硬件上设置为80xx并口方式。

查阅一下资料。RA8875 可以透过缓存器SYSR 的Bit [1:0] 来决定MCU 数据总线的宽度,当Bit [1:0] = 00
时,数据总线的宽度为8 位,当Bit [1:0] = 11 时,数据总线的宽度为16 位。



/*
  配置系统控制寄存器。 中文pdf 第18页:
  bit3:2 色彩深度设定 (Color Depth Setting)
   00b : 8-bpp 的通用TFT 接口, i.e. 256 色。
   1xb : 16-bpp 的通用TFT 接口, i.e. 65K 色。  【选这个】
  bit1:0 MCUIF 选择
   00b : 8-位MCU 接口。
   1xb : 16-位MCU 接口。 【选这个】
*/
LCD_WriteReg(0x10, (1 <<3 ) | (1 << 1)) ; /* 配置16位MCU并口,65K色 */
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-6-28 20:35:32 | 显示全部楼层
RA8875 外部的晶振确实不容易起振,有时正常,有时不正常。先调通软件再说,过2天抽时间改改晶振两边的电阻和电容,如果搞不定就换有源晶振。

当晶振未启振时,0x88和0x89两个PLL设定寄存器是可以写入和读出的。但是0x10寄存器写入和读出数值不同。当晶振启动后,能够读写的寄存器均访问正常。

另外,RA8875的RS口线(寄存器选择,连STM32的A0)的逻辑电平和其它的控制器(比如5420,4001等)是反的。
#define LCD_BASE        ((uint32_t)(0x60000000 | 0x0C000000))

#define LCD_REG            *(__IO uint16_t *)(LCD_BASE)
#define LCD_RAM            *(__IO uint16_t *)(LCD_BASE + 2)

#define RA8875_REG        *(__IO uint16_t *)(LCD_BASE + 2)
#define RA8875_RAM        *(__IO uint16_t *)(LCD_BASE )
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-6-29 08:32:45 | 显示全部楼层
4.3寸LCD模块的背光是8个白光LED串联,由升压电路(实测22.5V左右)为LED供电。通过调节PWM占空比可以控制白光LED的亮度。
PWM信号可以由STM32的PWM口产生也可以由RA8875的PWM1口产生。硬件缺省选择RA8875的PWM1口控制。

/*
*********************************************************************************************************
*        函 数 名: SetBackLight_by8875
*        功能说明: 配置RA8875芯片的PWM1相关寄存器,控制LCD背光
*        形    参:_bright 亮度,0是灭,255是最亮
*        返 回 值: 无
*********************************************************************************************************
*/
static void SetBackLight_by8875(uint8_t _bright)
{
        if (_bright == 0)
        {
                /* 关闭PWM, PWM1引脚缺省输出LOW
                备注:如果直接将占空比寄存器P1DCR设置为0,实际输出的PWM波形还是存在很窄的脉冲,因此亮度0值单独
                处理,这样的话,关闭PWM也可以起到省电的目的。
                 */
                RA8875_WriteReg(0x8A, 0);
        }
        else if (_bright == BRIGHT_MAX)        /* 最大亮度 */
        {
                /* 关闭PWM, PWM1引脚缺省输出HIGH */
                /* 实际测量,不对255最大亮度做特殊处理,PWM波形也能够输出恒定高电平 */
                RA8875_WriteReg(0x8A, 1 << 6);
        }
        else
        {
                /* 使能PWM1, 进行占空比调节 */

                /*         REG[8Ah] PWM1 Control Register (P1CR)

                        Bit7 脉波宽度调变 (PWM1) 设定
                                0 : 关闭,此状态下,PWM1 输出准位依照此缓存器Bit6 决定。
                                1 : 开启。

                        Bit6 PWM1 关闭时的准位
                                0 : 当PWM 关闭或于睡眠模式时,PWM1 输出为”Low” 状态。
                                1 : 当PWM 关闭或于睡眠模式时,PWM1 输出为”High” 状态。

                        Bit5 保留

                        Bit4 PWM1 功能选择
                                0 : PWM1 功能。
                                1 : PWM1 固定输出一频率为外部晶体振荡器Clock (Fin) 频率 1 /16 的Clock

                        Bit3-0  PWM1 电路的频率来源选择PWM_CLK        【不是PWM输出频率】
                                0000b : SYS_CLK / 1 1000b : SYS_CLK / 256
                                0001b : SYS_CLK / 2 1001b : SYS_CLK / 512
                                0010b : SYS_CLK / 4 1010b : SYS_CLK / 1024
                                0011b : SYS_CLK / 8 1011b : SYS_CLK / 2048
                                0100b : SYS_CLK / 16 1100b : SYS_CLK / 4096
                                0101b : SYS_CLK / 32 1101b : SYS_CLK / 8192
                                0110b : SYS_CLK / 64 1110b : SYS_CLK / 16384
                                0111b : SYS_CLK / 128 1111b : SYS_CLK / 32768

                                “SYS_CLK” 代表系统频率, 例如SYS_CLK 为20MHz, 当Bit[3:0] =0001b 时,PWM1 频率来源为10MHz。

                                对于安富莱的4.3寸模块,SYS_CLK =  68.75MHz
                                Bit3-0 选择8时,PWM_CLK = 68.75MHz / 256 = 0.2685546875 MHz = 268.55KHz;
                                实际输出的PWM波形频率 = PWM_CLK / 256 = 1.049kHz。【用示波器已验证,PWM频率很准】
                */

                RA8875_WriteReg(0x8A, (1 << 7) | 8);

                /* REG[8Bh] PWM1 Duty Cycle Register (P1DCR) */

                RA8875_WriteReg(0x8B, _bright);
        }
}
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-6-29 22:51:01 | 显示全部楼层
首块RA8875转接板照片; 49S贴片晶振还没到货,临时飞的插件晶振。 可以直接插到安富莱STM32-V2和V3的开发板上。
4.3寸和7寸转接板的原理图是一样的,仅PCB大小的不同。
顺便备份一下显示初步OK的代码   Ex008-TFT浏览中文点阵字库例程(V2.1_支持4.3寸和7寸屏)-临时备份.rar (661 KB, 下载次数: 798)
RA8875转接版样板.jpg

下面的是V2开发板配3.0寸、4.3寸和7寸的对比照
这是STM32-V2开发板标配的3.0寸屏:
3.0寸屏.jpg

4.3寸模块插到V2开发板上:
4.3寸屏.jpg

7寸屏直接插到4.3寸转接板上也可以工作:
7寸屏.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2012-7-2 16:34:17 | 显示全部楼层
非常期待成品,大概什么时候就可以卖了。
回复

使用道具 举报

11

主题

63

回帖

101

积分

初级会员

积分
101
发表于 2012-7-28 15:28:48 | 显示全部楼层
正需要呢,嘿嘿,不错
回复

使用道具 举报

11

主题

63

回帖

101

积分

初级会员

积分
101
发表于 2012-8-10 15:23:39 | 显示全部楼层

回 armfly 的帖子

armfly:RA8875 外部的晶振确实不容易起振,有时正常,有时不正常。先调通软件再说,过2天抽时间改改晶振两边的电阻和电容,如果搞不定就换有源晶振。

当晶振未启振时,0x88和0x89两个PLL设定寄存器是可以写入和读出的。但是0x10寄存器写入和读出数值不同。当晶振启动后,能够读写的寄存 .. (2012-06-28 20:35) 
能提供下原理图吗?谢谢
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2012-8-10 16:00:32 | 显示全部楼层
购买我们的4.3寸或7寸模块 可以提供原理图
回复

使用道具 举报

1

主题

10

回帖

13

积分

新手上路

积分
13
发表于 2012-8-19 08:21:52 | 显示全部楼层
[s:151]
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
QQ
发表于 2012-9-18 08:38:23 | 显示全部楼层
网上有8875显示的方案..  对里面的触屏部分感觉很疑惑..  没找到根据..  他们是用定时器做的,我想用中断做..  效果不好..  还有8875芯片的触屏部分会不会单独坏掉..  还有,对于大屏幕的校准有什么好的方法吗?  是不是校准好了,对单独区域再临时补偿..
回复

使用道具 举报

7

主题

21

回帖

42

积分

新手上路

积分
42
QQ
发表于 2012-9-18 08:40:23 | 显示全部楼层
想交流一下 8875   QQ460584976
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2013-11-30 10:10:30 | 显示全部楼层

回 maxiang615 的帖子

maxiang615:你好,你们现在还有4.3的ra8875方案的屏,有的话怎么联系你?QQ:935939543 (2013-11-30 08:46) 
淘宝:http://armfly.taobao.com/search. ... p;amp;queryType=cat
回复

使用道具 举报

3

主题

25

回帖

3

积分

新手上路

积分
3
发表于 2013-12-3 18:21:09 | 显示全部楼层
[s:152]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 19:53 , Processed in 0.382921 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表