EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

ATA host to SATA disk adapter nightmares

Started by Dimiter_Popoff June 20, 2014
I am trying to start using SATA drives in a system with a SOC
chip which only has parallel ATA.

Got some adaptors (3 of them) from dealextreme and thought
I'd just connect things to work initially. All based on the
JM20330 part, found its datasheet, thought I'd route a board
revision with this chip instead of with the ATA buffers eventually,
lets first see how things work.

Or do not work.
First the adaptor was with the *wrong* connector - female
insetad of male (and the chip was configured as an ATA host SATA
device). OK, I made a gender changer.

After a few hours of trying this and that, cutting 2 "jumper"
traces and soldering them the other way I got some response.
Another two days later it nearly works... but it does cable CRC
errors in UDMA 2 mode (33 MB/S). It does not do these in the
next lower mode - but none of the other devices does any cable
CRC errors at all.

Then of the three units I bought one was with a different chip
revision. Tried it hoping I had two bad ones.
Only to discover it was even worse, did not get to cable CRC-ing
as it was rejecting the SET FEATURES command setting the UDMA
mode. In fact it rejected setting any mode. Did not try all
of the "set features" to check if the command worked at all,
probably not.

Anyone with experience? Has anyone been lucky enough to have
an ATA -> SATA (SATA being the disk) convertor at reasonable
ATA speeds (33MB/S would be fine for me)?
I think there is at least one more convertor chip on the
market, Marvell (good luck getting a datasheet of *that*...),
anything?
I am losing hope I can make this chip work. A while ago I
shortened the cable (80 conductor ATA cable, cable CRC errors
occur during read, i.e. the jm20330 output drivers are
no good - and I did try various series terminations etc.),
no luck.


Thanks,

Dimiter

------------------------------------------------------
Dimiter Popoff, TGI             http://www.tgi-sci.com
------------------------------------------------------
http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/




Dimiter_Popoff <dp@tgi-sci.com> wrote:
> I am trying to start using SATA drives in a system with a SOC > chip which only has parallel ATA.
What SoC? Intel-based, or something else?
> Got some adaptors (3 of them) from dealextreme and thought > I'd just connect things to work initially. All based on the > JM20330 part, found its datasheet, thought I'd route a board > revision with this chip instead of with the ATA buffers eventually, > lets first see how things work.
I did a lot of staring at datasheets when fitting an SSD into an old Pentium M/Centrino laptop. Generally the opinion was that JM20330 was a bit variable, there's a Marvell part that had better feedback (I think one of the Startech adaptors use it), and there are some others with better reputations (can't remember the brand, sorry). It appears ACARD has one, and I think the others were obscure Taiwanese vendors. There's an IBM Thinkpad wiki somewhere with lots of info as many of them are still in use, with PATA to SATA converters.
> Or do not work. > First the adaptor was with the *wrong* connector - female > insetad of male (and the chip was configured as an ATA host SATA > device). OK, I made a gender changer.
That could be a problem: some of these adaptors are PATA disc to SATA host and some SATA disc to PATA host. Avoid the ones that are double-ended, they're less likely to work (from what I read).
> Anyone with experience? Has anyone been lucky enough to have > an ATA -> SATA (SATA being the disk) convertor at reasonable > ATA speeds (33MB/S would be fine for me)?
Yes. The first adaptor I bought aiming to get a Marvell, turned out to have a JM20330, didn't fit in the target laptop (would have needed to cut a hole in the motherboard). I got a bit fed up at this point, and thought I'd risk a JM20330 board that was the right shape. That one worked fine with the SSD (Kingston 30GB), Linux boots great. I think it went up to 33MB/s but no more (laptop southbridge didn't like DMA for some reason). It was from an ebay seller who doesn't seem to list it any more, but it looked a lot like this: http://cgi.ebay.co.uk/390779889863 I had to dismantle the SSD to get it to fit.
> I am losing hope I can make this chip work. A while ago I > shortened the cable (80 conductor ATA cable, cable CRC errors > occur during read, i.e. the jm20330 output drivers are > no good - and I did try various series terminations etc.), > no luck.
You sure it isn't just expecting you to behave like the BIOS does, and any they never tested anything else? Theo
On 21.6.2014 &#1075;. 04:36, Theo Markettos wrote:
> Dimiter_Popoff <dp@tgi-sci.com> wrote: >> I am trying to start using SATA drives in a system with a SOC >> chip which only has parallel ATA. > > What SoC? Intel-based, or something else?
Freescale, an MPC5200B.
>> First the adaptor was with the *wrong* connector - female >> insetad of male (and the chip was configured as an ATA host SATA >> device). OK, I made a gender changer. > > That could be a problem: some of these adaptors are PATA disc to SATA host > and some SATA disc to PATA host. Avoid the ones that are double-ended, > they're less likely to work (from what I read).
The chip is meant to do both ways but it is wired as host ATA -> device SATA. That with a female connector.... and no series termination at least on the control signals, IORDY at the very least. Not that it was much help when I put them though, but it was noticeable, the problem was halved (if not better), still no good though.
> >> Anyone with experience? Has anyone been lucky enough to have >> an ATA -> SATA (SATA being the disk) convertor at reasonable >> ATA speeds (33MB/S would be fine for me)? > > Yes. The first adaptor I bought aiming to get a Marvell, turned out to have > a JM20330, didn't fit in the target laptop (would have needed to cut a hole > in the motherboard). I got a bit fed up at this point, and thought I'd risk > a JM20330 board that was the right shape. That one worked fine with the SSD > (Kingston 30GB), Linux boots great. I think it went up to 33MB/s but no > more (laptop southbridge didn't like DMA for some reason).
That is fairly astonishing. The JM20330 boards I got are unusable. Here are photos of them after my 2 if not 3 days efforts: http://tgi-sci.com/misc/DSCF0598.JPG , http://tgi-sci.com/misc/DSCF0599.JPG . 1 was the best, nearly worked (did cable CRC errors in a perhaps retry-able amount but still too many - as opposed to 0 by the other devices on that cable - and got stuck eventually). Unusable, though I managed to copy a not so large directory tree once. 2 was the worst, it did not accept the ATA "set features" command which sets the UDMA mode (rejected setting any mode actually, issuing the correct status about that...). Unusable. 3 behaved similarly to 1 but almost never managed no cable CRC error, completely unusable. The text on the chip in 1 and 3 is the same (probably meaning same revision), however one is printed and the other is engraved. I think 1 was the painted one.
> You sure it isn't just expecting you to behave like the BIOS does, and any > they never tested anything else?
Well I can't possibly know what it expects, what I do know is that by following the ATA standard I have made 3 HDD models and perhaps 3 (if not 4 or 5) CD/DVD burners work seamlessly. Then I spent today in further investigation, looked at the bus signals etc., everything looks good. I played with the programmable timings (which I had played with 5-6 years ago when I did the ATA interface for the 5200B), there was just nothing to be had. Except if I slowed the speed down, but slowing down from 33 MB/S is not acceptable nowadays, I have a 500G 7200RPM drive which is probably faster than the 33 anyway (the 5200 won't do more). Thanks for your reply, I have abandoned the JMicron chip efforts for now, will look for some Marvell based convertor to test - in a while, now I have other things to do, that JM sh.t ate the time I could afford to no sensible result. Dimiter ------------------------------------------------------ Dimiter Popoff, TGI http://www.tgi-sci.com ------------------------------------------------------ http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/
On Sat, 21 Jun 2014 03:53:26 +0300, Dimiter_Popoff <dp@tgi-sci.com>
wrote:

>I am trying to start using SATA drives in a system with a SOC >chip which only has parallel ATA. > >Got some adaptors (3 of them) from dealextreme and thought >I'd just connect things to work initially. All based on the >JM20330 part, found its datasheet, thought I'd route a board >revision with this chip instead of with the ATA buffers eventually, >lets first see how things work. > >Or do not work. >First the adaptor was with the *wrong* connector - female >insetad of male (and the chip was configured as an ATA host SATA >device). OK, I made a gender changer. > >After a few hours of trying this and that, cutting 2 "jumper" >traces and soldering them the other way I got some response. >Another two days later it nearly works... but it does cable CRC >errors in UDMA 2 mode (33 MB/S). It does not do these in the >next lower mode - but none of the other devices does any cable >CRC errors at all. > >Then of the three units I bought one was with a different chip >revision. Tried it hoping I had two bad ones. >Only to discover it was even worse, did not get to cable CRC-ing >as it was rejecting the SET FEATURES command setting the UDMA >mode. In fact it rejected setting any mode. Did not try all >of the "set features" to check if the command worked at all, >probably not. > >Anyone with experience? Has anyone been lucky enough to have >an ATA -> SATA (SATA being the disk) convertor at reasonable >ATA speeds (33MB/S would be fine for me)? >I think there is at least one more convertor chip on the >market, Marvell (good luck getting a datasheet of *that*...), >anything? >I am losing hope I can make this chip work. A while ago I >shortened the cable (80 conductor ATA cable, cable CRC errors >occur during read, i.e. the jm20330 output drivers are >no good - and I did try various series terminations etc.), >no luck. > > >Thanks, > >Dimiter > >------------------------------------------------------ >Dimiter Popoff, TGI http://www.tgi-sci.com >------------------------------------------------------ >http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/ > > >
I have this one from ... <http://www.microsatacables.com/ide-to-sata-adapter-with-2-point-5-inch-aluminum-housing/> On an old Gateway with 100mb/s IDE interface, I do get 80mb/s thruput. As for the Chip used I'd have to look, but I belive it is the JMxxxx chip. Cheers
On 22.6.2014 &#1075;. 01:26, Martin Riddle wrote:
> On Sat, 21 Jun 2014 03:53:26 +0300, Dimiter_Popoff <dp@tgi-sci.com> > wrote: > >> I am trying to start using SATA drives in a system with a SOC >> chip which only has parallel ATA. >> >> Got some adaptors (3 of them) from dealextreme and thought >> I'd just connect things to work initially. All based on the >> JM20330 part, found its datasheet, thought I'd route a board >> revision with this chip instead of with the ATA buffers eventually, >> lets first see how things work. >> >> Or do not work. >> First the adaptor was with the *wrong* connector - female >> insetad of male (and the chip was configured as an ATA host SATA >> device). OK, I made a gender changer. >> >> After a few hours of trying this and that, cutting 2 "jumper" >> traces and soldering them the other way I got some response. >> Another two days later it nearly works... but it does cable CRC >> errors in UDMA 2 mode (33 MB/S). It does not do these in the >> next lower mode - but none of the other devices does any cable >> CRC errors at all. >> >> Then of the three units I bought one was with a different chip >> revision. Tried it hoping I had two bad ones. >> Only to discover it was even worse, did not get to cable CRC-ing >> as it was rejecting the SET FEATURES command setting the UDMA >> mode. In fact it rejected setting any mode. Did not try all >> of the "set features" to check if the command worked at all, >> probably not. >> >> Anyone with experience? Has anyone been lucky enough to have >> an ATA -> SATA (SATA being the disk) convertor at reasonable >> ATA speeds (33MB/S would be fine for me)? >> I think there is at least one more convertor chip on the >> market, Marvell (good luck getting a datasheet of *that*...), >> anything? >> I am losing hope I can make this chip work. A while ago I >> shortened the cable (80 conductor ATA cable, cable CRC errors >> occur during read, i.e. the jm20330 output drivers are >> no good - and I did try various series terminations etc.), >> no luck. >> >> >> Thanks, >> >> Dimiter >> >> ------------------------------------------------------ >> Dimiter Popoff, TGI http://www.tgi-sci.com >> ------------------------------------------------------ >> http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/ >> >> >> > > I have this one from ... > <http://www.microsatacables.com/ide-to-sata-adapter-with-2-point-5-inch-aluminum-housing/> > > On an old Gateway with 100mb/s IDE interface, I do get 80mb/s thruput. > As for the Chip used I'd have to look, but I belive it is the JMxxxx > chip. > > Cheers >
Thanks, if it is JM this would mean they have working revisions after all. Or that the chips in the adaptors I have are fake, could well be really (given the wildly different behaviour observed). I got mine cheap, from dealextreme - have paid $13.60 for 3, they still have them: http://www.dx.com/p/sata-to-ide-converter-host-728#.U6YSW0BafYo May be too cheap to be genuine (who would expect a chip like that to get faked.... go figure). I'll get back to this in a few weeks time, I'll make ot work one way or the other - should be no rocket science to get a working part, they seem to sell in huge quantities, _some_ of them must be working. But the ones I got wasted me 3 days.... Dimiter ------------------------------------------------------ Dimiter Popoff, TGI http://www.tgi-sci.com ------------------------------------------------------ http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/
On 21/06/14 02:53, Dimiter_Popoff wrote:
> I am trying to start using SATA drives in a system with a SOC > chip which only has parallel ATA. >
I may be asking the obvious, but is it not possible just to continue using PATA drives? They are seldom as big as SATA drives, and cost a little more, but it's not long since I last bought some (as reserve drives for old PC's).
On 22.6.2014 &#1075;. 11:56, David Brown wrote:
> On 21/06/14 02:53, Dimiter_Popoff wrote: >> I am trying to start using SATA drives in a system with a SOC >> chip which only has parallel ATA. >> > > I may be asking the obvious, but is it not possible just to continue > using PATA drives? They are seldom as big as SATA drives, and cost a > little more, but it's not long since I last bought some (as reserve > drives for old PC's). > >
Hi David, it is still (just) possible, but the possibility is quickly going away. At the moment I am waiting for an ebay drive - which is unlikely to ever come, the seller first wanted a delay then marked it as shipped and probably sent nothing (that is a Samsung 160G drive, there are some alternatives I can also explore but they all are end of life). So I must do SATA; and once I get a working chip - they all seem to be qfp64-ish - it will take less space than the 4 xxxx245 buffers (3.3 <-> 5V etc.) I now have on the board. But I have yet to succeed in getting a working part. Dimiter ------------------------------------------------------ Dimiter Popoff, TGI http://www.tgi-sci.com ------------------------------------------------------ http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/
On 22/06/14 11:45, Dimiter_Popoff wrote:
> On 22.6.2014 &#1075;. 11:56, David Brown wrote: >> On 21/06/14 02:53, Dimiter_Popoff wrote: >>> I am trying to start using SATA drives in a system with a SOC >>> chip which only has parallel ATA. >>> >> >> I may be asking the obvious, but is it not possible just to continue >> using PATA drives? They are seldom as big as SATA drives, and cost a >> little more, but it's not long since I last bought some (as reserve >> drives for old PC's). >> >> > > Hi David, > > it is still (just) possible, but the possibility is quickly going > away. > At the moment I am waiting for an ebay drive - which is unlikely > to ever come, the seller first wanted a delay then marked it as > shipped and probably sent nothing (that is a Samsung 160G drive, > there are some alternatives I can also explore but they all are > end of life). > So I must do SATA; and once I get a working chip - they all seem > to be qfp64-ish - it will take less space than the 4 xxxx245 buffers > (3.3 <-> 5V etc.) I now have on the board. But I have yet to > succeed in getting a working part. > > Dimiter >
I can still find a few available in webshops here in Norway - but it certainly seems to be difficult. I didn't think it was /that/ long since I last bought them, but perhaps it was. Certainly if you want to make lots of these systems then you are going to have a challenge. The obvious other solution is to move up from the rather old MPC5200B - there are other MPC chips like the MPC5121e in the same family, but with SATA (and PATA). It's no small change, of course, but it will be a lot more future-proof than relying on PATA to SATA converters. David
On 22.6.2014 &#1075;. 15:34, David Brown wrote:
> .... > The obvious other solution is to move up from the rather old MPC5200B - > there are other MPC chips like the MPC5121e in the same family, but with > SATA (and PATA). It's no small change, of course, but it will be a lot > more future-proof than relying on PATA to SATA converters. > > David >
The 5121 is not much younger (if at all) than the 5200B. I looked into it a few years ago - it is a still born part. Look at the errata, there is one saying "SATA does not work as expected. Workaraound: do not use SATA..." (sort of, my wording but the message is this). Then they have tried to put in the same core as on the 5200B and got it nearly right - but it has a bug in the MMU, one can fix it in software but one does not have to do this on the 5200B. Both cores run at 400 MHz; but the 5121 internal buses go up to 66 (or was it 100) and the 5200B goes up to 133. And the 5200 has the smart DMA which the 5121 does not have. The 5200B is the best part one could use to make a HPGe spectrometer on the market and will likely remain thhat for many years to come; on the netmca-3 it manages all the filtering etc (using lots of FPU FMADD and many other things), run the complete OS, disk I/O and such, maintain its "screen" over tcp (often over more than one connection, this is how I do live customer support). No comparable product on the market and I do not see how I could improve a lot on it, there just is not much more one could possibly ask for. Obviously I will move forward using some of the QorIQ parts, I am eyeing some, but not in that application, the 5200B beats any chip for that hands down. It just needs a decent ATA host -> SATA drive chip which works, from what I hear people do use some and they do work so it is only a matter of locating the correct one. Dimiter ------------------------------------------------------ Dimiter Popoff, TGI http://www.tgi-sci.com ------------------------------------------------------ http://www.flickr.com/photos/didi_tgi/sets/72157600228621276/
Dimiter_Popoff <dp@tgi-sci.com> wrote:
> The chip is meant to do both ways but it is wired as > host ATA -> device SATA. That with a female connector.... and no > series termination at least on the control signals, IORDY at > the very least. Not that it was much help when I put them though, > but it was noticeable, the problem was halved (if not better), > still no good though.
Did they work in a PC? That's the first test for any kind of 'consumer' kit. If not, they're junk. If so, you're doing something wrong (or their idea of 'working' is narrower than yours). Did you try multiple drives, from different manufacturers? Again, implementation may vary. I remember an issue with WDC drives in the early 1990s - they wouldn't respond unless you called the SET CAPACITY command with the size reported by the IDENTIFY information. I have no idea why they were that dumb, but maybe all BIOSes at the time just did that. (This might have been the 'implement just enough firmware until Windows boots, then ship' school of firmware development). The other thing is you have three converters of identical design. While the firmware might be different, you aren't testing independent examples. If one of them has a stupid design fault, they all do.
> Well I can't possibly know what it expects, what I do know is that > by following the ATA standard I have made 3 HDD models and perhaps > 3 (if not 4 or 5) CD/DVD burners work seamlessly. > Then I spent today in further investigation, looked at the bus signals > etc., everything looks good. I played with the programmable timings > (which I had played with 5-6 years ago when I did the ATA interface > for the 5200B), there was just nothing to be had. Except if I slowed > the speed down, but slowing down from 33 MB/S is not acceptable > nowadays, I have a 500G 7200RPM drive which is probably faster > than the 33 anyway (the 5200 won't do more).
It sounds like getting the soldering iron out is probably not a good first step. Check them in the environment they're intended for first (booting Windows) and build up from there.
> Thanks for your reply, I have abandoned the JMicron chip efforts > for now, will look for some Marvell based convertor to test - in a > while, now I have other things to do, that JM sh.t ate the time > I could afford to no sensible result.
If you're putting the chip on the board then the Marvell chip probably makes more sense: I'd trust Marvell more with security of supply than outfits who will probably shift production to (say) USB3 to SATA converters once the PATA market declines. Theo

The 2024 Embedded Online Conference