[AVR单片机] ATMEGA32读写CS5460A

[复制链接]
4189|12
 楼主| qhcmcu 发表于 2016-10-26 16:03 | 显示全部楼层 |阅读模式
大家好!请问单片机与CS5460A连接脚SDO,SDI,CS,SCLK,RESET需要加上拉电阻吗?用89C58单片机读写CS5460A一切正常,现用ATMEGA32读写CS5460A就没反应,DRDY也读不到。不知道什么原因,请大虾帮忙分析下?
fankaimrk 发表于 2016-10-26 20:57 | 显示全部楼层
既然89C58没问题一切正常,移植过来应该不会有问题啊,配置好AVR的GPIO端口,输入输出的,好好查查,贴程序
 楼主| qhcmcu 发表于 2016-10-27 10:24 | 显示全部楼层
输入输出口也设置了,CS5460A就是不工作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ningling_21 发表于 2016-10-27 10:37 | 显示全部楼层
用示波器观察数据线波形,看有无异常
杨爱林林 发表于 2016-10-27 11:06 | 显示全部楼层
用的模拟还是硬件的,模拟的话,就把那些delay延时放大或缩小。
fankaimrk 发表于 2016-10-27 13:58 | 显示全部楼层
读取部分的程序, 你的时钟还没拉高呢,怎么就读输入口了呢?
for(i=3;i>0;i--)
    {
        for(j=7;j!=0xFF;j--)
        {
            SCLK_L();
            _delay_us(5);
            
            if(SDO == 1)
                *ptr |= (1<<j);
            else
                *ptr &= ~(1<<j);
            
            if(j==0)
                SDI_L();
            else
                SDI_H();
            
            _delay_us(5);
            SCLK_H();                 //拉高之后,主机数据移出,从机数据移入,检测输入端口
            _delay_us(5);
        }
        ptr++;
    }

另外的参考:
uchar SPI_RW(uchar byte)
{
uchar i;
    for(i=0; i<8; i++)          // 循环8次
    {
     MOSI = (byte & 0x80);   // byte最高位输出到MOSI
     byte <<= 1;             // 低一位移位到最高位
     SCK = 1;                // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据///////拉高之后,读取MISO电平
     byte |= MISO;        // 读MISO到byte最低位
     SCK = 0;             // SCK置低
    }
    return(byte);            // 返回读出的一字节
}
 楼主| qhcmcu 发表于 2016-10-28 09:32 | 显示全部楼层
感谢各位的回复。错误出在 if(SDO == 1)改成 if( SDO ).时序可根据6楼的意见修改,也可以不改,因为根据CS5460A读写时序图SCLK置低后大于t8(50ns)时间数据SDO就已经建立。
fankaimrk 发表于 2016-10-28 11:48 | 显示全部楼层
嗯啊,#define  SDO        (PINC & (1<<SPI_SDO)) //PC6
SDO是8位,非零就行了,==1,反而不对了,应该是 if(SDO == 0x40)也行,
要是IAR编写的话,if(PINC_PINC6)  或者 if(1==PINC_PINC6)都可以了


houbin1234 发表于 2017-5-9 11:22 | 显示全部楼层
ATMEGA32优势现货供应  电话13717076781侯斌       QQ657290025
houbin1234 发表于 2017-5-9 11:23 | 显示全部楼层
ATMEGA32优势现货供应  电话13717076781侯斌       QQ657290025
sanzi666 发表于 2021-4-16 15:03 | 显示全部楼层
CS5460A能不能测试出电路的有功功率和无功功率,及电流啊
zwsam 发表于 2022-6-1 09:10 | 显示全部楼层
学习了!
zwsam 发表于 2022-6-2 13:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

86

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部