Atom 2k18 ?

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
bprosman
Posts: 258
Joined: Sun Mar 29, 2015 10:27 pm
Contact:

Re: Atom 2k18 ?

Post by bprosman » Wed Sep 12, 2018 10:00 pm

These guys do a lot in custom keyboards :
http://www.maxkeyboard.com/products/

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Thu Sep 13, 2018 7:01 am

Kazzie wrote:
Wed Sep 12, 2018 9:24 pm
I'd prefer to fix a Beeb rather than cannibalise it!
Of course, but sometimes these [edit: Beeb keyboards] do end up on ebay, and they go for anywhere between £5 and £30.

Dave
Last edited by hoglet on Thu Sep 13, 2018 10:24 am, edited 1 time in total.

User avatar
marcusjambler
Posts: 581
Joined: Mon May 22, 2017 11:20 am
Location: Bradford
Contact:

Re: Atom 2k18 ?

Post by marcusjambler » Thu Sep 13, 2018 7:56 am

any idea on where to get keycaps with non-PC labels on them, for Atom or System?
You could try Mark@retroclinic he's definitely got Beeb key-caps

Marcus

User avatar
1024MAK
Posts: 8673
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...
Contact:

Re: Atom 2k18 ?

Post by 1024MAK » Thu Sep 13, 2018 8:45 am

There are companies that will manufacture key caps with customer specified legends. But they are not cheap.

I think the reference to eBay is relating to some sellers that sell parts of Beebs instead of whole machines. So keyboard assemblies can sometimes be found being sold on their own.

Mark

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sun Feb 24, 2019 11:47 am

It's been a while since my last post (and thoughts) about this topic but I want to give it another go. As I have ordered this FPGA board I want to use this board as a starting point. I have decided not to make an incremental design of the existing Atom2k15 but yet another Atom FPGA (let's call it YaaF) but with another point of view: the new FPGA board can replace the Atom2k15 board and provide Atom compatible I/O which means a real 6522 and 8255 so we can hook up an Atom keyboard en fit it in an Atom case (just in case you manage to find a suitable one). On the other hand, the PS/2 keyboard can be optional at "compile" time so that the board can also be used without an Atom keyboard.

Most of the stuff goes into the FPGA, such as:
  • CPU
  • VGA video including all Godil extensions
  • PS/2 Mouse
  • Serial interface
  • AtoMMC
  • SID audio
Outside the FPGA area (separated by a level shifting bus driver like 74LVC245) will reside:
  • 128 kB Flash ROM
  • 128 kB RAM
  • 8255 for keyboard and joystick (cassette interface will probably be omitted)
  • 6522 for real I/O
The 8255 might be a bit problematic because it needs some interaction with the video part in the FPGA and there are just not enough I/O pins for that. But in theory it is possible to implement the (partial) 8255 also in the FPGA and read some bits internally and some bits externally. It will however take some reprogramming the Atom FPGA core.

My favourite memory configuration is like my Yarrb board which has three memory profiles:
  • RAM/ROM board compatible
  • BBC Basic (including MMC)
  • Atom 2k15


You might ask: why? The answer is simple: I want to learn FPGA stuff 8) I like the existing Atom FPGA projects and a lot of work has already been done. My approach just needs a "few simple modifications" (but I know from my web development work that even the simplest modification can take more time and work than you can ever imagine :lol: )

The Papilio DUO version of the Atom FPGA seems a good starting point as it has the same FPGA as my board....
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Sun Feb 24, 2019 3:43 pm

I'll be following this with interest...

There are 72 I/Os on this board, which I think will be the limiting factor. Do you have some thoughts as to how they would be allocated?

Ideally you would put both the 6255 and 8255 inside the FPGA, but I think you don't have the pin count to this for both of them. So I would look at putting the 8255 inside the FPGA (and drive the keyboard with 3.3V signals), and use a real external 6522.

The other question is how to implement AtomMMC: with an external PIC, or internally in the FPGA (with an AVR). Any thoughts on this?

Have you though about drawing a block diagram to get the partitioning clearer?

Dave

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sun Feb 24, 2019 5:18 pm

I have to work out a block diagram and determine the exact amount of I/O lines.

If possible I want the AtomMMC in the FPGA because I want to use as less ic’s as possible with all options that my Atom 2k15 has.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Feb 25, 2019 8:29 pm

I have drawn a little sketch of all the blocks in the new FPGA Atom:
IMG_3447.jpg
Drawn with a pen on plain old paper ... I spent to much time at a mouse and keyboard ;)
It looks like with this setup the 8255 can go completely into the FPGA. The only external components are the VIA, RAM and ROM. Plus some hardware for audio, video, storage and I/O.
  • The RAM and ROM need, besides the address and data bus, a CS, WE and OE. The OE can be combined and is simply the good old NRDS signal.
  • The VIA needs CS, Phi2, R/W
  • The AtoMMC is inside the FPGA (AVR controller) so this only needs four signals to the card reader
  • VGA output is Red, 2 x Green, Blue, Hsync and Vsync
  • Audio needs two output pins: Atom audio and SID
  • The three serial devices (PS/2 mouse, PS/2 keyboard and RS232) need six signals
  • The Atom keyboard needs 13 I/O lines, provided that the 7445 is used.
  • For the I/O expansion I also need a buffer_enable signal, NWDS, NMI and IRQ (which will also connect to the VIA)
The address bus is 17 bits and the databus is still 8 bits.

That makes a total of 69 I/O ports and I have 72 \:D/

So, in theory this could be a new Atom setup.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Mon Feb 25, 2019 9:02 pm

roland wrote:
Mon Feb 25, 2019 8:29 pm
That makes a total of 69 I/O ports and I have 72 \:D/

So, in theory this could be a new Atom setup.
This is a great block diagram, very helpful to understand where you are at.

Here's a few more thoughts.

1. You might have forgotten the cassette port.... This will cost 2 pins (more if you add the PCx bits) and all the analogue circuitry.

2. The FPGA board has a usable USB UART (that is connected to the FPGA). So you maybe don't need a separate serial port, which would save 2 pins.

3. It would be really good to add a SPI DAC for high quality audio (e.g. SID). I wonder if it could share an SPI bus with the SD Card, by using a different chip select. I've used the Microchip MCP4822 in other projects. It's only an 8-pin DIP.

4. It would be very useful (for logic analyzer/instruction decoding) to output the SYNC signal. This is also needed for PL6/7. This is assuming you are going to implement PL6/7. Are you?

5. There are some other control signals on PL6/7, e.g. RDY, SO, BLK0. I guess it depends how compatible you want to be. Of these, RDY is most important. But probably all could be ignored.

6. Are you thinking of providing PL8? If so this needs a chip select.

7. If you are really pushed for pins on the FPGA, you could use a small CPLD just for address decoding. But it would be a shame to have to do this I think.

Dave

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Mon Feb 25, 2019 9:13 pm

8. It might be possible to reuse 2 of the 13 keyboard pins for the PS/2 keyboard. Unless you want both to be active at the same time.

9. What about a PiTubeDirect connector? One more pin for nTUBE I think.

10. Maybe a small CPLD doing simple address decoding is not too bad. It could also do the job of a 7445 to drive the keyboard matrix.
Last edited by hoglet on Mon Feb 25, 2019 10:35 pm, edited 3 times in total.

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Feb 26, 2019 8:06 am

Thanks Dave for your feedback. I will go back to the drawing table with your comments.

I will explain some of my choices:
  • I did leave out the cassette port because IMHO it is never used. Maybe somebody who finds an old tape but in general these people already have an Atom with a cassette port.
  • I am going to implement PL6/7 but AFAIK there are no Atom boards that use SYNC, RDY and SO. BLK0 is in the Atom2k15 BLK#B and must be implemented some way. I had forgotten that one.
  • Reusing pins for the PS/2 keyboard is a good idea if I need the pins. But then we will have two separate versions of the bit-file for the FPGA which might be confusing.
  • I am trying to avoid any other programmable logic but if it can free up some additional pins then I might consider using a GAL or so. I will however avoid using surface mounted devices so most people can construct the kit.
  • If there is enough physical room I'll consider a PiTubeDirect connector.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Feb 26, 2019 9:18 am

roland wrote:
Tue Feb 26, 2019 8:06 am
Reusing pins for the PS/2 keyboard is a good idea if I need the pins. But then we will have two separate versions of the bit-file for the FPGA which might be confusing.
On a power up reset, the keyboard type could be detected.

For example, the PC6 input (REPT key) could be used. If the Atom keyboard is present, this will be pulled high by the pullup resistor. If not, then it could be taken low, either by a link, or by an even weaker pulldown.

That way, only one bit-file would be needed.

Dave

User avatar
oss003
Posts: 2940
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atom 2k18 ?

Post by oss003 » Tue Feb 26, 2019 11:37 am

Hi guys,

if there are some output pins free, is it an idea to output RGB as 2xR + 2xG +2xB to be able to change the palette?

Greetings
Kees

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Feb 26, 2019 7:03 pm

Roland,

I just remembered, there are two variants of the eepizza LX9 Core Board.

1. The old one, as pictured on eBay:
eepizza_old.jpg
2. The new one, which is what I actually received:
eepizza_new.jpg
On the new board, the additional J5 header gives you 10 additional signals.

