共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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |