共2条
1/1 1 跳转至页
EasyARM2200,8019 针对EasyARM2200+8019的地址寄存器以及其它问题,请各位高手帮忙


问
硬件连接是
2200.a1----8019.sa0
2200.a2----8019.sa1
2200.a3----8019.sa2
2200.a4----8019.sa3
2200.a5----8019.sa4
2200.a22---8019.sa8
2200.cs3---8019.sa5
#define NET_BASE_ADDR 0X83400000
void WriteToNet(uint8 ADDR_16,uint16 WRITEDATA)
{
(*((volatile unsigned short *) NET_BASE_ADDR+ADDR_16))=WRITEDATA;//0x83400000
}
问题1: A1接SA0,为什写寄存器时,寄存器地址不×2呢,比如写网卡MAC地址时,由于是A1对应A0,所以,网卡MAC地址地址在8019上为1 2 3 4 5 6对应到22xx上,就是2 4 6 8 10 12 14 16了,需要ZLG解释一下;
问题2: 对于芯片8019的96脚,当RSTDV的下降沿到来时,此脚若为高,则为16位地址方式,此脚若为低,则8位地址方式,对于开发板,此脚是由10k电阻下拉,即上电时为8位方式,但是CPU是配置成16位方式,这时,同样引起问题一上的问题,地址线是怎么操作8019的寄存器的;
问题3:资料上说8019的DMA必须在16位地址方式下才能工作,请问ZLG,8019初始化时,是如何初始化成16位的,还请明示。
问题4:开发板上,8019复位时,先进行硬件复位,然后进行软件复位,如果不进行硬件复位,会造成什么样的后果呢?
问题5: 对于函数void Send_Packet(struct _pkst *TxdData)中,重发数据处理部分,为什么要重发6次,当CPU将数据写进8019后,8019向物理层写数据时,如果出现冲突,必须由CPU来重发吗?这么冲突的可能性有多大?CSMA (载波信号多路侦听)的冲突可能性有多大?我参看了其它几个8019的移置程序,这个地方没有采用重发机制。 答 1: 没人帮忙呀 答 2: 请大家帮我分析一下呀,我不知道错在哪呀 答 3: 16位的地址指针加1 实际上就是加2字节地址 答 4: 但是从下面代码看,它是8位指针呀void SetMacID(uint8 * mac_ptr)
{
//把MAC地址写入MY——MAC——ID中
page(1);
WriteToNet(1 , *mac_ptr);
mac_ptr++;
WriteToNet(2 , *mac_ptr);
mac_ptr++;
WriteToNet(3 , *mac_ptr);
mac_ptr++;
WriteToNet(4 , *mac_ptr);
mac_ptr++;
WriteToNet(5 , *mac_ptr);
mac_ptr++;
WriteToNet(6 , *mac_ptr);
page(0);
}
比如WriteToNet(1 , *mac_ptr);,这个1对应的SA0~SA5的线状态是多少?这时,CPU的A0没有工作,这个地址1是怎么工作的,我还是不明白呀
2200.a1----8019.sa0
2200.a2----8019.sa1
2200.a3----8019.sa2
2200.a4----8019.sa3
2200.a5----8019.sa4
2200.a22---8019.sa8
2200.cs3---8019.sa5
#define NET_BASE_ADDR 0X83400000
void WriteToNet(uint8 ADDR_16,uint16 WRITEDATA)
{
(*((volatile unsigned short *) NET_BASE_ADDR+ADDR_16))=WRITEDATA;//0x83400000
}
问题1: A1接SA0,为什写寄存器时,寄存器地址不×2呢,比如写网卡MAC地址时,由于是A1对应A0,所以,网卡MAC地址地址在8019上为1 2 3 4 5 6对应到22xx上,就是2 4 6 8 10 12 14 16了,需要ZLG解释一下;
问题2: 对于芯片8019的96脚,当RSTDV的下降沿到来时,此脚若为高,则为16位地址方式,此脚若为低,则8位地址方式,对于开发板,此脚是由10k电阻下拉,即上电时为8位方式,但是CPU是配置成16位方式,这时,同样引起问题一上的问题,地址线是怎么操作8019的寄存器的;
问题3:资料上说8019的DMA必须在16位地址方式下才能工作,请问ZLG,8019初始化时,是如何初始化成16位的,还请明示。
问题4:开发板上,8019复位时,先进行硬件复位,然后进行软件复位,如果不进行硬件复位,会造成什么样的后果呢?
问题5: 对于函数void Send_Packet(struct _pkst *TxdData)中,重发数据处理部分,为什么要重发6次,当CPU将数据写进8019后,8019向物理层写数据时,如果出现冲突,必须由CPU来重发吗?这么冲突的可能性有多大?CSMA (载波信号多路侦听)的冲突可能性有多大?我参看了其它几个8019的移置程序,这个地方没有采用重发机制。 答 1: 没人帮忙呀 答 2: 请大家帮我分析一下呀,我不知道错在哪呀 答 3: 16位的地址指针加1 实际上就是加2字节地址 答 4: 但是从下面代码看,它是8位指针呀void SetMacID(uint8 * mac_ptr)
{
//把MAC地址写入MY——MAC——ID中
page(1);
WriteToNet(1 , *mac_ptr);
mac_ptr++;
WriteToNet(2 , *mac_ptr);
mac_ptr++;
WriteToNet(3 , *mac_ptr);
mac_ptr++;
WriteToNet(4 , *mac_ptr);
mac_ptr++;
WriteToNet(5 , *mac_ptr);
mac_ptr++;
WriteToNet(6 , *mac_ptr);
page(0);
}
比如WriteToNet(1 , *mac_ptr);,这个1对应的SA0~SA5的线状态是多少?这时,CPU的A0没有工作,这个地址1是怎么工作的,我还是不明白呀
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 | |
汽车电子中巡航控制系统的使用被打赏10分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏100分 | |
分享汽车电子中巡航控制系统知识被打赏10分 | |
分享安全气囊系统的检修注意事项被打赏10分 |