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 to non-fully-standard IDE DVD drive interface

Status
Not open for further replies.

daokj

Newbie level 6
Joined
Jan 18, 2021
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
172
Hi,

I would like to reuse a **broken link removed** originally part of a Samsung DVD player. My goal is to eventually be able to connect it via USB to a Raspberry Pi.
Although this DVD reader is quite similar to a "standard" IDE DVD reader commonly used in desktop PCs for a long time, connectors are different: IDE interface is managed by a 40-pin ZIF connector and power is supplied in the original circuit from the motherboard of the DVD player via a mini-Molex connector.

The section here attached (PDF document) of the original schematics of the DVD player describes the interface more in detail (I believe the relevant part is only the circuit on the left named DVDCON1 LOADER).

I tried the following - **broken link removed** (same that the picture at the link, except that I have a 40-pin female IDE connector soldered to it) with an IDE to USB convertor. Power is supplied from original power supply via a custom connector.
But it doesn't get recognised by my RPi 4B rev.1.1 (running up to date Raspbian version) - no mention of it in dmesg when plugging it.

Multimeter measurement shows stable power supply (12V fed to the convertor, which in turns feeds 12V and 5V to the drive and 3.3V to the IDE PCB interface) and i can hear/feel the DVD reader running, so I believe the issue is only related to the IDE interface.
I tested the IDE to USB convertor after purchase with a standard IDE device and it was working fine. Similarly, I tested continuity of the contacts of the ZIF-to-IDE adaptor with success and this is a simple piece of PCB without component, so this should not be the issue.

Now, I believe it is somehow due to some differences between the standard IDE interface above-mentioned convertor is made for and the actual IDE interface of my DVD drive.
In particular, there are some resistors in the PDF's schematics that I had not taken into account, not being so sure on how to do it. Additionally, I made some measurements on the pins that you can find in below tables (odd pins in the table on the left, even pins on the left) while the DVD drive was connected and running. They show what the given should be as per IDE standards (specified name & description), what they should be as per the schematics of the original DVD player (cf. attached PDF document), Voltage measurement (always using pin #40, supposed to be GND, as one of the two ends), and Continuity test (when everything was turned off) with pin #40 to check whether GND pins were those expected (showing many surprises).

I need some help to:
1. Be sure to interpret correctly the measurements in the table - Have I done something wrong? Could it be so far from the manufacturer's schematics? Would you see any additional check to be done?
2. Understand how to add the resistors shown in the schematics to my circuit if this could indeed be the issue.




DVD IDE-ZIF.jpg
 

Attachments

  • Lecteur DVD IDE-ZIF.pdf
    219 KB · Views: 212

It may simply be incompatible of course but you could try this:
connect pin 19 to 0V, I think it normally grounds the chassis but might have to be 0V.
ATA doesn't usually use pin 32 but you could try adding a pull-up to 3.3V in case it expects 8-bit transfers.

Check your USB adapter itself is recognized by typing 'lsusb' at a terminal prompt, it should show up on the list.

Brian.
 

Thank you Brian. I am a beginner in electronics, hence my next questions:
1. What means "incompatible"? That the DVD drive's interface does not fit the convertor's? At least theoritecally (I understand it might then prove too long/difficult to obtain) it could be overcome by somehow reverse engineering that interface in order to have both devices communicating together?
2. What should I use as 0V reference (i.e. to which i will solder one end of the wire soldered to pin 19 on the other end)?
3. I have nothing related to my USB adapter with lsusb. I've tested again with my standard desktop PC IDE DVD drive to see the difference. The first output below is when the converter is plugged to the ZIF drive (i.e. not recognised), and the second output when the converter is plugged to the standard IDE drive (powered via an external power supply).
Code:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Code:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Another visible difference is the green LED on the converter (marked "IDE/BUSY") which is constantly lit with very slight and quick blinks when the ZIF drive is connected, and which is mostly turned off, only blinking few and short times when the IDE drive is connected, and starts to be constantly lit when there is a disc in it.

PS: FYI, I said something wrong in my first post above - the ZIF drive is actually fed by the original power supply with 12V and 5V AND by the IDE to USB converter (itself being fed only via USB by the RPi).
 
Last edited:

The extra line in the code is the descriptor read from the USB device. All USB devices have a descriptor block, it holds information on the name, purpose and some operating parameters so the host knows how to communicate with it. If the descriptor can be read when an IDE drive is connected but not when your ZIF drive is attached, it means the ZIF is somehow stopping the USB interface working. Check the power supply wiring because it has to be something fairly drastic to upset the other side of the USB interface, in particular check all the GND pins are connected and also go to the GND on the USB adapter.

Note that because of the mass production of some DVD players, it was economical for the manufacturers to define their own sub-set of commands and electrical levels so it may be that yours can't be interfaced at all. I'm afraid there isn't much you can do about that.

If you get it working and 'lsusb' shows that line with the ZIF drive attached, type 'lsblk' and it should identify the drive as a block storage device, probably called 'sr0'.

Brian.
 

Hi Brian,

So to check GND pins (or 0V reference as in your previous post), I guess I should do the following (please correct if necessary):
1. On the one hand i have a chain of devices starting from the RPi => USB link => USB to IDE convertor (GND & 5V power coming from USB) => IDE link => IDE to ZIF adaptor (I call it an adaptor as on this piece of PCB there is no active electronic components but only contactors) => ZIF link => DVD drive PCB
2. On the other hand, a chain of devices starting from a power supply on which I connected wires going from 12V, 5V, and GND pins to the equivalent DVD drive's contactors (miniMolex connector type).

I will double check later today point number 2, to make sure I don't have an issue with 12V, 5V. I don't see what I should check on point 1 as there is nothing too "hacky" there (the RPi and the convertor are ready made devices, as well as the adaptor which is moreover only about connectors and contactors).
Do you mean something else by "check all the GND pins are connected and also go to the GND on the USB adapter" ?
 

I will double check later today point number 2, to make sure I don't have an issue with 12V, 5V.

I did find 12V, 5V and GND effectively supplied to the drive's PCB (actually slightly more: 12,04V and 5,11V).
Comparing the Ground from the power supply and the one from on the adaptor (i.e. in the end from the RPi) I find a difference of 0,02V, but I guess this is not the issue?
 

Hi,

The voltages you measured are O.K.

Klaus
 

Agreed, I suspect the drive only supports limited functions and that is why it doesn't look like a normal IDE drive to the computer.
What puzzles me though is why the USB interface isn't recognized when it is connected. As far as I know, the USB side of the interface should still work whatever is connected to the device side.

Brian.
 

Thank you both for the feedback.

What puzzles me though is why the USB interface isn't recognized when it is connected. As far as I know, the USB side of the interface should still work whatever is connected to the device side.

About the IDE-USB convertor :
If I plug it to the RPi only (without anything on the IDE side), it is not recognised (I mean nothing relevant is displayed in lsusb output).
If I plug it to both the RPi and my IDE-ZIF adaptor (and behind my ZIF DVD drive), it is not recognised.
If I plug it to both the RPi and my standard IDE DVD drive, it is recognised (as JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge).

