共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年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
分享汽车通信和多媒体总线结构被打赏20分 | |
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
NUCLEO-U083RC学习历程38+串口通过队列的方式输出两个字符串被打赏20分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
分享电控悬架的结构与工作原理(一)被打赏20分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 |