Pages: [1]   Go Down
Author Topic: Interfacing with SATA?  (Read 5070 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm working on a project at home and I need to be able to interface with SATA cables.

First, I need to be able to log the data being sent from the SATA bus to the Arduino. I thought about using an SD card or flash drive, but I figured it would be easier to just directly print all incoming data to the serial lines going to my laptop.
That should work right? I could have the SATA receiving lines wired to 2 analog input pins and have that print the data straight to the serial interface. Would this work? How would I go about doing that?

The next part seems tricky..
I need to be able to have the Arduino read what's being sent to it from the SATA interface, and then write information back to the source. You can think of it like an if, then statement. If the incoming data from the cable reads a certain string, then the Arduino will send back a string based on that.

Would anyone have any information on how I could go about doing this?
Logged

Cumming, GA
Offline Offline
Edison Member
*
Karma: 20
Posts: 1663
Ultimate DIY: Arduino
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The UART is not rated at 6G/sec.

It's like asking a snail to chase cars on the highway...

Serial Data rate is based on Crystal Oscillator and compared to SATA... the arduino is very slow at serial I/O.  You would need some form of SATA co-processor... and the ones that are available would likely not be designed to be interfaced with embedded microcontrollers.
« Last Edit: November 16, 2009, 10:38:05 pm by pwillard » Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The SATA interface I'm using is either SATA 1 or 2, most likely 1.
That's only 1.5GB/s, not 6.

Is it still possible?
Like, is there absolutely any possible way to do this?
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Like, is there absolutely any possible way to do this?

Use a computer  smiley-wink  Seriously, from the description of what you want to do, you need a computer.  Maybe if you explained it better we could offer more suggestions.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

At the moment I need to have the SATA cable connected to the Arduino so that I can log the data being sent over the SATA cable.
After analyzing that and checking out the parts that I need, I need to have the Arduino read what's being sent, and depending on what's sent, it needs to output back a string.

For example:
The host (SATA) sends a string asking what, for example, DVD is in a drive. The Arduino needs to read this string, and send back that it's a certain DVD.

I found this:
http://www.jmicron.com/PDF/JMB352/JMB352.pdf
and a supplier for it, but I have yet to find a pinout or even a picture of it to know what I'm dealing with or if it will even work.

If I can convert the SATA signal to USB, it'll slow the transfer rate significantly enough that I can interface with it.

Would I be able to go SATA -> USB -> Serial and interface with it over the Arduino Serial interface?
Logged

Sofia, Bulgaria
Offline Offline
Full Member
***
Karma: 0
Posts: 237
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Any such serious endeavour might get better help by the crowd at avrfreaks.net. I say that, because many the guys there have undertaken more serious projects than your average aruinoist and because you probably want to use an AVR processor, the same as in the Arduino. So check them, and their forum out.
Logged

Lancashire, UK
Offline Offline
Edison Member
*
Karma: 9
Posts: 1991
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
It's like asking a snail to chase cars on the highway...

Probably closer to a snail chasing the space shuttle....  smiley

The arduino now is about where computers were 30 years ago performance wise.  Its a 16mhz 8 bit cpu with 2k of ram.

Forget USB, if you could live with uSB 1.0 performance (slow) on your SATA, the arduino could only perform at 1% of that via its USB.

Use a computer to monitor the SATA traffic and pass info to the arduino when you want it to do something.
Logged


0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It's a serious project, trust me.
But thank you, I'll check it out.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hiya,

the jmicron chips I'v e been looking at as one failed in a usb sata enclosure had an imbedded intel 8051.

The chip set Iwas looking at was the jm20316 i think replaced by the jm 20336, on the controller/interface board there was some flash supporting usb/drive.

Hope that helps. I only know the 8051 in passing along time ago.

Dave

Logged

Pages: [1]   Go Up
Jump to: