打印
[AVR单片机]

ATMEGA32读写CS5460A

[复制链接]
3762|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就是不工作。

SPI.rar

1.4 KB

使用特权

评论回复
地板
ningling_21| | 2016-10-27 10:37 | 只看该作者
用示波器观察数据线波形,看有无异常

使用特权

评论回复
5
杨爱林林| | 2016-10-27 11:06 | 只看该作者
用的模拟还是硬件的,模拟的话,就把那些delay延时放大或缩小。

使用特权

评论回复
6
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);            // 返回读出的一字节
}

使用特权

评论回复
7
qhcmcu|  楼主 | 2016-10-28 09:32 | 只看该作者
感谢各位的回复。错误出在 if(SDO == 1)改成 if( SDO ).时序可根据6楼的意见修改,也可以不改,因为根据CS5460A读写时序图SCLK置低后大于t8(50ns)时间数据SDO就已经建立。

使用特权

评论回复
8
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)都可以了


使用特权

评论回复
9
houbin1234| | 2017-5-9 11:22 | 只看该作者
ATMEGA32优势现货供应  电话13717076781侯斌       QQ657290025

使用特权

评论回复
10
houbin1234| | 2017-5-9 11:23 | 只看该作者
ATMEGA32优势现货供应  电话13717076781侯斌       QQ657290025

使用特权

评论回复
11
sanzi666| | 2021-4-16 15:03 | 只看该作者
CS5460A能不能测试出电路的有功功率和无功功率,及电流啊

使用特权

评论回复
12
zwsam| | 2022-6-1 09:10 | 只看该作者
学习了!

使用特权

评论回复
13
zwsam| | 2022-6-2 13:06 | 只看该作者
ok

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

45

主题

86

帖子

1

粉丝