Fast serial port/SD card adapter for the 1MHz Bus

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
myelin
Posts: 203
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Fast serial port/SD card adapter for the 1MHz Bus

Postby myelin » Fri Nov 10, 2017 11:03 pm

Another new project... this is something I started on ages ago and finally got some PCBs made. It's a CPLD/MCU board that provides a (very) fast USB serial connection for anything with a 1MHz Bus (BBC B/B+/Master, or Electron+AP5). On my Electron, using the prototype of this, I managed to get 39 kB/s (the equivalent of 390 kbaud in a real serial port) in MODE 6

The PCBs just arrived in the mail, so I should have them tested sometime in the next couple of weeks.

serial_front.jpg

It's open source (Apache 2.0 license) like all my other Acorn hardware, and the latest designs live on GitHub here: https://github.com/google/myelin-acorn- ... sd_adapter
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

User avatar
tricky
Posts: 1918
Joined: Tue Jun 21, 2011 8:25 am
Contact:

Re: Fast serial port/SD card adapter for the 1MHz Bus

Postby tricky » Sat Nov 11, 2017 7:23 am

Very nice, I was thinking about something similar in the week. I was thinking MMC but with options for some combination of user port/ADC/speech/D2A. The main difference is that I would g never have got mine made.
Well done =D>

User avatar
myelin
Posts: 203
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Fast serial port/SD card adapter for the 1MHz Bus

Postby myelin » Fri Nov 17, 2017 5:53 pm

... and it works!

I have it running JGH's HostFS, with the only changes being the port addresses (I have TxData and RxData on &FCA0, and TxStatus and RxStatus on &FCA1), and it works beautifully. With my WaitLoadIO fast path, it gets 29 kB/s on pretty much all transfers. Not sure why it's slower than the Electron version, but it's still very quick.

2017-11-installed_in_bbc.jpeg

(Pictured with USB cable disconnected)

I haven't tried out the SD port yet, but I should be able to get MMFS working without too much trouble, using the Electron Plus 1 interface (and maybe the fast shift register interface, although the CPLD is getting pretty full).
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

User avatar
myelin
Posts: 203
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Fast serial port/SD card adapter for the 1MHz Bus

Postby myelin » Sat Dec 02, 2017 1:12 am

I just posted one of these off to Dominic Beesley, and it appears that a single PCB just counts as a "letter" to the USPS, which means I can post them out pretty cheaply to anyone who wants one. I don't have time to assemble them, but if anyone wants a bare PCB, PM me an address and I'll post you one!
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.

User avatar
danielj
Posts: 5347
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester

Re: Fast serial port/SD card adapter for the 1MHz Bus

Postby danielj » Sat Dec 02, 2017 7:24 am

=D> very impressed! I'd love one, and if anyone wants some putting together, I'm happy to oblige (you can ping them directly to me and I'll construct and pass on). Will drop PM shortly :)

User avatar
myelin
Posts: 203
Joined: Tue Apr 26, 2016 9:17 pm
Location: San Francisco, CA, USA
Contact:

Re: Fast serial port/SD card adapter for the 1MHz Bus

Postby myelin » Thu Dec 14, 2017 7:42 pm

Let's talk about construction here! Daniel has his boards, which means Dominic's probably arrived a week or so ago.

Firstly: the details are always at http://myelin.nz/acorn/bbcserial -- that'll always redirect to the best location for the board.

I'll update that with a proper bill of materials sometime, but for now here's what you need:

- 1 x XC9572XL-*VQG44* (44-pin 0.8mm TQFP. Speed rating doesn't matter. I've been using Digikey part number 122-1448-ND, but that's out of stock right now, so 122-1981-ND is the next cheapest. Just search for XC9572XL VQG44 and anything there should be good.)
- 1 x 2x5 header for CPLD programming (Digikey ED1543-ND), or you can just use bare pin headers
- 1 x MCP1700T-3302E/MB regulator (Digikey MCP1700T3302EMBCT-ND)
- 1 x right angle 2x17 female connector for the 1MHz bus (Digikey S5570-ND)
- 1 x micro SD socket (digikey HR1941CT-ND)
- 3 x 0805 100nF capacitors
- 2 x 0505 1uF capacitors
- 1 x Pro Micro board (from ebay/aliexpress -- make sure you get the one that looks like the pic above, with the micro USB socket; I've seen another kind that doesn't include USB)
- 1 x 3-pin 0.1" spacing header (you probably have this lying around already)
- 2 x 12-pin 0.1" spacing header + 2 x 12-pin 0.1" spacing receptacle for the Pro Micro

Assembly tricks:

- Pin 1 of the CPLD is marked with a little bubble on the PCB; it's in the bottom left corner. There's a matching mark on the chip.
- Refer to the picture above / on the project site for orientation for the JTAG header and Pro Micro.
- You can either solder the Pro Micro right onto the board by soldering two 12-pin headers onto the board, then dropping the Pro Micro on top and soldering it on, or you can make it removable by soldering the headers onto the underside of the Pro Micro board, and soldering two 12-pin receptacles onto the board. I have it set up this way because I'm experimenting with different microcontrollers, but it's safe enough to solder the Pro Micro board right in there if you prefer.

Programming the CPLD:

- I use a J-Link and a hacked up version of XC3SPROG. Once anyone gets to this point I'll figure out how to get this working for them. Let me know what programming tools you have sitting around... if you have something that's already XC3SPROG-compatible like a generic FT2232-based JTAG adapter or a Bus Blaster, that's easiest, but also any JTAG adapter that works with OpenOCD is fine, because it can program a chip given an SVF file.
SW/EE from New Zealand, now in San Francisco: http://myelin.nz/
Having fun making hardware projects for the Electron!
So far: 32k flash cart, USB cart interface, 3-cart expansion, Elk PiTubeDirect. Later: Dual ported ram cart.


Return to “hardware”

Who is online

Users browsing this forum: myelin and 6 guests