• 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》

  • 相关阅读:
    RabbitMQ教程
    设置文件夹共享及所有访问权限
    一键操作IIS
    C#操作IIS服务
    【01】浅谈HTTP在WebApi开发中的运用
    Socket通信原理
    C# 通过JObject解析json对象
    MVC小知识整理
    Global.asax文件的作用
    iOS开发日记9-终端命令
  • 原文地址:https://www.cnblogs.com/sheshiji/p/3590836.html
Copyright © 2020-2023  润新知