0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

DM9000單芯片快速以太網(wǎng)控制器簡介

嵌入式技術(shù) ? 來源:嵌入式技術(shù) ? 作者:嵌入式技術(shù) ? 2022-06-01 09:08 ? 次閱讀

1.DM9000簡介

?DM9000 是一款完全集成的、性價比高、引腳數(shù)少、帶有通用處理器接口的單芯片快速以太網(wǎng)控制器。 自 帶一個 10/100M PHY 和 4K 雙字的 SRAM ,DM9000A 為適應各種處理器提供了 8 位、16 位數(shù)據(jù)接口訪問 內(nèi)部存儲器,DM9000 擁有自動協(xié)商功能。DM9000 特性如下:
1.集成自適應 10/100M 收發(fā)器。
2.內(nèi)置 16k 字節(jié)的 SRAM。
3.支持硬件幀校驗。
4.兼容 3.3V 和 5.0V 輸入輸出電壓。
DM9000 有多種型號,有100引腳和48引腳的,開發(fā)板選擇的是48引腳的DM9000,型號為DM9000CEP。

2.DM9000硬件接口

poYBAGKV_pKAfU4IAAK3QzI0DBg646.png

引腳 說明
PWRST 復位信號
CS 片選信號
WR(IOW) 處理器寫命令
RD(IOR) 處理器讀命令
CMD 命令/數(shù)據(jù)標志, 0,讀寫命令; 1,讀寫數(shù)據(jù)
SD0~SD15 16 位雙向數(shù)據(jù)線

3.DM9000數(shù)據(jù)位寬設置

?DM9000 支持8位和16位兩種數(shù)據(jù)位寬,可以通過 DM9000的21(EEDCS)引腳設置其數(shù)據(jù)位寬,當EEDCS上拉的時候DM9000選擇8位數(shù)據(jù)位寬,否則的話選擇16位數(shù)據(jù)位寬。開發(fā)板上的R65電阻為 EECS 的上拉電阻,但是此電阻并未焊接!DM9000芯片的數(shù)據(jù)位寬為 16 位。

pYYBAGKV_8eAe8dcAATsG06Y4Zc749.png

4.開發(fā)平臺

硬件平臺:STM32F103ZET6開發(fā)板集成DM9000網(wǎng)卡
開發(fā)環(huán)境:Windows下Keil5
驅(qū)動時序:硬件FSMC

若沒有DM9000有線網(wǎng)卡設備,可自行購買DM9000網(wǎng)卡模塊.
DM9000網(wǎng)卡模塊鏈接:DM9000有線網(wǎng)卡

poYBAGKWADCAKGeMAAgIaHU_cUo667.png

5.DM9000硬件配置

poYBAGKWAQSASeyFAAEaM2lxvN0770.png#pic_center

DM9000 網(wǎng)卡接在 FSMC 的第 2 塊上,數(shù)據(jù)線地址: 0x64000000
??PA7 地址線作為命令與數(shù)據(jù)線切換引腳。
??外接16位寬度存儲器: HADDR[25:1] FSMC_A[24:0]
??外部地址線0對應內(nèi)部地址線1

0x64000000基地址:01100100000000000000000000000000 
0x64000000寫數(shù)據(jù):01100100000000000000000000000000 
0x64000100寫命令:01100100000000000000000100000000

?DM9000硬件初始化:

