Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

USB connector testing problem

Status
Not open for further replies.

mamech

Full Member level 3
Joined
Nov 9, 2010
Messages
176
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,296
Activity points
3,135
hello

I am working with an arduino usb shield , and It was working great with me, but suddenly it gave me wrong performance (it works but can not detect the flash usb stick). I bean to be sure that the problem is in the usb female connector of the shield. I doubt that some of the internal pins does not touch the internal pins of the usb flash memory stick.


Are not there any way of testing if all pins of female connector really touch the pins of male usb stick?

I think that in computer , the user may detect this by software, but in my case, I want I need first to test if there is full contact between the 4 male and the 4 female pins or not. The real difficulty here is that the whole thing is enclosed in the metal casing of femlae and male connectors and there is no place for using multimeter.

any suggestions?
 

You could tarnish the brass contacts somehow, then insert and remove the plug, then look for a clean scrape-line on the metal. If it's there, then you have contact.

It's obvious that this would be an easy test if you were to apply paint, or soot, etc. But that could ruin a good connection, negating the whole purpose.

When I say tarnish the contacts, I'm not sure how to do this. You want to restore them to shiny clean. Any liquid, or gas, or heat, might alter the plug somehow.

Here's an idea: Chill the plug in the freezer. Breathe on the contacts. A thin layer of water droplets gathers. Insert and remove the plug. Examine for a scrape-line.
 
  • Like
Reactions: mamech

    mamech

    Points: 2
    Helpful Answer Positive Rating
thank you for suggestions , actually I imagined that there is some standard method for testing meshing between male and female usb connectors.
 

I am working with an arduino usb shield , and It was working great with me, but suddenly it gave me wrong performance (it works but can not detect the flash usb stick). I bean to be sure that the problem is in the usb female connector of the shield. I doubt that some of the internal pins does not touch the internal pins of the usb flash memory stick.

any suggestions?



Is the shield in question a Arduiono USB Host shield based on the MAX3421E, USB peripheral/host controller? The key term being "Host."

If it is a USB Host shield, does it still function with previous tested device class devices?

If the shield has worked in the past with other device class devices, it could possibly be case of the device enumerating incorrectly and is not supported by the MAX3421E.

If it is a case of a bad connection for this particular flash drive, i.e., it functions properly when inserted into your computers USB connector, you might try a male to female USB cable in between the flash drive and the shield.


BigDog
 
thank you very much for the idea of testing the usb meshing. Now, I found that the meshing between male and female connectors are fine.. so I am not sure now what is the source of my problem.


I will tell more details . yes I am using USB host shield for arduino. I used the arduino example "testusbhostFAT" for around 1 year and it works great with my arduino + usb shield. I took the code and I made some modifications to suit my interest, and it also worked fine with me. but somedays ago, when I was trying the arduino and the shield in some circuit, I noticed that my code does not behave as usual. I began to suspect my code, so I uploaded again the original testusbhostFAT, and I found the same weird performance (really I do not know what changed!)

in the past, the arduino showed me messages related to opening a file named "message.txt" that exist in usb stick, and creating another file in the usb stick named "Hello.txt". but now this does not happen. currently, this is what I get on serial monitor:
Start
Current UsbDEBUGlvl 81
'+' and '-' increase/decrease by 0x01
'.' and ',' increase/decrease by 0x10
't' will run a 10MB write/read test and print out the time it took.
'e' will toggle vbus off for a few moments.

Long filename support: Enabled
Total EXT RAM banks 0
Available heap: 7124 Bytes
SP 21ef
Available heap: 7097 Bytes
VBUS on
USB state = 20
USB state = 40
USB state = 50
USB state = 51
USB state = 90
Available heap: 6650 Bytes
Available heap: 6650 Bytes
Available heap: 6650 Bytes
Available heap: 6650 Bytes
Available heap: 6650 Bytes
Available heap: 6650 Bytes

and it keeps showing more and more without showing anything from the usb stick!

I suspected that my usb stick is defective, and i replaced it, but the result is the same.

regarding what you mentioned about enumeration, I do not know, but I am testing the same shield with the same usb stick, it is still possible that enumeration is the cause?

does the above mentioned behavior means that my shield became defective for some reason and I need to replace it totally?
 

What model of Arduino are you using with this shield? Specifically, what is the Atmel chip, ATMega328P, ATMega2560, etc?

According the message log you've posted, I suspect the MAX3421E is functioning properly.

However, I've attached a test sketch for diagnosing issues with the MAX3421E on board the Arduino USB Host Shield.

Please download the compiled board test sketch found in the examples directory and post the resulting message log.

BigDog
 

Attachments

  • USB_Host_Shield-master.zip
    44.9 KB · Views: 81

I use the shield with arduino mega 2560. I tried to upload "board test" but I got the following error:


Arduino: 1.6.3 (Windows 8.1), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Build options changed, rebuilding all

board_test.pde: In function 'void printProgStr(const char*)':

board_test.pde:268:20: error: 'BYTE' was not declared in this scope

Error compiling.
 

I looked why there was compilation error, and I fixed the source of error. it was only related keyword "BYTE" that was used in a function and that was not recognized by the compiler.

I managed to do the test using your code, and here is the message log:


Reading REVISION register...Die revision 03
Test PASSED
Checking GPIO lines. Install GPIO
Circuits At Home 2010
USB Host Shield QC test routine

Press any key to continue...
Reading REVISION register...Die revision 03
Test PASSED
Checking GPIO lines. Install GPIO loopback adapter and press any key to continue...GPIO read/write mismatch. Write: 0 Read: FF

GPIO check failed. Make sure GPIO loopback adapter is installed
SPI test. Each '.' indicates 64K transferred. Stops after transferring 1MB (16 dots)
................
Test PASSED
Oscillator start/stop test. Oscillator state is ON
Setting CHIP RESET. Oscillator state is OFF
Clearing CHIP RESET. PLL is stable. Time to stabilize - 124 cycles
Test PASSED
USB Connectivity test. Waiting for device connection...
Device connected. Resetting
Reset complete. Waiting for the first SOF...
SOF generation started. Enumerating device.
Setting device address
Getting device descriptor
Device descriptor:
Descriptor Length: 12
Descriptor type: 01
USB version: 0200
Device class: 00
Device Subclass: 00
Device Protocol: 00
Max.packet size: 40
Vendor ID: 0781
Product ID: 5567
Revision ID: 0126
Mfg.string index: 01
Prod.string index: 02
Serial number index: 03
Number of conf.: 01

All tests passed. Press RESET to restart test
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top