element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum ms88e6390 mdio read/write problem
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 4 replies
  • Subscribers 302 subscribers
  • Views 1531 views
  • Users 0 members are here
  • mdio
  • switch
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

ms88e6390 mdio read/write problem

samsin
samsin over 3 years ago

Hi everybody,

This is my first topic in this forum. I have a problem about ms88e6390 marvell ethernet switch. I use stm32f407 for controlling the switch. MDC is running at 1.64MHz and when I look at MDIO and MDC signals on oscilloscope, there is no problem about them. It is running in multi chip addresing mode, because I have two marvells on same SMI lines. They have adresses as one and two with physical addressing and I have no problem about addressing and accessing method.

The problem is when I write and read back a value in any register, sometimes I cannot read same value from that register. I think that sometimes I can not write into SMI data register or register address value in SMI cmd register is changing after I wrote in. Because when I want to read any register value, it is sometimes getting value of another register. I approved this issue repeatedly. I am waiting busy bit to read/write again on both stm32 and marvell sides.

I will be appreciate if you can help with the problem.

Thank you very much,

  • Sign in to reply
  • Cancel

Top Replies

  • shabaz
    shabaz over 3 years ago +1
    Hi samsin, Just as general info, all I can suggest is to be systematic about such problems, come up with a list of troubleshooting steps and follow them through. If you have any observations, write them…
  • shabaz
    shabaz over 3 years ago

    Hi samsin,

    Just as general info, all I can suggest is to be systematic about such problems, come up with a list of troubleshooting steps and follow them through. If you have any observations, write them down and follow them up, don't ignore little bits of detail like (say) any randomness or patterns you observe, and so on. Run tests millions of times if you need to (i.e. automation through your test code/harness or whatever, and see if you get the same results).
    Get someone else, i.e. second opinion, to also look at the traces, and confirm that the signals look good, power is good, and that you're running on good hardware (try different hardware too, e.g. another board, or a dev kit board and so on). Inspect the board.
    If you're satisfied with that, then start writing down what you write to registers and what you read, and look for patterns. Try writing to odd and even registers, and two or more registers at the same time. Look to see what register value gets read compared to what you wrote. Confirm that you're writing on the correct edges. Look to see if values look shifted by a bit position. Look for randomness, and for patterns. Check the timing diagrams in the documentation. Check device initialization procedures. Look at updates and 'errata' for device in user manuals/datasheets.
    If you think you've done all that, then get someone else to look at it, with a fresh pair of eyes.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • samsin
    samsin over 3 years ago in reply to shabaz

    Hi shabaz,

    Thank you very much for your reply.

    Actually, this issue that I wrote is a result of systematic working. I wrote a test code and it tested maybe million times. This is writing 0xAA and 0x55 values in a register to understand easily. However, I see these values in another address register as randomly. Also, I have a lot of boards and tried more than one board on.

    I guess, when I send data and cmd via SMI, anything (I dont know what it is) is changing register address and values are been written in another register. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 3 years ago in reply to samsin

    Hi,

    0xAA and 0x55 shouldn't be the only patterns you try. Whatever you're missing could be (say) timing related, it could even be a hardware design error if all the boards you are testing are identical. You could try reaching out to the chip manufacturer too, in case they have suggestions, since they will be familiar with their product.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • samsin
    samsin over 3 years ago in reply to shabaz

    Thank you @shabaz

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube