• debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因


    debug - JLX12864C(ST7920-12864)液晶屏不能使用串行通讯的原因

    概述

    正在给板子写出厂测试程序, 买的12864型号是JLX12864C.
    STC官方给的例程是并行通讯, 好使.
    但是想在测试程序中改为串行通讯, 这样就不会和外接的XRAM的读写冲突.
    找了前面同学写好的串行通讯例程, 将控制引脚都改成和原理图一样的管脚, 测试不好使.
    在这里插入图片描述
    写测试程序, 单独测试P2, 看看是否写入的值和读出的值一样? 结果发现 PSB(P2^4)写入0, 读出的是1.
    PSB设置为1时, 是ST7920-12864的并行通讯方式.
    PSB设置为0时, 是ST7920-12864的串行通讯方式.
    为啥PSB无法写为0呢?

    调试

    先将ST7920-12864模块从板子上拿掉, 再单独测试P2口, 写入0, 读出是0, 写入1, 读出是1.
    这样就可以确认, 是ST7920-12864上的PSB引脚有问题, 不管如何设置, PSB都是1.
    是否在板子上上拉了? 还是直接接到了5V?

    买料的时候, 整了10块JLX12864C.
    拆一块看看, 拆完就废了, 不管了.
    在这里插入图片描述
    用显微镜和外用表配合, 可以看到:
    板子下方的排孔从右往左数, 第6个孔是PSB.
    板子下方的排孔, 左数第1个是GND, 第2个是VDD(5V)

    PSB连接到板子右上方的R4的右边.
    在这里插入图片描述
    R4原来有一颗0R电阻, 现在已经被我挑掉了.
    R2左边的焊盘和R4左边的焊盘是连着的, 和排孔上的VDD是连通的.
    R5左边和R4右边的PSB是相连的.
    R5右边是和排孔上的GND相连的.

    这样就可以分析出结果了.
    厂家给我时, 在R4上焊接了一颗0R电阻, 这样默认就是并行通讯方式.
    如果厂家不在R4上焊接电阻, 而在R5上焊接0R电阻, 这样默认就是串行通讯方式.
    厂家这么做的原因 : 可以为用户省下一根IO(PSB).

    但是也有坏处, 如果用户自己想控制并行还是串行通讯方式, 就需要自己用烙铁将R4和R5挑掉.
    当时看到这里, 就尝试将R4挑掉了. 再用前面同学写好的串行例程跑起来, 好使.

    备注

    厂家的R4电阻用0R, 如果用户做实验时, 将GPIO初始化成推挽输出后, 将PSB设置为0, 不就相当于VCC/GND短路了么? 会不会烧毁板子啊?
    感觉厂家这里的R4, 整个1K或470R的电阻都行啊, 为啥要搞成0R呢? 是不是有点考虑不周?

    拆板子时, 怕板子下面还有东西, 就先都拆干净了, 再量的. 装不起来了, 做实验的这块JLX12864C废了.
    如果以后想挑掉R4, 直接在JLX12864C背面就能看到. 不用拆模块, 动一下烙铁就好, 小事.

    END

  • 相关阅读:
    很可惜,pyinstaller不是万能的
    Postman for Mac(HTTP请求发送调试工具)v10.18.10官方版
    openstack 业务组件安装
    51单片机C语言编程网盘:深度探索与实用指南
    (十一)STM32——IO引脚复用与映射
    【PostgreSQL】PG_DUMP的文件大小元小于库占用物理空间统计
    数字探秘:用神经网络解密MNIST数据集中的数字!
    Linux 处理文件( touch 命令、cp 命令、mv 命令、rm 命令)
    1002:输出第二个整数
    UE4 粒子特效基础学习 (04-光圈效果制作)
  • 原文地址:https://blog.csdn.net/LostSpeed/article/details/128102607