News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_PulkoMandy

Albireo - USB/SD/Serial interface for CPC

Started by PulkoMandy, 15:54, 18 October 15

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

PulkoMandy

Hello wiki!


Those of you following the wiki edits carefully or reading push'n'pop forums may have heard about it already. Here comes a new interface from PulkoTronics!


What's in it?

       
  • USB host to plug USB devices to the CPC
  • Built-in support for mass storage devices and FAT32 filesystem, "easy" access to files (that is easy if you know z80 programming for now, later it will be really easy as the appropriate tools are written)
  • Built-in fast SD card port (6MHz), also with FAT32 support,
  • Built-in fast serial port (150KB/s, 13 times faster than the CPC Booster) with USB connector to communicate with another computer, integrated buffers and flow control.
  • Remote computer can trigger an interrupt or reset the CPC, useful for cross-development setups.
  • Configurable interrupts - can send NMI, INT, or nothing at all
How does it works?

       
  • There are two main devices: the CH376 handles the USB host and SD card side of things, and is accessed at FE80 (data) and FE81 (command/status). The communication side is handled by a TL16C550D, mapped at FEB0-FEB7. This is similar to the chip used on most PC hardware and some Amiga expansions like the SilverSurfer.
  • There is an FT230X chip to convert the UART to USB for connecting with a modern PC (standard serial ports are not that common anymore, and they wouldn't be fast enough anyway). The FT230X also generates 12MHz and 24MHz clocks for the two other chips.
  • The 16C550 "modem control" lines are connected to various things (CH376 interrupt, FT230X general IO pin for remote control) and turns them into interrupts.
What is it useful for?

       
  • Not much currently because there is no software yet, but in the future:
  • Use the USB key or SD card directly from BASIC and well-behaving apps (which support extra disk ROMs and a C drive). Load games and tools from the mass storage media,
  • Connect to another computer like the CPC Booster, load snapshot, DSK or other files from it and write them to floppies or the mass storage media. A snapshot of 128K could be loaded in 0.86 seconds, a snapshot of 64K in less than 0.43 seconds.
  • Use SLIP (serial line IP) and a properly setup gateway (Linux machine or similar) to connect the CPC to the Internet.
Where to buy one / How much does it cost?
I guess no one will want to manufacture them for me, so I'll have to solder everything myself?
The price for this will be 24.90 euros + shipping (same as the MiniBooster). It pays for all the parts, and the time I spend assembling and debugging the boards.
Current status
I just finished routing the board and drawing the schematics. Help welcome in checking them. I also hand-built a prototype with only the USB mass storage part, which is working fine when I test it from BASIC.
I have not written any serious software for the board, yet. I hope I can get some help with that, at least.
How does it look?

       
  • I have not built the boards yet, but you can find 3D rendering and schematics on my webserver: Index of /drop/albireo/
  • The board is 69x41mm, same width, but smaller height than the now well-known Mother-X4 format. It should fit on the MX4 without any problems, or of course you can use it standalone (but the board has no built-in ROM, so don't expect direct use from BASIC without a ramcard, megaflash/flashgordon, or any other way to add the appropriate ROM).
  • The Kicad project file is available: ch376 in CPC stuff – avrstuff
There is no software available for this board currently
What you buy is only the hardware. You will have to write your own drivers for it or wait for someone to provide support (as a tool loadable from disk, a ROM, etc). While I have started some work on a ROM, I make no promises or guarantee that I will get that to work, and if I do, when it will be made available.


What will be possible with appropriate software
Some people will want to use it to load games from it. Remember that it is not a floppy emulator. This means, anything accessing the floppy disk without going through the AMSDOS system ROM, will not load.
Anything that uses AMSDOS, but initializes only ROM 7 or ignores the current drive setting, will not work.


The ROM will also use some memory for itself, which can also create some issues. It's possible to keep the RAM use quite low, but still some bytes will be used at least to store the new RSXs from the ROM.


BASIC programs should not be a problem, more complex software may need some patching. To get an idea, the games with 1 or 2 blue dots listed here will most likely work: http://cngsoft.no-ip.org/cpc_lzx.htm . The one with red dots will not (this is for the unprotected games).


What will be possible without a ROM
If you don't have a ROM expansion already (RamCard, Rom Board, MegaFlash, FlashGordon, X-Mem or similar), this board can still be used with software running in RAM. In that case, the software must be loaded from disk or tape - no autoboot support! The software will of course use some memory for itself, which possibly means even more compatibility problems if you want to use it as a game loader.


I don't plan to provide this kind of software, at all - because I don't need it myself. If someone else decides to attempt it, I can provide support, hints and technical documentation (writing the programming docs and examples is higher on my TODO list than writing the software).


Power supply
There was a question about the power supply required for the board. It needs 5V, and the power consumption is around:

       
  • Glue logic - 20mA
  • CH376S - 30mA
  • TL16C550D - 10mA
  • FT230X - 8.3mA
  • [/l][/l]
Total: 69mA, to which you need to add power for an SD card (30 to 100mA depending on the model chosen) and/or USB devices.
[/list]

VincentGR


PulkoMandy

#2
Kicad source files if you want to have a closer look at the schematics or PCB and make some changes:
ch376 in CPC stuff – avrstuff


Help reviewing the schematic and PCB will be appreciated, it would be nice if I can get the boards to work without patches when I build the first batch.

gerald

Quote from: PulkoMandy on 16:26, 18 October 15
Kicad source files if you want to have a closer look at the schematics or PCB and make some changes:
ch376 in CPC stuff – avrstuff


Help reviewing the schematic and PCB will be appreciated, it would be nice if I can get the boards to work without patches when I build the first batch.
Some suggestion :
- SD socket : you should have pull-up on unused D1 and D2 pin.
- U5 : use a 74ls38 instead of 74ls00. This is an open drain quad 2 input nand. You can then remove the diodes to NMI/INT. You will however need to add a pullup to the RESET output.
- Since you mostly use SMD component, I suggest you to try to have most of them on the same PCB side. You then can use a stencil for solder paste and hot air reflow. This is far quicker to solder.

Gryzor

Ohhh shald we start counting orders yet? :)

PulkoMandy

#5
Maybe people want to know the approximate price first? But we can start counting, yes.


@Gerald: thanks, I modified the Kicad project to use an LS38. I'm not sure there is a way to fit all the ICs on the same side unfortunately (and I don't want to redo all the routing for now). I don't have the hardware for that kind of soldering available anyway...


[edit]
Pricing information now available: I can sell the board for 24.90 euros + shipping, same price as the Mini Booster.


I will wait a little more for comments and reviews of the schematic (and look at it again after some time thinking about something else so I can see my own mistakes), then I'll start ordering all the parts. I will also start writing some docs for it, since the CH376 docs are not that easily understandable if you don't speak chinglish  :laugh: .

TFM

Hi Pulko, this is an awesome project!


I would like to order two of them and also support them with FutureOS and my games.


One question (since I'm not into USB). Could your card be used to create a CPC network, something like 5 CPCs?


Wonderful news!!!  :) :) :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

||C|-|E||


PulkoMandy

@TFM: hi, sorry, there is no network function planned. I don't know if USB devices could be used for that (USB to RS485 or USB to Ethernet or even WiFi modules, maybe?). In that case the z80 would have to do some USB work and I don't know how much CPU time would be left for other things (it depends on how these USB devices are designed).


Another solution is connecting all the CPCs to a central "hub" using the high speed serial link. The hub could be a computer with multiple USB ports (possibly a PC computer, but a dedicated hub could be built from any hardware with multiple USB host ports).

majikeyric


Fessor

If/when stand-alone, how to connect to 464 with DDI, and, did it get enough power from the Expansion-Bus?

And wouldnt this type of connector be better to plug it directly into the MX4?
(As from the actual rendering it seems there is an Adapter required to connect it to MX4)

PulkoMandy

#11
Yes, I will use an angled connector like this. I did not find a 3D model for it in my tools, but the PCB footprint is the same.


The power supply is 5 volts, from the expansion bus. I never ran into problems with this. Of course, it depends what you connect to the USB port. a self powered hard disk is probably a bad idea. You can use an usb pen drive, or an hard disk with separate power supply. I will check the required power for each component this evening when I'm back home.


If you connect both this and the DDI to a 464 you will need a special cable. I will not sell any cables with the board because I don't want to handle the various cases (no cable, centronics, edge, ...). You will have to find someone else to supply the cable.

CraigsBar

IRC:  #Retro4All on Freenode

pelrun


Optimus


Ast

Hi Pulko, count on me for 1 piece...

_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"

http://amstradplus.forumforever.com/index.php
http://impdos.wikidot.com/
http://impdraw.wikidot.com/

All friends are welcome !

Gryzor


hsimpson


pelrun

Here, have a 3d rendering with the proper connector model :)


[attach=2]

SOS


tonio8bits


PulkoMandy

Current waiting list

       
  • 0 - PulkoMandy
  • 1 - OffseT
  • 2 - TFM (x2 - what's up with people ordering two devices? do you use that much CPC to need two boards?)
  • 4 - ||C||-||E||
  • 5 - majikeyric (x2)
  • 7 - CraigsBar (x2)
  • 9 - pelrun
  • 10 - Optimus
  • 11 - AsT
  • 12 - Gryzor
  • 13 - hsimpson
  • 14 - SOS
  • 15 - tonio8bits (x2)
  • 17 - Audronic
  • 18 - gros_minet
Power supply
There was a question about the power supply required for the board. It needs 5V, and the power consumption is around:

       
  • Glue logic - 20mA
  • CH376S - 30mA
  • TL16C550D - 10mA
  • FT230X - 8.3mA
Total: 69mA, to which you need to add power for an SD card (30 to 100mA depending on the model chosen) and/or USB devices.

TFM

Quote from: PulkoMandy on 19:23, 19 October 15
Current waiting list

       
  • 0 - PulkoMandy
  • 1 - OffseT
  • 2 - TFM (x2 - what's up with people ordering two devices? do you use that much CPC to need two boards?)


TBH: I want to use them for a connection between two CPCs. In addition I need them to test my planned software and FutureOS support for them. However I'm glad to wait until everybody got one and then maybe get a 2nd one. That's all left to you.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Fessor


Sykobee (Briggsy)

My 464 would like one of these... Especially if  someone writes a fast tape emulator for it!

Powered by SMFPacks Menu Editor Mod