<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        DM9000AEP網口驅動總結(STM32)

        作者:Jie華哥   來源:Jie華哥   點擊數:  更新時間:2014年06月16日   【字體:

         首先,總的來說,調好DM9000AEP的驅動就3個函數:

        1、DM9000A_Init();
        2、DM9000A_Read();
        3、DM9000A_Write();
        一、對于DM9000A的初始化,網上有很多,主要就是配置好DM9000A的寄存器而已。在這里要特別主要幾點:
        1、DAVICOM公司的產品命名非常怪異,至少我感覺是這樣。DM9000(100pin)和DM9000A(48pin)是不同的,另外還有什么 DM9000C系列的,這個大家注意一點就行。另外在他們的官網是找不到充足的資料的,連datasheet有些產品都找不到,我在調試DM9000A的 時候碰到一些大家很少遇到的問題(接收慢),于是我發了封郵件給他們的技術支持,結果他們并沒有第一回復我的問題,而是先只是問了我是哪家公司的,于是我 就沒回他們了(是我太天真了),你們還是靠廣大勞動群眾吧。在這里我要特別感謝那些開源的開發板商,像正點原子、安富萊等,大家可以在他們的官網找到很多 相關例程和問題的答案。
        2、DM9000A的初始化的復位延時一定要夠,要不就會初始化不成功,之前用安富萊的例程就因為延時不夠網口工作不了。
        3、注意官方資料的初始化教程什么的,大家一定要辯證地看。ㄎ腋杏X他們的官方資料寫得不怎么樣,大家還是從網上看廣大網友上傳的資料和經驗會更好一點, 我一開始還以為官方的資料會比網友上傳的會好點,結果~~~,于是我懂得了大公司像STM、ATMEL等公司就看官網的資料會好點,他們的資料會非常完 整,其他的小公司他們的官網資料非常少,有些資料不開放,大家能下的資料看時還是注意一點吧)。我之前遇到的接收慢的問題還以為是初始化的問題,于是按照 官方的初始化改了一下,結果網口的燈都亮不了,于是我就不再看官方的教程了。
        二、DM9000A的讀操作大家一定要注意了。你要先了解它的FIFO原理和包頭格式,按照官方的datasheet,讀操作似乎很簡單,網上大部分例程 也是非常簡單的,我看了網上的很多例程都是那樣用的,不知他們的芯片跟我用的是不是有點不同,我直接用他們的例程總會出現接收非常慢的狀況,網上也很少人 有討論過這個問題,后來頗費周折看了安富萊的例程,他們用軟件寫了接收FIFO的地址指針變動,不再依照像官方說的芯片會自動移動FIFO的地址指針(盡 管安富萊的例程在初始化時也是配置成了FIFO自動循環接收的模式,不知這是不是一個硬件BUG,還是我用的芯片有問題)。一開始我還以為是硬件的問題, 再后來以為是初始化的問題,最后還看了接收FIFO的地址指針等寄存器,才發覺它老是辨別不了接收到數據包,還經常溢出,后來用了安富萊的例程后,效果還 不錯,問題解決。
        三、DM9000A的寫操作全世界都差不多,我也沒遇到什么問題,就沒什么好說的了。
         
        其次,說說調試方法的問題,如果驅動端的串口可以用的話,用串口查看 DM9000A寄存器是一個非常有用的找到問題所在的方法(在寫驅動時)。PC端大家可以裝個wireshark抓包工具,我們可以先從最簡單的ARP協 議開始調試發送與接收是否可以成功,至于ARP協議的格式大家可以百度,其實很簡單,一個數組就解決了。在確認DM9000A可以正常收發時,大家可以移 植uIP實現其他功能,uIP的移植教程網上也有很多,大家可以參考正點原子的,如果前面的工作做好了,這里一般不會有什么大問題。如果可以的話,大家直 接用uC/OS-II+LwIP會更好點。
         
        最后,說下硬件的問題,在畫PCB時可以參考官方的注意事項,官方說的也挺詳細的 了。單片機和DM9000A最好離近點,DM9000A與網口之間的收發線要走差分線,還有DM9000A與網口的鋪地問題,datasheet說得非常 詳細了。由于硬件不是我畫的,所以之前出現接收慢的問題時我一度懷疑是硬件問題,后來看了PCB后更加懷疑是硬件問題了,布局布線太奇葩了(一個新手畫 的),可是我聽老大說這硬件是可以的,于是~~~直到找到安富萊的例程才解決問題。由于我用的環境比較一般,就算你畫得再差,一般布通了就可以了,根本不 用管什么差分線,但是,做硬件的還是應該多注意一下自己的板子,免得出現其他問題,或者在其他環境才出現問題那就痛苦了,到時排查都搞死你,更別說給做軟 件的會帶來什么致命困擾了。
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