/******************DM9000初始化**************
**硬件接口:
**					FSMC_D0~D1  -- PD14~PD15
**					FSMC_D2~D3  -- PD0~PD1
**					FSMC_D4~D12 -- PE7~PE15
**					FSMC_D13~D14-- PD8~PD9
**					FSMC_D15    -- PD10
**					CS(FSMC_NE2) -- PG9(片選)
**					WR(FSMC_NWE) -- PD5(寫使能)
**					RD(FSMC_NOE) -- PD4(讀使能)
**					DM9000_RST   -- PD7(復位腳)
**					CMD(FSMC_A7) -- PF13(數(shù)據(jù)命令選擇腳)
**					DM9000_INT   --PG6(中斷腳)
**
*********************************************/
void DM9000_GPIO_Init(void)
{
		/*開時鐘*/
	RCC->APB2ENR|=1<<3;//PB
	RCC->APB2ENR|=1<<5;//PD
	RCC->APB2ENR|=1<<6;//PE
	RCC->APB2ENR|=1<<7;//PF
	RCC->APB2ENR|=1<<8;//PG
	
	GPIOD->CRL&=0x0F00FF00;//PD5寫使能,PD4讀使能,PD7復位腳
	GPIOD->CRL|=0x30BB00BB;
	GPIOD->CRH&=0x00FFF000;
	GPIOD->CRH|=0xBB000BBB;
	
	GPIOE->CRL&=0x0FFFFFFF;
	GPIOE->CRL|=0xB0000000;	
	GPIOE->CRH&=0x00000000;
	GPIOE->CRH|=0xBBBBBBBB;
	
	GPIOG->CRH&=0xFFFFFF0F;
	GPIOG->CRH|=0x000000B0;//片選NE2
	
	GPIOF->CRH&=0xFF0FFFFF;
	GPIOF->CRH|=0x00B00000;//數(shù)據(jù)命令選擇腳
	
	GPIOG->CRL&=0xF0FFFFFF;
	GPIOG->CRL|=0x08000000;//DM9000中斷腳
	GPIOG->ODR|=1<<6;//上拉
  EXTI->IMR|=1<<6;   //開放中斷線6的中斷請求
  EXTI->FTSR|=1<<6;  //允許中斷線6下降沿觸發(fā)請求
  RCC->APB2ENR|=1<<0;//AFIO時鐘使能
	AFIO->EXTICR[1]&=~(0xF<<(2*4));//選擇輸入源為PG6
  AFIO->EXTICR[1]|=0x6<<(2*4);//選擇輸入源為PG6
	STM32_NVIC_SetPriority(EXTI9_5_IRQn,1,1);//設置優(yōu)先級
	
	/*FSMC核心寄存器配置*/
	RCC->AHBENR|=1<<8;//FSMC
	FSMC_Bank1->BTCR[2]=0;//BCR2
	FSMC_Bank1->BTCR[3]=0;//BTR2
	FSMC_Bank1->BTCR[2]&=~(0x1<<19);//異步模式
	FSMC_Bank1->BTCR[2]&=~(0x1<<14);//讀寫使用相同時序
	FSMC_Bank1->BTCR[2]|=1<<12;//允許寫操作
	FSMC_Bank1->BTCR[2]|=0x1<<4;//16位寬度
	FSMC_Bank1->BTCR[3]|=0x1<<8;//2個時鐘周期
	FSMC_Bank1->BTCR[3]&=~(0xF<<4);//地址保持時間1個時鐘周期
	FSMC_Bank1->BTCR[3]&=~(0xF<<0);//地址保持時間1個時鐘周周期
	FSMC_Bank1->BTCR[2]|=1<<0;//啟動存儲器塊
}

6.主函數(shù)

