一文搞懂8080协议

面包板社区 2023-01-04 20:05


什么是 8080 协议?

8080 时序也叫因特尔总线,一般应用在mcu(mpu)模式的lcd上。Inter总线控制线有四根:

  • RD:写使能

  • WR:读使能

  • DC(RS):数据/命令

  • CS:片选

LCD控制及传输数据所需要的管脚:

管脚名称功能描述
CS片选信号
DC(RS)数据或者命令管脚(1:数据读写,0:命令读写)
WRMCU(MPU)向LCD写入数据控制线,上升沿有效,写数据时 RD拉高
RDMCU (MPU) 从LCD读数据控制线,上升沿有效,读数据时,WR拉高
DB[x:0]8/9/16/18bit 双向数据总线,一般8位MCU接口用的比较多
RST硬件复位 LCD 信号
BLLCD背光信号
IM2/IM1/IM0接口控制. IM2=0 串行,IM2 =1,IM1=0,IM0=0,6800/8080 8bit 并行接口;IM1=0,IM0=1,6800/8080 16bit 并行接口;IM1=1,IM0=0,6800/8080 9bit 并行接口;IM1=1,IM0=1,6800/8080 18bit 并行接口;
P686800/8080 选择。0 表示8080,1 表示6800

读写数据

读时序图。通用时序图如下: 

读数据的过程:

  • CS 拉低,选中

  • DC/RS 为高(读数据)

  • WR 为高,禁止写

  • 在RD的上升沿,读线上的数据(D[0:7]),假设8位 8080并口

  • CS 拉高,取消片选

伪代码:

  1. LCD_CS = 0; //开始片选

  2. LCD_DC = 1; //读数据

  3. LCD_WR = 1; //禁止写

  4. LCD_RD = 0; //开始读

  5. data = DATAIN();//读取数据

  6. LCD_RD = 1; //结束读

  7. LCD_CS = 1; //结束片选

写入数据

写时序图。通用时序图如下:

写数据的过程:

  • CS为低,选中

  • RD为高, 禁止写

  • DC/RS为高(写数据,写命令拉低)

  • 在WR的上升沿,使数据写入到 驱动 IC 里面

  • CS为高,结束一组数据读取

伪代码:

  1. LCD_CS = 0; //开始片选

  2. LCD_RD = 1; //禁止读

  3. LCD_DC = 1; //写数据

  4. DATAOUT(Data); //输出数据 ,先准备好数据,然后上升沿一次性更新到lcd

  5. LCD_WR = 0; //写入开始

  6. LCD_WR = 1; //写入结束

  7. LCD_CS = 0; //结束片选

实列演示:GPIO 模拟读写时序

以GC9106 这块LCD 驱动IC为例,介绍一下,如何根据datasheet,去模拟读写操作,方便后续遇到新的屏幕,可以快速入手。事实上,大部分时候,我们的主控一般都会存在lcd控制器,支持读写操作,只需要配置寄存器即可。不过通过GPIO模拟,对整个过程会有更新的认识。

第一步:根据硬件确认屏幕所接接口,确认引脚及协议:以8080 8位并行为例

协议:8080时序 

引脚:LCD_CSLCD_RD、LCD_WRLCD_DC、LCD_Data[7:0]

第二步:根据 datasheet 阅读读写时序

  • 读时序


 驱动IC会在下降沿产生数据,主控(MCU)在上升沿从D[7:0] 读数据



整个读数据的过程,分为两步:写入一个command address, 读数据。

写入cmd: 

 读数据:根据时序图,真正读数据的过程中,第一个周期的数据是无效的,这个可以很好的解释command列表中,为何第一次数据都是dummy data

  • 写时序 


主控(MCU)会在下降沿产生数据,驱动IC在上升沿从D[7:0] 读数据 


整个写数据的阶段分为两个:写命令和写数据,唯一的区别是DC不一样。 


第三步:查看command列表。这里以读ID为列(04H) 



  • 阅读command信息

  • 根据timing,先写入一个cmd(04H)

  • 紧接着,读四次数据。

  • 舍弃第一个数据(dummy data)

  • 注意:初始状态和初始值。如果读不出来数据,可能是上电时序的问题,这个时候可以通过硬件GPIO 复位一下lcd,然后在读取数据。

  1. write_cmd(0x04);

  2. read_data(); //dummy data

  3. ID0 = read_data();

  4. ID1 = read_data();

  5. ID2 = read_data();

第四步:模拟基本读写时序操作。根据通用8080协议时序即可 

