Hi everyone , im a newbie when it comes to fpgas and i would like to ask the following questions:
1.I would like to work on a drive emulation project(standard CD-ROM up to 300KB/s transfer rate) and i would like to know if arduino is enough for this
2.I read that i can compile c/c++ code with arduino , is this true ?
3.Which arduino would you recommend (it has to have an SD interface) ?
4.What else whould i need to connect this http://www.eachgame.hk/images/200911/goods_img/963_G_1258443221118.jpg to arduino and start experimenting immediately ?
If you think you are going to connect a CD ROM device to an Arduino, you have a lot to learn.
I want to emulate a drive so that the device im planning to attach to the adruino sees it as an actual drive.Adruino will only
proccess the drive commands.
Perhaps what im looking for is an FPGA ?
Stream it where? You can't send 300 kilobytes per second from the Arduino anywhere.
SD->Andruino->Back to device attached to andruino.
I want to emulate a drive so that the device im planning to attach to the adruino sees it as an actual drive.
What device are you planning to attach to the Arduino? If the device IS a CD ROM, the Arduino will not "see" it as a CD drive. You will not be able to read from/write to it.
Adruino will only proccess the drive commands.
What does this mean?
SD->Andruino->Back to device attached to andruino.
How are you planning to communicate with this device? You only have four choices:
Serial - the maximum supported baud rate is 115,200 bits per second, with one start and one stop bit per byte. That limits you to 11,520 bytes per second - a far cry from 300,000 bytes per second.
SPI - requires that the other device support SPI; Speed?
I2C - requires that the other device support I2C; Speed?
Roll-you-own - can not possibly be faster than built-in hardware supported methods.
What device are you planning to attach to the Arduino? If the device IS a CD ROM, the Arduino will not "see" it as a CD drive. You will not be able to read from/write to it.
The device is a 90s gaming console with a dead drive.
I will not attach any drive unit to the Arduino.i will only attach the Arduino with the ATA interface on the console's motherboard and then i will emulate the commands(READ,SEEK,STATUS) sent by the console and forward them to a file on SD card.
oNoo:
The device is a 90s gaming console with a dead drive.
I will not attach any drive unit to the Arduino.i will only attach the Arduino with the ATA interface on the console's motherboard and then i will emulate the commands(READ,SEEK,STATUS) sent by the console and forward them to a file on SD card.
So, you want your console to be able to use the SD card as its HD? If so, you'll have much better luck finding the correct variant of this.
i will only attach the Arduino with the ATA interface on the console's motherboard and then i will emulate the commands(READ,SEEK,STATUS) sent by the console
I don't think emulate is quite the right term.
You need to understand how the console issues commands over the ATA interface. Whatever that method is, you need to attach the wires that are affected by the console issue the commands to the Arduino, and read the signals that come through those lines. Timing could be (probably is) quite critical. Likely, you'll need to use interrupts to be able to get anything from the ATA interface.
Then, you'll need to map the "command" you receive to something that makes sense for the SD card/library. Finally, you'll need to send that data back, via the ATA interface, to the console.
Again, timing might be critical when wiggling the pins to form something that the console understands as the same data you tried to send.
Forget doing all this at 300 kilobytes per second.
get arduino uno, its cool, fancy and powerful processor. and the latest version.
Thanks.But is it compatible with the sd library ?
I don't think emulate is quite the right term.
This has been done before for the ATARI/WII/XBOX360 and they use the term "drive emulation".
You need to understand how the console issues commands over the ATA interface. Whatever that method is, you need to attach the wires that are affected by the console issue the commands to the Arduino, and read the signals that come through those lines.
Finding the commands is no problem.They're available from PC software emulators.
Timing could be (probably is) quite critical. Likely, you'll need to use interrupts to be able to get anything from the ATA interface.
Then, you'll need to map the "command" you receive to something that makes sense for the SD card/library. Finally, you'll need to send that data back, via the ATA interface, to the console.
Again, timing might be critical when wiggling the pins to form something that the console understands as the same data you tried to send.
Forget doing all this at 300 kilobytes per second.
The drive has 2 modes : 1x(150KB/second) and 2x(300KB/second).
If i could get it to work even with less speed than the theoretical i will be happy enough and upgrade my hardware just to get it to the max.