Additionnally, I made a new set of voltage and continuity measures (cf. below table) when thr ZIF drive is connected to the IDE-USB converter. It makes much more sense I believe and I am more confident with the new measures (I may have taken the old ones the wrong way...) which I checked several times and proved to be stable, apart from the pins corresponding the the value of 3.8V (i.e. pins # 3, 35, 36, 37 and 38) for which the value kept oscillating within a range of values comprised more or less between 3.4 V and 4.1 V. I am under the impression the voltage of these 5 pins varies as one simultaneously, although I am not absolutely sure about it.
Still, now we can see that ground pins are in line with IDE specifications, and almost in line with the manufacturer's schematics (except pins #19 and #28 which are not supposed to be connected to ground as per indications of the manufacturer).

DVD IDE-ZIF new.jpg


I am not able to further interpret those measures. However I am still bothered by the fact that in my current set-up, I did not add so far the resistors indicated on the manufacturer schematics (located on the original PCB where the ZIF flat cable coming from the drive had to be plugged). I mean the 7 resistors noted DR50 to DR56 on below extract of manufacturer's schematics (each of them connected to one of the following pins - 1, 21, 27, 29, 31, 34 and 39).
I am ready to try this, but I am not sure of where exactly i should solder them. I can rather easily solder one end of the resistors on the ZIF-IDE adaptor where the pins of the IDE connector are accessible (that's where I made my most of voltage measurements), however what would be the other end ? For GND, could it be any other GND pin? As for the 3,3V, it is supplied by the IDE-USB converter from the 5V USB connection of the RPi, I'd rather not remove the plastic box (except if there is no other way).

IDE-ZIF manuf schematics extract.png
 
Last edited:

It may simply be incompatible of course but you could try this:
connect pin 19 to 0V, I think it normally grounds the chassis but might have to be 0V.
ATA doesn't usually use pin 32 but you could try adding a pull-up to 3.3V in case it expects 8-bit transfers.

betwixt, from the new table above, I now see that pin 19 is already connected to Ground (I assume that is what you meant when mentioning 0V).
As for pin 32, manufacturer's schematics says it is not connected. I measure -0,54V on it (same value as for several other pins: 1, 20, 21, 23, 25, 27, 29, 32 and 39), but I am not able to tell what it could mean - connected? not connected?
 

Just tried something more - I connected the female IDE connector to the male IDE connector with jumper cables in order to have 7 pins (#1, 27, 29, 39, 34 and 21, 31) going through a breadboard where i added the resistors as per the schematics and connected them back to the male IDE connector. One end of the first 5 resistors is connected to a 3,3V source (provided by a GPIO of the RPi set on "high") whereas one end of the 2 other resistors are connected to Ground (pin #40 which thus also go though the breadboard).
When powering up everything, the device is not recognized. The LED "IDE/BUSY" does not light up at all this time.
Any suggestion?

In case you would drop by here @betwixt, I don't really get how the device could be "incompatible". Let's imagine I have a full-fledged electronics laboratory with experienced professionals to solve this issue, could they somehow bridge the device to the RPi ? I take this extreme case in order for me to understand where could be the blocking point.
 

I'm here!
There can be no negative voltages on any pins when only a positive supply is present and all the lines are pulled-up to that supply so any negatives you see are not real. They are most likely to be 0V but the other probe is at a slightly higher potential above 0V. It can happen quite easily because current running through the resistance of wires causes a slight voltage drop.

Again, you are using a drive that may not implement the full ATA command set. Control isn't directly from the cable, there is an on-board processor that interprets the commands sent over the data lines and from there operates the stepper and spindle motor controllers. In a general purpose drive the commands are standardized so they can be fitted into any machine but when a drive is specific to one device, such as a particular model of DVD player, it does not need to implement all the commands and may even use a different command set altogether. It isn't safe to assume it even follows the standard PATA pin outs. On the DVD player main board the drive will connect to a dedicated VLSI device which is also programmable, that means the manufacturer can do whatever they want to make then talk to each other but they have no need to follow any standard.

Have you tried it with a 'normal' PATA interfaced DVD drive to see if that works?

Brian.
 

Thank you very much Brian, I appreciate this detailed explanation which helps me better understand how it works.
Indeed the drive connects to the VLSI named "MIC1". On the schematics here attached, we can see references to ATAPI bottom-left and right-top. Names of the lines do not all exactly match the one of the previous schematics, but whatever. Just to be sure I understand properly - the magics being done inside this MIC1 to interface the drive cannot be guessed from this new schematics ? Would it be theoretically possible for me to pursue the exercise and reverse-engineer this non-standard interface in order to reproduce it and eventually bridge the drive to my RPi ? I believe this would be beyond my abilities and would require more elaborated material than I have, but would you be able to describe me very broadly the method for education purpose?

I did try to connect my IDE/USB convertor to a "standard " PATA DVD drive with IDE and MOLEX connectors, and the latter got successfully recognised by the RPi. No ZIF adaptor or additional resistors required in this case of course.
 

Attachments

  • DVD_VLSI.pdf
    396.9 KB · Views: 91

It can certainly be done but it can be a tedious process.
You need two things to be able to do it:
1. an original working unit
2. a multi-channel logic analyzer, ideally 16-channel, you can do it with less but it involves much more work.

Basically you start monitoring the logic state of all the signal lines from the moment the power is turned on, there will be some 'talk' between the host and drive to confirm the link is working, perform self test and then initialize the drive.

Then you do the same with each operation you can normally perform, for example ejecting, loading, playing, pausing and fast forward/backwards to see what commands are being sent.

It can be difficult to interpret the data, especially as a disc has to be present for some of the operations and that means you may see a mix of commands and data read from the disc itself, they will look similar and you may have to search for a regular structure in the data pattern that indicates a 'container' with something in it.

I have done it many times before on other interfaces but even some of the simpler ones can take days to do.

Brian.
 

    daokj

    Points: 2
    Helpful Answer Positive Rating
Very interesting. I am tempted to go to the next step although I have no more working original unit nor logic analyzer!
I guess I will have to find some alternative for my project...
Thank you again for your time and follow-up!
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top