zoukankan      html  css  js  c++  java
  • PDIUSBD12管脚简述

    PDIUSBD12管脚简述

     

    1         2

    PDIUSBD12管脚及简述

     

    3

    PDIUSBD12读写时序图

     

    CS_N是片选信号,当片选信号位低电平时,下面的操作才有效。由于板子上将CS_N接地,所以它一直保持低电平。

    A0是地址线,用于选择是命令还是数据。A0=1,表示操作的是命令,A0=0,表示操作的是数据。

    WR_N是写信号,表示WR_N的上升沿将数据写入到芯片中。数据必须在上升沿的前后稳定地保持一段时间(图中的tWDSU和tWDH)才能可靠写入。

    RD_N是读信号,在读数据时,应该先将RD_N置低,等待一段时间(tRLDD)后,数据将出现在DATA[7:0]上,这时可以读数据。读取完毕后,将RD_N置高。

     

    写命令:

    将A0置高(即设置为命令状态) ——> 将WR_N置低 ——> 将命令放到数据总线上 ——> 将WR_N置高。

        void D12WriteCommand(uint8 command)
        {
            D12SetCommandAddr();
            D12ClrWr();
            D12SetPortOut();
            D12SetData(command);
            D12SetWr();
            D12SetPortIn();
        }

     

    写字节:

    将A0置低(即设置为数据状态) ——> 将WR_N置低 ——> 将数据保存到数据管脚对应寄存器上 ——> 将WR_N置高。

        void D12WriteByte(uint8 value)
        {
            D12SetDataAddr();
            D12ClrWr();
            D12SetPortOut();
            D12SetData(value);
            D12SetWr();
            D12SetPortIn();
        }

     

    读字节:

    将A0置低(即设置为数据状态) ——> 将RD_N置低 ——> 读取数据管脚对应寄存器上数据 ——> 将RD_N置高。

        uint8 D12ReadByte()
        {
            uint8 tmp;
            
            D12SetDataAddr();
            D12ClrRd();
            
            tmp = D12GetData();
            
            D12SetRd();
            
            return tmp;
        }

     

    参考资料:《圈圈教你玩USB》

  • 相关阅读:
    visual studio disable git
    app常见性能测试点
    App测试流程及测试点(个人整理版)
    APP测试要点
    APP端测试常见的功能点
    一文搞懂性能测试常见指标
    为什么会有生产bug?
    线上出了bug,是谁的责任?
    生产上线发现重大Bug的思考
    项目上线后出现Bug,该如何处理?
  • 原文地址:https://www.cnblogs.com/sheshiji/p/3590836.html
Copyright © 2011-2022 走看看