此处用伪代码表示思路即可:

  1. static void write_lcd_dc(int isCmd, unsignedint value)

  2. {

  3. LCD_CS = 0; /* 拉低 */

  4. LCD_RD = 1; /* 禁止读 */

  5. if(isCmd == 1) {

  6. LCD_DC = 0; /* 拉低 写命令 */

  7. } else{

  8. LCD_DC = 1; /* 拉高 写数据 */

  9. }

  10. data_out(value); /* 准备数据 */

  11. LCD_WR = 0; /* 拉低 */

  12. delay10us(); /* 上升沿更新数据*/

  13. LCD_WR = 1; /* 拉高*/

  14. delay10us();

  15. LCD_CS = 1; /*拉低, 取消片选*/

  16. }


  17. static void data_out(unsignedint value)

  18. {

  19. /* 假设 data[0:8] 在一组GPIO上,并且连续

  20. * 设置data[0:8] 为输出状态,切默认都输出0

  21. */

  22. int i = 0;

  23. for(int i = 0; i < 8; i++) {

  24. LCD_Data[i] = ((value >> i) & 0x01);

  25. }

  26. }


  27. static unsigned int read_lcd_data()

  28. {

  29. int ret = 0;

  30. LCD_CS = 0; /* 拉低,选中 */

  31. LCD_WR = 1; /* 拉高, 禁止写 */

  32. LCD_DC = 1; /* 拉高,表明将要读数据 */

  33. LCD_RD = 0; /* 拉低, 开始读数据*/

  34. delay10us();

  35. ret = data_In(); /* 读数据*/

  36. delay10us();

  37. LCD_RD = 1;/* 拉高, 结束读数据 */

  38. delay10us();

  39. LCD_CS = 1; /* 取消片选*/


  40. return ret;

  41. }


  42. static unsigned int data_in()

  43. {

  44. int ret = 0;

  45. /* 假设 data[0:8] 在一组GPIO上,并且连续

  46. * 设置data[0:8] 为输入状态

  47. */

  48. int i = 0;

  49. for(int i = 0; i < 8; i++) {

  50. ret |= (gpio_get_value(LCD_Data[i]) << i);

  51. }


  52. return ret ;

  53. }

总结

本文介绍了8080协议的基础时序,以及通用的读写操作,旨在了解学习8080协议。然后通过实际的lcd 驱动IC 应用举例,介绍如何阅读 lcd datasheet.通过GPIO 模拟读写操作,达到对整个协议的理解。

事实上,大多数情况下,我们不需要亲自模拟时序,调试一款新屏时,一般通过配置lcd控制器,会自动模拟时序,只需要将原厂的setting,按照对应的规则,加入到驱动中即可。当然,也可以通过gpio模拟读写,将lcd的setting,通过自己模拟的读写接口,设进去。


END


【社区活动】工程师2022年终总结

寒冬来临,2022也接近尾声,这一年,你经历了哪些事情,人生轨迹发生了哪些变化?或是从你的职业角度,对来年又有哪些想法,欢迎畅所欲言,分享交流。


活动时间:即日起——2月1日


要求:

1、在面包板社区发表自己的年终总结,标题以【2022年终总结】开头。

2、内容与电子行业相关。

3、必须原创,字数不限


活动奖励:

一等奖,每人奖励200元京东E卡一张。

二等奖,每人奖励50元京东E卡一张。

优秀奖,每人奖励30元京东E卡一张。

所有参与者均可获得50E币奖励![ E币可在商城兑换奖品 ]


👇👇点击阅读原文,看更多工程师总结