#include "dm9000.h"
u8 dm9000_tx_buff[64]={0x11,0x22,0x33,0x44,0x55};
u8 dm9000_rx_buff[1024];
int main()
{
	u8 stat;
	u16 i;
	int len;
	Beep_Init();
	Usartx_Init(USART1,115200,72);
	TIMx_Init(TIM2,72,20*1000);
	printf("初始化完成rn");
	/*DM9000初始化*/
	if(DM9000_Init()==0)printf("DM9000初始化成功rn");
	else printf("DM9000初始化失敗rn");
	/*獲取DM9000工作模式*/
	stat=DM9000_Get_SpeedAndDuplex();//獲取連接狀態(tài)和工作方式
	if(stat!=0xff)printf("網(wǎng)卡速度:%d Mbps 模式:%srn",(stat&0x02)?10:100,(stat&0x01)?"全雙工":"半雙工");
	else printf("DM9000網(wǎng)卡狀態(tài)信息獲取失敗!rn");
	while(1)
	{
		len=DM9000_ReadPacketLen();//讀取數(shù)據(jù)包長度
		if(len>0)
		{
			printf("讀取數(shù)據(jù)長度:%drn",len);
			DM9000_ReadPacketData(dm9000_rx_buff,len);//讀取數(shù)據(jù)
			for(i=0;i

6.運行效果

??將開發(fā)板通過網(wǎng)線連接路由器即可看到相關答應信息

pYYBAGKWAM6AQq84AACvkDJN0DE360.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    15886

    瀏覽量

    175386
  • 以太網(wǎng)

    關注

    40

    文章

    5288

    瀏覽量

    169671
  • 單芯片
    +關注

    關注

    3

    文章

    410

    瀏覽量

    34476
收藏 人收藏

    評論

    相關推薦

    DM9000以太網(wǎng)控制平臺電路設計方案

    基于DM9000以太網(wǎng)電路,單片機端移植精簡TCP/IP協(xié)議棧unIP,實現(xiàn)簡易的TCP服務。對該簡易的TCP服務進行改造,把藏文網(wǎng)頁存儲到TCP服務
    發(fā)表于 01-21 13:41 ?3939次閱讀
    <b class='flag-5'>DM9000</b><b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制</b>平臺電路設計方案

    DM9000系列

    dm9000   1、總體介紹  該DM9000是一款完全集成的和符合成本效益芯片快速以太網(wǎng)M
    發(fā)表于 05-17 10:17

    Altera FPGA 用DM9000以太網(wǎng)模塊與電腦之間傳輸圖像

    各位大家好,我在用Altera 系列的FPGA ,網(wǎng)芯片DM9000,想通過以太網(wǎng)傳輸數(shù)據(jù),PC機與FPGA之間可以互相傳輸圖像數(shù)據(jù),請問有什么好的方法嗎
    發(fā)表于 11-18 20:51

    U-Boot移植DM9000網(wǎng)卡分享!

    ; 2.配置u-boot使用DM9000網(wǎng)卡; 3.設置IP、serverIP等。三、設置存儲控制器 根據(jù)Jz2440開發(fā)板的原理圖可知,DM9000
    發(fā)表于 07-29 00:06

    兩塊STM32板子以太網(wǎng)通信要以太網(wǎng)控制芯片相同嗎?

    兩塊STM32開發(fā)板利用以太網(wǎng)通信時,是不是要以太網(wǎng)控制芯片相同啊?現(xiàn)在手里有兩塊開發(fā)板,一塊是發(fā)燒友戰(zhàn)艦V3的板子(STM32F103,以太網(wǎng)
    發(fā)表于 08-29 04:35

    FSMC方式訪問DM9000以太網(wǎng)芯片時讀取的是ID寄存的地址

    求助:采用發(fā)燒友的例子,F(xiàn)SMC方式訪問DM9000以太網(wǎng)芯片時,讀取DM9000的ID號總是讀取0x2b2a2928,就是讀取的是ID寄存
    發(fā)表于 10-21 23:46

    基于S3C2440和DM9000AE的以太網(wǎng)接口的設計

    的工業(yè)級以太網(wǎng)控制器DM9000AE,系統(tǒng)通訊快速可靠,具有很高的實時性。在以太網(wǎng)日益普及的今天,此方案能夠給那些傳統(tǒng)不具備網(wǎng)絡通訊能力的嵌
    發(fā)表于 11-05 06:30

    dm9000/dm9000a linux驅(qū)動程序 (Ethe

    dm9000/dm9000a以太網(wǎng)芯片linux驅(qū)動程序 :dm9000/dm9000a Et
    發(fā)表于 12-26 00:13 ?117次下載

    伺服控制系統(tǒng)的DM9000A以太網(wǎng)接口設計

    采用以太網(wǎng)控制器DM9000A,實現(xiàn)DSP+FPGA伺服控制系統(tǒng)的100M以太網(wǎng)接入。介紹了DM9000
    發(fā)表于 12-19 16:29 ?66次下載

    基于DM9000以太網(wǎng)藏文信息控制平臺

    基于DM9000以太網(wǎng)電路,單片機端移植精簡TCP/IP協(xié)議棧unIP,實現(xiàn)簡易的TCP服務。對該簡易的TCP服務進行改造,把藏文網(wǎng)頁存儲到TCP服務
    發(fā)表于 02-10 16:27 ?36次下載

    基于ARM和DM9000的網(wǎng)卡接口設計與實現(xiàn)

    針對ARM CPU S3C2410的特點,設計開發(fā)了外圍網(wǎng)卡接口平臺,通過驅(qū)動程序?qū)?b class='flag-5'>以太網(wǎng)控制芯片DM9000控制,實現(xiàn)了網(wǎng)絡數(shù)據(jù)傳輸功能
    發(fā)表于 10-09 16:16 ?144次下載

    DM9000以太網(wǎng)藏文信息控制平臺

    DM9000以太網(wǎng)藏文信息控制平臺 摘要:基于DM9000以太網(wǎng)電路,單片機端移植精簡TCP/IP協(xié)議棧unIP,實現(xiàn)簡易的TCP服務
    發(fā)表于 04-13 12:47 ?5586次閱讀
    <b class='flag-5'>DM9000</b>的<b class='flag-5'>以太網(wǎng)</b>藏文信息<b class='flag-5'>控制</b>平臺

    驅(qū)動之路-DM9000網(wǎng)卡驅(qū)動程序分析

    DM9000是開發(fā)板經(jīng)采用的網(wǎng)絡芯片,是一種高度集成而且功耗很低的高速網(wǎng)絡控制器,可以和CPU直連,支持10/100M以太網(wǎng)連接,芯片內(nèi)部自
    發(fā)表于 05-15 17:01 ?2617次閱讀
    驅(qū)動之路-<b class='flag-5'>DM9000</b><b class='flag-5'>網(wǎng)</b>卡驅(qū)動程序分析

    DM9000物理接口寄存的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是DM9000芯片快速以太網(wǎng)MAC控制器物理接口寄存
    發(fā)表于 01-13 08:00 ?10次下載
    <b class='flag-5'>DM9000</b>物理接口寄存<b class='flag-5'>器</b>的詳細資料說明

    DM9000芯片快速以太網(wǎng)MAC控制器英文手冊

    電子發(fā)燒友網(wǎng)站提供《DM9000芯片快速以太網(wǎng)MAC控制器英文手冊.pdf》資料免費下載
    發(fā)表于 07-16 17:30 ?0次下載