See this thread for more details on the minor differences:
viewtopic.php?p=176500#p176500

Have you received a board yet?

Dave

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Feb 26, 2019 8:00 pm

I really never noticed that my board is different than the Ebay picture :oops:
So yes, I also received the board with 10 extra ports.

I'll try to do my very best to avoid using the extra ports to be compatible with the old ones, but it's really attractive to use these ports also because it gives so much more possibilities (like more colours) :lol:

BTW, I have ordered the board without the I/O headers soldered on it because I want the buttons and the leds at the top side when mounted in the Atom. This way the eight leds can display some status information in combination with the two blue buttons.

Some ideas are:
  • No button pressed: led 1 and 2 are for the AtoMMC, leds 3 - 8 show the address lines A10 - A15
  • Left button pressed: the leds show the content of #BFFF
  • Right button pressed: the leds show the content of #BFFE
  • Both buttons pressed: I don't know yet, maybe a version code or so
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Feb 26, 2019 8:04 pm

hoglet wrote:
Tue Feb 26, 2019 9:18 am
On a power up reset, the keyboard type could be detected.
For example, the PC6 input (REPT key) could be used. If the Atom keyboard is present, this will be pulled high by the pullup resistor. If not, then it could be taken low, either by a link, or by an even weaker pulldown.
I really hope you will support me with the VHDL [-o<

If PC6 is used for detection, the FPGA can easy be fooled by pressing REPT during power up. But yes, it is a good idea!


Is there any interest for such a board?
Last edited by roland on Tue Feb 26, 2019 8:08 pm, edited 1 time in total.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Feb 26, 2019 8:08 pm

roland wrote:
Tue Feb 26, 2019 8:04 pm
I really hope you will support me with the VHDL [-o<
Of course I will. :D

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Mar 04, 2019 2:47 pm

Oops....
47AD4B8E-E1F0-429A-8A75-1F049D781E85.png
I’ll ask them if they have plans for another revision or I will have to look for another FPGA solution....
256K + 6502 Inside
MAN WOMAN :shock:

bprosman
Posts: 258
Joined: Sun Mar 29, 2015 10:27 pm
Contact:

Re: Atom 2k18 ?

Post by bprosman » Mon Mar 04, 2019 3:04 pm

There are multiple sources for this board :
https://www.ebay.com/itm/Xilinx-FPGA-Sp ... :rk:1:pf:0

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Mon Mar 04, 2019 3:17 pm

roland wrote:
Mon Mar 04, 2019 2:47 pm
I’ll ask them if they have plans for another revision or I will have to look for another FPGA solution....
Please do ask them - it may just be that they need to get another batch made when this sells out.

I also have a new project in the works that was going to use this board, so if it is no longer available it will be awkward. I was just about to send off the PCB this afternoon. I think I'll wait now.

The other similar board is the Mojo V3:
https://www.sparkfun.com/products/11953

There are clones on eBay for ~$40, so only slightly more expensive than the eepizza board,

It's a bit wider than the eepizza board, but on the plus size it uses 50 pin connectors and has 84 I/Os.

It also seems to be available from lots of vendors.

Dave

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Mon Mar 04, 2019 3:23 pm

I already asked them. Now waiting for an answer. Bram’s second source leads to the same seller: eepizza.

I will also have a look at the Mojo v3 board. Although I don’t think that there will be a lot of people building a new Atom I don’t want to use obsolete parts.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Mon Mar 04, 2019 3:53 pm

roland wrote:
Mon Mar 04, 2019 3:23 pm
I will also have a look at the Mojo v3 board. Although I don’t think that there will be a lot of people building a new Atom I don’t want to use obsolete parts.
Another possible advantage of the Mojo V3 is that it contains a built-in programmer (using an on-board ATmega32U4)

So people wouldn't need the Xilinx USB Platform Cable, or the 6GB installation!

Dave

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Tue Mar 05, 2019 2:26 pm

I received an answer from Eepizza about the FPGA board:
Greetings, Roland. It's still in stock and will have a long lifetime. No. worry, Continue your project with confidence. Have a good day. --Adam
As I already have this board, I want to use it. It's cheap and small.

But I am still curious if other people have any interest in building this board. Besides Hoglet there are no responses. When I order five boards the price per board will be about €35.00 for the PCB and €27.50 for the FPGA board. The rest of the parts are some memory IC's, a 6522, some connectors and other small, quite cheap components. This FPGA Atom will have a PS/2 keyboard interface and Atom I/O ports (unlike all other Atom FPGA projects). So no Atom keyboard and case are needed - no "Splitting the Atom" with a saw or a grinder :mrgreen:
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Tue Mar 05, 2019 2:59 pm

roland wrote:
Tue Mar 05, 2019 2:26 pm
I received an answer from Eepizza about the FPGA board:
That's great news - I can now send off my 1MHz Bus FPGA Adaptor PCB.

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Wed Mar 06, 2019 8:29 pm

Step 1: design a Kicad component for the FPGA module:
FPGAtom.png
I made the pin out that non-critical signals go to the "additional top connector" of the board so that you can also use an old version of the FPGA module. These signals are: RDY, SO, SYNC, CAS_in, CAS_out, VGA_RED2 and VGA_BLUE2. This approach leaves six open I/O ports on the 40p headers.

A detailed overview is in the attached PDF file.

Step 2 will be to draw the complete schematic diagram with all components that are attached to the FPGA module.

Step 3 will be to create the FPGA logic so that I am 100% sure that the pin out is suitable and that the design can be realized.

Much work to do ... but who cares? It's raining anyway so what else is there to do :lol:
Attachments
FPGA pin out V1.pdf
(55.64 KiB) Downloaded 7 times
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sat Mar 09, 2019 1:53 pm

To avoid the problem that the Atom is powered by the USB connection when programming the FPGA I only use the J1 (DC 5V) connector on the FPGA board. All other power pins will be unconnected. According to this part of the FPGA diagram, this should be sufficient:
Schermafbeelding 2019-03-09 om 14.38.29.png
Power part of the FPGA module
The Atom does not power the USB and the USB does not power the Atom. The other components on the Atom board will have their own power supply, also because I don't expect that the voltage regulator on the FPGA board has enough power to supply the RAM, ROM, MMC card etc.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Sat Mar 09, 2019 2:09 pm

So there will be a short power cable running from the Atom board to J1 powering the FPGA? You could avoid this cable if you connect +5V on the Atom PCB to the two VIN pins via a 2A schottky diode. This is in effect just duplicating the circuitry around J1.

The regulators on the FPGA board are 1117M3, which will supply 800mA. But I agree it's probably better to put a separate 3.3V regulator on the Atom.

I'm very excited about this project!

Dave

User avatar
roland
Posts: 3138
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atom 2k18 ?

Post by roland » Sat Mar 09, 2019 3:14 pm

I had planned not to use a wire but an extra 5V track to J1 which will be connected via a 2-pin header. On second thought, I'll take your advise and use the Vin pins with schottky diodes.

Other question: we're combining the PS/2 keyboard with I/O pins for the Atom keyboard. By using a jumper wire the selection between Atom or PS/2 keyboard could be made. If I use "PC6" (rept key) then you could fake a PS/2 keyboard setup by pressing rept during power on. Will that lead to damage of the FPGA? An alternative is to use three control jumpers (CTRL, SHIFT and REPT) because it's almost impossible to press these keys and power up the Atom with only two hands :)

Which device generates the keyboard clock, the host computer or the keyboard itself?
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
1024MAK
Posts: 8673
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...
Contact:

Re: Atom 2k18 ?

Post by 1024MAK » Sat Mar 09, 2019 4:07 pm

For PS/2 see this web page :wink:

Mark

User avatar
hoglet
Posts: 8100
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atom 2k18 ?

Post by hoglet » Sat Mar 09, 2019 4:08 pm

roland wrote:
Sat Mar 09, 2019 3:14 pm
Other question: we're combining the PS/2 keyboard with I/O pins for the Atom keyboard. By using a jumper wire the selection between Atom or PS/2 keyboard could be made. If I use "PC6" (rept key) then you could fake a PS/2 keyboard setup by pressing rept during power on. Will that lead to damage of the FPGA?
I was thinking that PB0 and PB1 might be the shared pins:
- In Atom Keyboard mode, they are configured as inputs.
- In PS/2 Keyboard mode, they are also configured as inputs.

So there is no conflict in these pins.

One thing to be careful of though is voltage levels.. Will you be powering the PS/2 keyboard of 3.3V or 5V?

I've found some, but not all, work at 3.3V.

If powering from 5V, then give some consideration to levels. This page is has some useful info:
https://electronics.stackexchange.com/q ... -3v-inputs

(I think I found that some keyboards also contain pullups to +5V)
roland wrote:
Sat Mar 09, 2019 3:14 pm
Which device generates the keyboard clock, the host computer or the keyboard itself?
With PS/2, the clock is always generated by the sending device.

In AtomFPGA, the Keyboard PS/2 interface never needs to talk to the keyboard, so the clock always comes from the keyboard. The Mouse, if I remember correctly, is actually bidirectional.

Dave
Last edited by hoglet on Sat Mar 09, 2019 4:09 pm, edited 1 time in total.

Post Reply