面包板社区 面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
评论 (0)
  • 人形机器人产业节奏预估:2024年原型机元年,2025年小规模量产元年。当宇树科技H1人形机器人以灵动的手部动作在春晚舞台上演创意融合舞蹈《秧Bot》,舞出"中国智造"时,电视机前十几亿观众第一次深刻意识到:那个需要仰望波士顿动力的时代正在落幕。*图源:宇树科技短短数周后,宇树G1机器人又用一段丝滑的街舞在网络收割亿级播放量,钢铁之躯跳出赛博朋克的浪漫。2月11日,宇树科技在其京东官方旗舰店上架了两款人形机器人产品,型号分别为Unitree H1和G1。2月12日,9.9万元的G1人形机器人首批
    艾迈斯欧司朗 2025-03-22 21:05 104浏览
  • 在人工智能与物联网技术蓬勃发展的今天,语音交互已成为智能设备的重要功能。广州唯创电子推出的WT3000T8语音合成芯片凭借其高性能、低功耗和灵活的控制方式,广泛应用于智能家居、工业设备、公共服务终端等领域。本文将从功能特点、调用方法及实际应用场景入手,深入解析这款芯片的核心技术。一、WT3000T8芯片的核心功能WT3000T8是一款基于UART通信的语音合成芯片,支持中文、英文及多语种混合文本的实时合成。其核心优势包括:高兼容性:支持GB2312/GBK/BIG5/UNICODE编码,适应不同
    广州唯创电子 2025-03-24 08:42 111浏览
  • 核心板简介创龙科技 SOM-TL3562 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 ARM C ortex-A53 + 单核 ARM Cortex-M0 全国产工业核心板,主频高达 2.0GHz。核心板 CPU、R OM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率 100%。核心板通过 LCC 邮票孔 + LGA 封装连接方式引出 MAC、GMAC、PCIe 2.1、USB3.0、 CAN、UART、SPI、MIPI CSI、MIPI
    Tronlong 2025-03-24 09:59 113浏览
  • 在智慧城市领域中,当一个智慧路灯项目因信号盲区而被迫增设数百个网关时,当一个传感器网络因入网设备数量爆增而导致系统通信失效时,当一个智慧交通系统因基站故障而导致交通瘫痪时,星型网络拓扑与蜂窝网络拓扑在构建广覆盖与高节点数物联网网络时的局限性便愈发凸显,行业内亟需一种更高效、可靠与稳定的组网技术以满足构建智慧城市海量IoT网络节点的需求。星型网络的无线信号覆盖范围高度依赖网关的部署密度,同时单一网关的承载设备数量有限,难以支撑海量IoT网络节点的城市物联系统;而蜂窝网络的无线信号覆盖范围同样高度依
    华普微HOPERF 2025-03-24 17:00 89浏览
  • 文/Leon编辑/cc孙聪颖‍“无AI,不家电”的浪潮,正在席卷整个家电行业。中国家电及消费电子博览会(AWE2025)期间,几乎所有的企业,都展出了搭载最新AI大模型的产品,从电视、洗衣机、冰箱等黑白电,到扫地机器人、双足机器人,AI渗透率之高令人惊喜。此番景象,不仅让人思考:AI对于家电的真正意义是什么,具体体现在哪些方面?作为全球家电巨头,海信给出了颇有大智慧的答案:AI化繁为简,将复杂留给技术、把简单还给生活,是海信对于AI 家电的终极答案。在AWE上,海信发布了一系列世俱杯新品,发力家
    华尔街科技眼 2025-03-23 20:46 69浏览
  • 今年全国两会期间,“体重管理”和“育儿”整体配套政策引发了持久广泛关注。从“吃”到“养”,都围绕着国人最为关心的话题:健康。大家常说“病从口入”,在吃这件事上,过去大家可能更多是为了填饱肚子,如今,消费者从挑选食材到厨电都贯彻着健康的宗旨,吃得少了更要吃得好了。这也意味着在新消费趋势下,谁能抓住众人的心头好,就能带起众人的购买欲望,才能在新一轮竞争中脱颖而出。作为家电行业的风向标,在2025年中国家电及消费电子博览会(AWE)上,这两个话题也被媒体和公众频繁提及。深耕中国厨房三十余年的苏泊尔再次
    华尔街科技眼 2025-03-22 11:42 47浏览
  • 在智能终端设备快速普及的当下,语音交互已成为提升用户体验的关键功能。广州唯创电子推出的WT3000T8语音合成芯片,凭借其卓越的语音处理能力、灵活的控制模式及超低功耗设计,成为工业控制、商业终端、公共服务等领域的理想选择。本文将从技术特性、场景适配及成本优势三方面,解析其如何助力行业智能化转型。一、核心技术优势:精准、稳定、易集成1. 高品质语音输出,适配复杂环境音频性能:支持8kbps~320kbps宽范围比特率,兼容MP3/WAV格式,音质清晰自然,无机械感。大容量存储:内置Flash最大支
    广州唯创电子 2025-03-24 09:08 118浏览
  • 文/Leon编辑/cc孙聪颖‍去年,百度公关部副总裁璩静的争议言论闹得沸沸扬扬,最终以道歉离职收场。时隔一年,百度的高管又出事了。近日,“百度副总裁谢广军女儿开盒孕妇”事件登上热搜,持续发酵,引起网友对百度数据安全性的怀疑。3月19日晚间,百度正式发布声明,表示坚决谴责窃取和公开他人隐私的网络暴力行为,同时强调,百度内部实施匿名化、假名化处理,经查验,泄露数据并非来自百度,而是海外的社工库,“当事人承认家长给她数据库”为不实信息,针对相关谣言百度已经向公安机关报案。然而,并非所有网友都对这份声明
    华尔街科技眼 2025-03-21 21:21 81浏览
  •        当今社会已经步入了知识经济的时代,信息大爆炸,新鲜事物层出不穷,科技发展更是一日千里。知识经济时代以知识为核心生产要素,通过创新驱动和人力资本的高效运转推动社会经济发展。知识产权(IP)应运而生,成为了知识经济时代竞争的核心要素,知识产权(Intellectual Property,IP)是指法律赋予人们对‌智力创造成果和商业标识等无形财产‌所享有的专有权利。其核心目的是通过保护创新和创意,激励技术进步、文化繁荣和公平竞争,同时平衡公共利益与
    广州铁金刚 2025-03-24 10:46 43浏览
  • 无论你是刚步入职场的新人,还是已经有几年经验的职场老手,培养领导力都是职业发展中一个至关重要的环节。拥有良好的领导能力不仅能让你从人群中脱颖而出,也能让你在团队中成为一个值得信赖、富有影响力的核心成员。什么是领导力?领导力并不仅仅意味着“当老板”或者“发号施令”。它更多地是一种能够影响他人、激发团队潜能,并带领大家实现目标的能力。一位优秀的领导者需要具备清晰的沟通能力、解决问题的能力,以及对人心的深刻理解。他们知道如何激励人心,如何在压力下保持冷静,并能在关键时刻做出正确的决策。如何培养领导力?
    优思学院 2025-03-23 12:24 66浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