Home | Forums | What's new | Resources | |
PC Comm Card |
Edge-` - Feb 21, 2006 |
< Prev | 1 | 2 |
RockinB | Mar 19, 2006 | |||
Wow antime, that sounds very interesting. So you are using the serial communication port on the back of the Saturn? IIRC there were some people trying to use it but they had no success. This solution is great, much better than the cartridge approach, cheaper and programs uploaded can use any existing cartridge. Too bad that I haven't got such a deep knowledge in that direction, I never thought that gdb could work on Saturn. If I could use gdb with source level debugging on a real Saturn, it would be a major improvement for me. What about profiling, is there a possibility to use it on Saturn, too? I should consider building such an adapter. Can you please tell a bit more about it, it's possebilities and stuff. How expensive would it be to build one and what skill is needed. Thanks antime!!! |
antime | Mar 19, 2006 | |||||||||||||
Yes. I put the module inside the Saturn, but I soldered the wires to the link port's test pads, so I think using a chopped-up link cable should work. TakaIsSilly had problems using a MAX232 because the port's power supply is so poor. I took the power directly from the power supply, but the chip can be configured to take its power from the USB port, so that shouldn't be an issue.
Don't be so quick to dismiss the cart-based solutions. While the link port approach is much simpler in terms of hardware you lose big-time in software complexity. So if you still have a functioning Commlink or get one of Pinchy's carts I would recommend you use asynchronous comms for both CPUs. That way you will have the best of both worlds.
gprof will be more difficult to make work, as it's not designed to be used with embedded systems. Hacking around the profiling functionality so it records to a RAM cart which can then be dumped to a PC might work, but I don't know how much work that would involve. Profiling in general is of course possible.
The DLP-2232M module... I used costs around 30â¬, other than that you need some wire and possibly a prototyping board. If you want to make an external converter you'll also need a Saturn system link cable or a connector that fits the port. Depending on how you choose to configure the module you then need to solder four or five signal wires and around five power wires and six ground wires (again, depending on configuration). If you choose to use asynchronous mode and virtual comm-port drivers then potentially any program that uses serial ports can directly talk to the Saturn. This includes terminal emulators, GDB, and so on. The transfer speeds will however be much lower (the SH7604 manual lists 224 kbit/s as the maximum bit rate for async mode). If you choose to use the direct-access drivers (in async or synchronous modes) you will need to make modifications to existing software or write replacements yourself. Synchronous mode is very fiddly to use, and it's easy to cause communication errors that will either cause the transfer to get out of sync or that will make the SH-2's serial interface stop transmitting or receiving. Two interesting features available with the serial ports are serial interrupts and the ability to use DMA for the data transfers. This means you can break into a program running on the Saturn (a must for debugging), and stream data in the background. Unfortunately the data rates are not enough for CD emulation, but it has its uses. |
seal1 | Mar 19, 2006 | |||||||
I�m able to do it in less then your 17 sec, coz my PCCOMMSLINK is 114kb/s fast ;-) still have my old asus t2p4 mobo with ISA. but currently I�m only into playing GT Legends so I don�t need to load big stuff to saturn, so my yano/exstand is enough with 66 kb/s for files like 4-8 kb. but hopefully soon a faster solution would be great if I stay on homebrew-saturn-developing and stuff getting bigger.
I hear/read often from fat or bursted caps from pc-sites or magazines, never got this problem myself the last 10 years with any PC. so perfect setup would be pinchy�s card for transfering and antime�s in async-mode for gdb and a cd-emu-lib thats works over one of them. how did psyQ the debugging ? there did it over their card not serialport. AFAIK you must solder a/some wire(s) internally in the saturn to the card-port. |
antime | Mar 19, 2006 | |||||||||||||
Although it exceeds the specification, the Saturn seems to work with a 1.2MHz serial clock, which gives 138 KB/s, so ha!
I agree that most transfers are very small and that modem speeds are for the most part quite tolerable.
This problem only really started with the last generation of ISA-equipped motherboards (Athlon and P3/P4-compatible boards).
It occured to me that you could possible connect both of the FT2232's channels to one CPU. That way you could do bulk transfers in synchronous mode over one channel and then switch to the other one for use as a console/debugging/whatever. |
RockinB | Mar 20, 2006 | |||||||||||||
Why is this MAX232 necessary? When I look on my DC coders cable, there such a thing(max3232cpe+capacitors), too. Just a serial cable won't do?
What do you mean? The transfer speed isn't that importand and I don't see any need for a CD emulation over cartridge, since CD's can be burned and their content doesn't change that much (and if, there are still emus).
Profiling would really be cool and though one can implement some execution time measurement, it's not the same. Seems like gcc does insert the profiling code(-gp), so that code needs to be modified to write to a RAM cart. Or is that code part of some standard library?
Oh, that's quite much. It would make this solution at least as expensive as the other. What a pitty. Why not just making a Freewing for USB(there are so many people working on different approaches currently...)? The thing is I'm looking for a cheap option that I could give the C4 contestants for free(?), so that they can test code on real Saturn. Source code level debugging is most useful in my opinion. |
seal1 | Mar 20, 2006 | ||||
cheapest ... even DLP-TRTX would cost 20-25 € but speed would only be 36 kb/s ? there are other cheaper usb-solutions, but w/o good docs or no (free) drivers for all systems or only chip w/o board. and you have to buy huge amount of quantities like 100 or 1000 to get prices like 5€ but you still need a expensive custom connector for saturn or hook it directly into saturn and do swap trick to boot serial-link-soft. serial cable with a max232 will be cheapest, but is TakaIsSilly´s thing fully working ? I thought he stopped his development. the max232 is a level-converter I think for converting sega-serial-port (3 or 5v) to pc-serial-port (12 or 20v) ? unless you have a chipped saturn (I know u got recently a chipped one) for booting the serial-transfer-soft (assume swaptrick will kill your nerves and saturn) you always need a EMS 4in1, so a freewing usb would more cost: +20 € EMS 4in1 + shipping +25-35 € usb solution + shipping, still no f*cking local store sell such stuff +5-20 € freewing-parts from local dealer = not cheap I think antime´s board/chip could also be configured to be a LPT, so you can stick with the same usb-board and use is sometimes as serial sometimes as parallel port. I think about it to buy some (also for other projects) of this DLP-2232M modules from UK or Sweden (still got no dealer in Germany) or even from USA(maybe it´s cheaper there because of the strong Euro). maybe you want jump on ? |
ExCyber | Mar 20, 2006 | |||||||
Nope, the Saturn/Dreamcast serial ports use RS-232 protocol but TTL/CMOS (not sure which) voltages. The MAX232/3222/etc. are level shifters that interface it to a "real" RS-232 port (+/-12V)
What flash chip did you use? |
antime | Mar 23, 2006 | ||||||||||
Managing a serial line vs. pumping a FIFO. In synchronous mode it's also very easy to lose/insert bits, causing the transfer to get misaligned.
I think it would be enough to implement the syscalls used to write the profiling info, but I haven't really researched the subject. For profiling small bits of code the simulator in GDB should be enough.
If you want cheap, implement Mask of Destiny's SegaCD transfer cable for the Saturn. Joypad extension cables and parallel port connectors don't cost much, but parallel ports are a dying breed. Basic USB-serial converters are also cheaper, but more limited. SiLabs' CP2102 should be supported in Linux and OS X nowadays so there's a bit more choice available. |
RockinB | Mar 23, 2006 | ||||
Guess not, I'm really interested in this thing, but I would rather like to use it instead of starting another project just to get it running. Besides the costs, can it be used with WinXP, too? Someday I'd really like to have such a thing, but I'd like to wait a bit (for success messages, hehe). |
antime | Mar 23, 2006 | |||
FTDI have direct-access drivers for Windows available on their webpage. I ran into some issues where the device would suddenly stop transmitting data, but the same code ported to libftdi on OS X worked perfectly. It looks like a driver bug, but the situation where the problem occurs is so obvious I doubt it is one. |
seal1 | Mar 23, 2006 | ||||
no prob, at first I play around with pinchy´s interface and then maybe I try the serial-usb for source-level-debugging. there are 2 kinds of drivers: - one direct-access (http://www.ftdichip.com/Drivers/D2XX.htm...) for windows and linux - and one virtual COM (http://www.ftdichip.com/Drivers/VCP.htm...) for windows, linux, macos 8,9,X @antime you tried only the direct-access ? or any success with the VCP under windows. |
antime | Mar 24, 2006 | |||
Only the direct-access drivers, as the whole point of the project was to use the MPSSE mode. |
< Prev | 1 | 2 |