initial
This commit is contained in:
commit
9310fe6abc
112
benchmark.txt
Normal file
112
benchmark.txt
Normal file
@ -0,0 +1,112 @@
|
||||
64K
|
||||
|
||||
bilbo@localhost ~ $ dd if=/dev/random of=random bs=64K count=1
|
||||
1+0 records in
|
||||
1+0 records out
|
||||
65536 bytes (66 kB, 64 KiB) copied, 0.000637442 s, 103 MB/s
|
||||
for i in `seq 1 10`; do ./tools/ftdi_transfer write 0xac010000 random |& grep -E 'measured|crc'; done
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.426 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
remote crc: 2af6d258; local crc 2af6d258
|
||||
measured write time : 0.425 seconds
|
||||
|
||||
1MB
|
||||
|
||||
dd if=/dev/random of=random bs=1M count=1
|
||||
1+0 records in
|
||||
1+0 records out
|
||||
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00464291 s, 226 MB/s
|
||||
for i in `seq 1 10`; do ./tools/ftdi_transfer write 0xac010000 random |& grep -E 'measured|crc'; done
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.666 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.666 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.663 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.667 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.667 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.667 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.665 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.667 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.664 seconds
|
||||
remote crc: de34b971; local crc de34b971
|
||||
measured write time : 6.666 seconds
|
||||
|
||||
8MB:
|
||||
|
||||
dd if=/dev/random of=random bs=8M count=1
|
||||
1+0 records in
|
||||
1+0 records out
|
||||
8388608 bytes (8.4 MB, 8.0 MiB) copied, 0.0240846 s, 348 MB/s
|
||||
for i in `seq 1 10`; do ./tools/ftdi_transfer write 0xac010000 random |& grep -E 'measured|crc'; done
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.247 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.271 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.245 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.242 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.242 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.251 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.271 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.245 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.242 seconds
|
||||
remote crc: 1c92e87c; local crc 1c92e87c
|
||||
measured write time : 53.270 seconds
|
||||
|
||||
15MB:
|
||||
|
||||
dd if=/dev/random of=random bs=15M count=1
|
||||
1+0 records in
|
||||
1+0 records out
|
||||
15728640 bytes (16 MB, 15 MiB) copied, 0.0500857 s, 314 MB/s
|
||||
for i in `seq 1 10`; do ./tools/ftdi_transfer write 0xac010000 random |& grep -E 'measured|crc'; done
|
||||
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.868 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.868 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.870 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.865 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.822 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.869 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.819 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.821 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.871 seconds
|
||||
remote crc: 55797d82; local crc 55797d82
|
||||
measured write time : 99.866 seconds
|
1
ftdi_transfer_readme.txt
Normal file
1
ftdi_transfer_readme.txt
Normal file
@ -0,0 +1 @@
|
||||
- windows drivers / d2xx / vcp
|
41
prototype-differences.txt
Normal file
41
prototype-differences.txt
Normal file
@ -0,0 +1,41 @@
|
||||
This is a pre-production prototype. It does not represent the final product.
|
||||
|
||||
The production version will include (at least) the following changes:
|
||||
|
||||
- PCB schematic: The SH7091 SCIF is able to use the RTS2 and CTS2 signals as
|
||||
GPIO. However, if RTS and CTS are routed to ADBUS on the FT232H, it is not
|
||||
possible to simultaneously configure ADBUS signals as both UART and GPIO. For
|
||||
this reason, a new PCB revision will instead route RTS/CTS to the FT232H
|
||||
ACBUS. This will allow simultaneous RX/TX UART on ADBUS and GPIO on ACBUS. The
|
||||
intent is to allow for more interesting out-of-band signaling, in addition to
|
||||
what is possible with a plain UART.
|
||||
|
||||
- PCB schematic: rearranged all ACBUS connections; LEDs moved from ACBUS8/ACBUS9
|
||||
to ACBUS0/ACBUS1; G-RESET moved from ACBUS1 to ACBUS5; SCK moved from ACBUS0
|
||||
to ACBUS6.
|
||||
|
||||
- PCB layout: increase the size of the serial connector footprint pads
|
||||
|
||||
- PCB layout: increase clearance between passive components and serial connector footprint
|
||||
|
||||
- PCB layout: complete redraw
|
||||
|
||||
- PCB layout: changed USB connector type from USB Mini-B to USB Type-C
|
||||
|
||||
- PCB layout: replaced FT232HL with FT232HQ due to component shortage
|
||||
|
||||
- Serial connector: shield tin-plating applied at the factory
|
||||
|
||||
- Serial connector: conductive pin tin-plating applied at the factory
|
||||
|
||||
- Serial connector: increase thickness of shield pins
|
||||
|
||||
- Serial connector: slightly redimensioned to reduce grinding required for a
|
||||
perfect fit in the female connector
|
||||
|
||||
- Serial connector: holes at the front of the pin guides were removed; this is
|
||||
to prevent inconsistent bridging seen in some earlier samples
|
||||
|
||||
Other changes that are under consideration:
|
||||
|
||||
- possible inclusion of a Nylon case/enclosure for the PCB (depending on feedback/demand)
|
37
questionnaire.txt
Normal file
37
questionnaire.txt
Normal file
@ -0,0 +1,37 @@
|
||||
- Would you pay $50 USD + $8 (US) shipping for this adapter?
|
||||
|
||||
Commentary: The serial connector is the main bottleneck on lowering the price.
|
||||
|
||||
- What is your favorite USB connector:
|
||||
|
||||
- USB Type-B (full-size)
|
||||
- USB Mini-B
|
||||
- USB Micro-B
|
||||
- USB Type-C
|
||||
|
||||
Commentary: I think USB Mini-B has a good balance between connector strength
|
||||
and size. USB Type-C might be more popular though.
|
||||
|
||||
- Would you pay $10 for a high-quality plastic case for this serial adapter?
|
||||
|
||||
Commentary: I think the exposed PCB has a nice aesthetic. I am also concerned
|
||||
about the clearance between the Dreamcast serial port and the Dreamcast AV
|
||||
port. It is deliberate that this serial adapter PCB is nearly as narrow as
|
||||
possible.
|
||||
|
||||
- The maximum configurable Dreamcast SCIF speed is 1.5Mbit/s. However, it may be
|
||||
possible to achieve faster speeds by overclocking the SCIF via the SCIF
|
||||
external clock input. If a 1.5Mbit/s adapter is priced at $50 USD, would you
|
||||
pay $100 for an adapter with that can transmit and receive at an overclocked
|
||||
2.0Mbit/s?
|
||||
|
||||
Commentary: I think this is a funny idea, but I doubt people want to pay for
|
||||
it. It is almost certainly a better idea to make a G2 bus (modem connector)
|
||||
peripheral for this instead.
|
||||
|
||||
- Do you think there should be a similarly-priced serial adapter product for
|
||||
Sega Saturn?
|
||||
|
||||
Commentary: Sega Saturn is slightly more interesting because there are three
|
||||
completely separate serial interfaces on the same connector. This is a perfect
|
||||
use-case for the FT4232H quad-channel UART chip.
|
90
summary.txt
Normal file
90
summary.txt
Normal file
@ -0,0 +1,90 @@
|
||||
Product summary:
|
||||
|
||||
Dreamcast USB-UART adapter, featuring new durable Dreamcast serial connector.
|
||||
|
||||
Does not contain recycled/scavenged components from any Sega-original product.
|
||||
|
||||
Usable as a COM/tty port with generic software (FTDI VCP drivers required on
|
||||
Windows; usable with no configuration on Linux). Custom software is also
|
||||
provided for more advanced functionality.
|
||||
|
||||
What can you do with it?
|
||||
|
||||
This product is primarily intended for people interested in developing new
|
||||
software for Sega Dreamcast.
|
||||
|
||||
For Dreamcast units with boot ROMs that will load software from CD-R (e.g: VA0,
|
||||
VA1).
|
||||
|
||||
Example/suggested use-cases include:
|
||||
|
||||
- copy newly-written software from a PC to Dreamcast RAM for rapid compile/test cycles
|
||||
|
||||
- create dumps of Dreamcast texture memory (framebuffer "screenshots", Holly/emulator development, application debugging)
|
||||
|
||||
- SH4 debugging via GDB
|
||||
|
||||
- serial printf debugging
|
||||
|
||||
- interactive text console via a terminal emulator (minicom/picocom/screen/putty)
|
||||
|
||||
Many other data transfer use-cases are possible, including VMU save backups and
|
||||
CD-ROM/GD-ROM backups.
|
||||
|
||||
Features:
|
||||
|
||||
- Capable of sustained data transfer at 1.5 Mbit/s, read and write (the
|
||||
maximum configurable speed of the Dreamcast SCIF)
|
||||
|
||||
- Dreamcast global reset, user-controllable via USB (reset the Dreamcast
|
||||
without pressing the power button)
|
||||
|
||||
- Two LEDs, user-controllable via USB (by default configured as TX/RX activity LEDs)
|
||||
|
||||
Transfer benchmarks:
|
||||
|
||||
Benchmarks are performed using the `ftdi_transfer` open source transfer program
|
||||
on Linux.
|
||||
|
||||
- 50 kbyte @ 0.425±0.001 seconds (idealized time: 0.419 seconds)
|
||||
- 1 Mbyte @ 6.666±0.002 seconds (idealized time: 6.711 seconds)
|
||||
- 8 Mbyte @ 53.253±0.015 seconds (idealized time: 53.687 seconds)
|
||||
- 15 Mbyte @ 99.854±0.026 seconds (idealized time: 100.663 seconds)
|
||||
|
||||
The integrity of the bytes transferred in each transfer are checked and
|
||||
verified. Each test is repeated and averaged 10 times.
|
||||
|
||||
The results where the benchmarked speed is faster than the idealized time are
|
||||
not a mistake. This occurs because FT232H chip is transmitting at 1573770
|
||||
bits/sec, which is 0.721% faster than the Dreamcast's 1562500 bit/s. The SH7091
|
||||
manual specifies (receive) speeds within 1% of the configured rate are
|
||||
acceptable. Because the SH7091 SCIF performs 16x oversampling of the received
|
||||
serial data and resynchronizes on every start bit, this effectively means that
|
||||
the SCIF is being "overclocked" by 0.721% when the receive line is driven by a
|
||||
FT232H.
|
||||
|
||||
The results where the benchmarked speed is slower than the idealized time is
|
||||
because the round trip time of an extra USB transaction is included in the
|
||||
benchmark measurement. This extra USB transaction is used to retrieve the CRC32
|
||||
checksum of the transmitted data, as computed by the Dreamcast. The extra USB
|
||||
transaction is also used to positively affirm the serial transfer is complete
|
||||
(and not simply queued in the FT232H transmit buffer). This USB transaction
|
||||
latency is relatively constant, and becomes insignificant with larger transfers.
|
||||
|
||||
Technical specifications:
|
||||
|
||||
Dreamcast serial connector:
|
||||
|
||||
- Aluminium shield/shroud (SLM 3d-printed)
|
||||
|
||||
- Aluminium conductive pins (laser-cut sheet metal)
|
||||
|
||||
- Plastic pin-housing (SLA 3d-printed)
|
||||
|
||||
USB UART PCB:
|
||||
|
||||
- FTDI FT232H USB UART
|
||||
|
||||
- 93LC56BT 2kbit configuration EEPROM
|
||||
|
||||
- custom 4-layer PCB
|
Loading…
x
Reference in New Issue
Block a user