Atom 2k18 ?

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Tue Mar 12, 2019 12:55 pm

SOJ sockets are like hens teeth but they did manage to source some for the SpectrumNext project.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Atom 2k18 ?

Post by roland » Tue Mar 12, 2019 2:03 pm

hoglet wrote:
Tue Mar 12, 2019 12:51 pm
Do you mean SOJ-36 for the SRAM?
Yes, that's the one I mean. The PLCC are easier to find....


What are SOJ-36 components used for if it's so hard to find a socket for them?
Last edited by roland on Tue Mar 12, 2019 3:52 pm, edited 1 time in total.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Tue Mar 12, 2019 5:32 pm

roland wrote:
Tue Mar 12, 2019 2:03 pm
hoglet wrote:
Tue Mar 12, 2019 12:51 pm
Do you mean SOJ-36 for the SRAM?
Yes, that's the one I mean. The PLCC are easier to find....


What are SOJ-36 components used for if it's so hard to find a socket for them?
They used to be used for cache RAM and Graphics RAM but cache went on chip and graphics moved to DDR and GDDR.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Tue Mar 12, 2019 9:34 pm

Like Dave said earlier this is an Atom first and foremost. I still think a pretty good master or Electron can be made on the same board and the challenge of that interests me. If we have a Pi interface then an onboard 6502 CoPro will not be required which should mean the memories will not need to be any faster than the real master/ electron. The other thing that may help is that there is more than 32k bytes of block RAM so maybe the Video RAM can be all in block RAM?
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Atom 2k18 ?

Post by roland » Tue Mar 12, 2019 9:47 pm

I have my first preliminary version ready.
  • All memory is 3.3V
  • Most of the signals at the Atom bus (PL6/7) is protected by a buffer
  • The cassette interface, joystick interface and serial interface are combined in a 15p sub-D connector (for physical reasons, there is no more space to add a separate joystick connector and we must have a joystick to play all the new games from Kees :) )
  • I left out the RS232 level converters because much modern USB2serial are 3.3V, otherwise, the 15p connector has +5V so you can attach a special connector or cable with separate MAX232 level conversion.
  • The keyboard has its own port on the FPGA, it saves a chip and at the moment I have plenty of pins free.
  • Both 1Mb and 4Mb memory chips can be used.
  • The PiTube connector (for an internal Pi Zero) is not included yet. I have to figure out if there is enough physical space.
Well, have a look and post your comments please.
Attachments
FPGAtom-schema-draft.pdf
Atom 2k19 first drawing.
(447.99 KiB) Downloaded 29 times
Last edited by roland on Tue Mar 12, 2019 9:47 pm, edited 1 time in total.
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Tue Mar 12, 2019 10:20 pm

Just had a very quick look, spotted one error...

The version of NRDS,NRWS on J1/2 should be the buffered version.

Doesn't the current design cause ERC warnings in Kicad?
Last edited by hoglet on Tue Mar 12, 2019 10:20 pm, edited 1 time in total.

User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Tue Mar 12, 2019 10:23 pm

I mainly do software these days so pay me little head but is the 7445 a 5V device in which case will it not feed 5 V back in to the keyboard inputs?

Maybe they are open collector in which case may well be OK.
Last edited by fordp on Tue Mar 12, 2019 10:25 pm, edited 1 time in total.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Atom 2k18 ?

Post by hoglet » Tue Mar 12, 2019 11:06 pm

Ford, yes the 7445 is open collector.

Roland, a few more points...

0. This looks like an excellent start...

1. I guess you decided to make use of the additional connector, rather than reading the B001 keyboard port via the data bus?

2. It seems wrong to use a 74LVC244 for the control output on PL6/7 as the will only get to 3.3V and be more prone to noise. I understand this saves a chip, but it's a bit risky.

3. SYNC is an FPGA output

4. SD card might benefit from some pullups, so you don't get random writes during FPGA configuration (when everything is high impedance)

5. Same for other critical signals, like the RAM write? Maybe that matters less..

6. What do you expect to happen if the 6522 is not fitted? The Atom has some pull-ups on the data bus to prevent a hang in this case.

7. You seems to be using a slow/32-pin DIP SRAM. Kicad has some symbols for the fast 36-pin SOJ ones, e.g. search for IDT 71V424S12

8. BLK_B seems to go nowhere

9. Is Kicad case sensitive? You have Phi2 and PHI2

10. Add a 3-pin header on the PCB for the serial port; saved making up a cable

11. Slightly nervous that there is no protection on the serial port - people will connect the wrong thing and blow up the FPGA!

12. Do make sure to run the ERC checker!

13. Level shifter for RDY is missing.

14. Do make sure to run the ERC checker. Did I say that again?

15. Might be better to use one schottky diode and connect both the Vin pins together (Mark?)

16. Add small (82 ohm ish) resistors into VSYNC and HSYNC (both protection and termination).

17. Consider separate PS/2 mouse and keyboard connectors - it avoids a messy splitter

18. PS/2 Keboard should connect to PB7/6 (as PC6 /REPT) was going to be uses as the sense signal).

19. Add a 2-pin header to short PC6 / REPT to ground to select PS/2 keyboard.

20. What size board are you aiming for? I'm trying to understand the space limitation.

I'll stop there for now :D

Dave
Last edited by hoglet on Tue Mar 12, 2019 11:41 pm, edited 5 times in total.

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

Re: Atom 2k18 ?

Post by roland » Wed Mar 13, 2019 8:25 am

Roland, a few more points...

-> I'll give a short answer...

0. This looks like an excellent start...

-> thank you

1. I guess you decided to make use of the additional connector, rather than reading the B001 keyboard port via the data bus?

-> Yes, like I mentioned it saves a buffer and at the moment there are enough I/O pins on the FPGA board.

2. It seems wrong to use a 74LVC244 for the control output on PL6/7 as the will only get to 3.3V and be more prone to noise. I understand this saves a chip, but it's a bit risky.

-> That will also be for the data address bus. So that would be two chips extra.

3. SYNC is an FPGA output

-> OK, I'll correct that. The ERC checker has some problems with SYNC too.

4. SD card might benefit from some pullups, so you don't get random writes during FPGA configuration (when everything is high impedance)

-> I'll add them. Will 3k3 do?

5. Same for other critical signals, like the RAM write? Maybe that matters less..

-> A resistor is not that expensive, so I can add pull ups to all control signals. Perhaps with a resistor array.

6. What do you expect to happen if the 6522 is not fitted? The Atom has some pull-ups on the data bus to prevent a hang in this case.

-> I have forgotten these three pull downs (!)

7. You seems to be using a slow/32-pin DIP SRAM. Kicad has some symbols for the fast 36-pin SOJ ones, e.g. search for IDT 71V424S12

-> The problem is that there are no sockets for SOJ-36 so mounting them is difficult. Maybe I can design a special footprint that makes it possible to mount another type of RAM as well.

8. BLK_B seems to go nowhere

-> It goes to J1/J2 pin A31. However it is not buffered. It replaces the old BLK0 signal.

9. Is Kicad case sensitive? You have Phi2 and PHI2

-> Don't know. I'll correct it anyway to avoid problems.

10. Add a 3-pin header on the PCB for the serial port; saved making up a cable

-> OK. Will do.

11. Slightly nervous that there is no protection on the serial port - people will connect the wrong thing and blow up the FPGA!

-> The serial port in and out are protected by U12, IO1 and IO2. No worries!

12. Do make sure to run the ERC checker!

-> I did that. Most complains are not connected pins and some power issues.

13. Level shifter for RDY is missing.

-> I'll definitively need an extra buffer....

14. Do make sure to run the ERC checker. Did I say that again?

-> I'll do after all my changes.

15. Might be better to use one schottky diode and connect both the Vin pins together (Mark?)

-> I thought this is more fault tolerant; if one diode dies the Atom keeps working :wink:

16. Add small (82 ohm ish) resistors into VSYNC and HSYNC (both protection and termination).

-> Fine.

17. Consider separate PS/2 mouse and keyboard connectors - it avoids a messy splitter

-> I combined these to save a bit space.

18. PS/2 Keboard should connect to PB7/6 (as PC6 /REPT) was going to be uses as the sense signal).

-> Slip of the mouse. I will correct that.

19. Add a 2-pin header to short PC6 / REPT to ground to select PS/2 keyboard.

-> I had just forgotten that one. I will add it.

20. What size board are you aiming for? I'm trying to understand the space limitation.

-> It will be the same size as the Atom 2k14/2k15. In fact I want you to be able to remove the Atom 2k14 board and put the new Atom 2k19 board in it. Also without modifying the case (unless we decide that it's a greater benefit to make an extra hole in the back of the case.


Thank you for your constructive feedback. I want to update the diagram this evening and also make an impression of the board layout (if time and wife permit so).
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Wed Mar 13, 2019 8:54 am

roland wrote:
Wed Mar 13, 2019 8:25 am
2. It seems wrong to use a 74LVC244 for the control output on PL6/7 as the will only get to 3.3V and be more prone to noise. I understand this saves a chip, but it's a bit risky.

-> That will also be for the data address bus. So that would be two chips extra.
The address bus is currently using a 74LS244, and the data bus a 74LVC245 which are fine. So I don't see why this adds two chips, just one surely?
roland wrote:
Wed Mar 13, 2019 8:25 am
4. SD card might benefit from some pullups, so you don't get random writes during FPGA configuration (when everything is high impedance)

-> I'll add them. Will 3k3 do?
10K is normal I think.
roland wrote:
Wed Mar 13, 2019 8:25 am
5. Same for other critical signals, like the RAM write? Maybe that matters less..

-> A resistor is not that expensive, so I can add pull ups to all control signals. Perhaps with a resistor array.
I wouldn't go overboard here, just do what's easiest. The use case I was concerned about here is more of a development one: being able to upload a new FPGA to a running system without corrupting external RAM.

The FPGA has a pin called HSWAPEN that enables pullups during configuration if tied low. According to the schematic it is tied low on this board. But who know if the schematics are 100% accurate.
roland wrote:
Wed Mar 13, 2019 8:25 am
7. You seems to be using a slow/32-pin DIP SRAM. Kicad has some symbols for the fast 36-pin SOJ ones, e.g. search for IDT 71V424S12

-> The problem is that there are no sockets for SOJ-36 so mounting them is difficult. Maybe I can design a special footprint that makes it possible to mount another type of RAM as well.
Could you make a small carrier PCB to adapt it to a 32-pin DIP footprint, then socket it?

Like this kind of thing:
http://www.signalogic.com/index.pl?page=sramadap

Edit: There is a design here:
https://www.retrobrewcomputers.org/foru ... &#msg_4823

One other thought. If you have 4 spare pins, you might like to add an SPI DAC. It's a really nice device, in a 8-pin DIP package, and is very simple to use. I've put one of the Beeb 1MHZ Bus FPGA Adapter. The MCP4822 is a 12-bit stereo DAC, and it would make the SID audio sound so much better. You could also do all the mixing (between Atom audio and SID audio) internally. It would allow experimentation with other sound system, such as the Yamaha stuff.

Dave
Last edited by hoglet on Wed Mar 13, 2019 9:46 am, edited 4 times in total.

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

Re: Atom 2k18 ?

Post by roland » Wed Mar 13, 2019 2:44 pm

hoglet wrote:
Wed Mar 13, 2019 8:54 am
roland wrote:
Wed Mar 13, 2019 8:25 am
2. It seems wrong to use a 74LVC244 for the control output on PL6/7 as the will only get to 3.3V and be more prone to noise. I understand this saves a chip, but it's a bit risky.

-> That will also be for the data address bus. So that would be two chips extra.
The address bus is currently using a 74LS244, and the data bus a 74LVC245 which are fine. So I don't see why this adds two chips, just one surely?
Why do you think that a 74LVC245 for the databus is fine and a 74LVC244 for the control bus seems wrong? Both output 3.3V signals. I'm just curious ...
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Wed Mar 13, 2019 3:59 pm

roland wrote:
Wed Mar 13, 2019 2:44 pm
Why do you think that a 74LVC245 for the databus is fine and a 74LVC244 for the control bus seems wrong? Both output 3.3V signals. I'm just curious ...
Here's my current thinking, which may or may not actually be correct, so take this with a pinch of salt!

My concern was mostly about the control signals (PHI2, RNW, NWDS, NRST), and the effects of noise on these causing device malfunctions.

I've been bitten by this kind of problem on four occasions in the last year:
- with a Master internal 6522 interface that used a WD65C22 (relating to RST)
- with the Electron AP5 CPLD design (relating to the 1MHz clock regeneration circuit)
- with a Matchbox Co Pro attached to an AP5, when a Data Centre was also attached (relating to RST)
- with the RGBtoHDMI adapter on certain Masters (relating to CSync)

In all these cases, it was a noise spike on a control signal that caused a malfunction. This can actually be worse when the failing device is built with modern technology, like a FPGA or CPLD, as these are more susceptible to short (<10ns) noise. Generally, 3.3V TTL levels give you a bit less noise immunity (to low going glitches on a high signal), compared to 5V TTL levels.

Having been burned so many times, I'm now slightly paranoid!

So on to your actual question: Why am I less worried about the data bus?

The main reason is glitches on the data bus are less likely to be problematic, unless they happen right at the point when the receiving device is sampling the data. Whereas, a glitch on, say, an asynchronous NRST will have an affect at any time.

That said, I don't actually think there is a huge difference between the high level of a 74LVC244 (~3.1V) and a 74LS244 (~3.4V). For buffering the FPGA outputs, I wonder if the 74HCT244 might be more suitable, as these do drive up to 4.5V. As they all have the same pinout, and will be socketed, I guess that the choice can easily be changed.

There are other factors, such is the drive capability. Data buses have a very high capacitance, because of all the loads in parallel. And also, data can often arrive late, due to slow devices. What matters is how quickly the data bus can be driven to it's correct level. The current sourcing capability of a 74LS24x TTL is 15mA. The 74LVC24x is 24mA. So it can drive the bus from low to high ~50% faster

There are even better level shifters for mixed 3.3V/5V system, such as the 74LVC4245A:
https://assets.nexperia.com/documents/d ... C4245A.pdf

This has dual supplies (i.e. 5V and 3.3V). But it's only available in surface mount. I'm was planning to use five of these on a new adapter board for ICE-T65 to try to overcome some of the issues with the GODIL:
viewtopic.php?p=176108#p176108

In summary for this application, I would use:
- 74LVC244/74LVC245 (powered off 3.3V) for anything that is Atom Bus => FPGA (including the data bus)
- 74HCT244 (powered off 5.0V) for anything that is FPGA => Atom Bus

The thing is, choosing a type of level shifter is actually quite tricky (especially if your are sticking to DIP packages).

It would be interesting to hear some other opinions here on what's best here.

Sorry for the long essay!

Dave
Last edited by hoglet on Wed Mar 13, 2019 4:29 pm, edited 8 times in total.

User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Wed Mar 13, 2019 6:02 pm

I have a simple request which yet again you can of course ignore without offending me. I hear you are using the extra connector. Would it be possible to put the Atom Keyboard on that connector. The thinking behind this is that the keyboard is optional so by not fitting a board to board connector for that connector when it is not being used it would free that connector up for debug or user options.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Atom 2k18 ?

Post by roland » Wed Mar 13, 2019 8:57 pm

Hi Simon,

The idea of this board is to fit it in an Atom case (if you have one) and the keyboard will connected this way:

Image

So I think that routing the tracks also to the new connector makes the board complicated. But you can always make a cable that goes onto the keyboard connector and with a 25p sub-D at your custom case with PS/2 keyboard.

Having said that, I now realize that I can add a second PS/2 connector because it is not necessary to mount that in the Atom case. With a custom case (or no case at all) one is free to make holes where needed. To be continued.....

I have two new drawings attached. I must have a good look at the diagram because KiCad crashed one time after I had made some changes to the board and components. It does automatic save every 10 minutes but I can change a lot in 10 minutes :cry:

The ERC compains about a lot of unconnected pins and some power pins that are not driven. It looks like that the Vcc symbol is not associated with any power input. I can try that later by replacing it by a 5V symbol like I do with 3.3V power.

The board setup is far from complete and is just to give an idea how it can be. Enjoy the pictures and please post your comments here!
Attachments
FPGAtom-pcb-preview.pdf
Initial setup of the main components
(163.93 KiB) Downloaded 11 times
FPGAtom-schema-draft.pdf
Version 0.3 of the new FPGAtom
(489.66 KiB) Downloaded 10 times
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Wed Mar 13, 2019 9:15 pm

Roland,

Will this require a special build of the FPGA build with the connectors soldered on the other side?

I'm wondering if that's a bit risky, from the point of view of guaranteeing a continuous supply of these board.

Dave

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

Re: Atom 2k18 ?

Post by hoglet » Wed Mar 13, 2019 9:16 pm

U8 is connected to the wrong power supply.

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

Re: Atom 2k18 ?

Post by roland » Wed Mar 13, 2019 9:27 pm

hoglet wrote: Will this require a special build of the FPGA build with the connectors soldered on the other side?
I'm wondering if that's a bit risky, from the point of view of guaranteeing a continuous supply of these board.
Yes, I want the buttons and leds to the upper side because then we can press the buttons for debugging purposes, such as showing the leds the status of the addres, data and control bus or so. Not that we humans can read them but you have an indication what is happening. For example if you see only #FE on the upper bytes of the address bus then the Atom might hang waiting for the via.

I'm not sure if this is realistic, but it gives us the opportunity to do something with the leds and buttons. The supplier of this board has told me that it is no problem for them to ship the boards without the connectors soldered. I received my board with three male header connectors.
hoglet wrote: U8 is connected to the wrong power supply.
Good spot, I corrected it. Thank you.
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by bprosman » Thu Mar 14, 2019 9:53 am

Bit off-topic but would this (Atom) design also fit in this Board ?
It is a :
EP2C5T144 Learning Board System Development Board ALTERA FPGA CycloneII

Grant Saerle made some Z80 stuff with this :
http://searle.hostei.com/grant/Multicomp/
IMG_0106.jpg

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

Re: Atom 2k18 ?

Post by hoglet » Thu Mar 14, 2019 10:40 am

bprosman wrote:
Thu Mar 14, 2019 9:53 am
Bit off-topic but would this (Atom) design also fit in this Board ?
It is a :
EP2C5T144 Learning Board System Development Board ALTERA FPGA CycloneII
I think that would be a bit limiting:

The EP2C5 has
- 4608 4-input LUTs
- 4608 registers
- 13KB of block RAM
- 2 PLLs

The XC6SLX9 has
- 11440 5-input LUTs
- 11440 registers
- 64KB of block RAM
- 4 PLLs

You could fit a minimal Atom in there, but you would need to drop some of the extra features (like the SID). And there's less room for new ideas.

Dave

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

Re: Atom 2k18 ?

Post by hoglet » Thu Mar 14, 2019 10:45 am

roland wrote:
Wed Mar 13, 2019 9:27 pm
Yes, I want the buttons and leds to the upper side because then we can press the buttons for debugging purposes, such as showing the leds the status of the addres, data and control bus or so. Not that we humans can read them but you have an indication what is happening. For example if you see only #FE on the upper bytes of the address bus then the Atom might hang waiting for the via.
OK, I understand.

Actually, if you weren't using the additional 12-pin header it wouldn't actually matter, as the connector pinout is pretty much symmetrical, apart from the VIN / 3.3V pins. The board could be mounted either way around (you would need a different .ucf file, but that's it).

Do you think he will add a separate listing for this, or will it be down to every purchaser to individually message him?

Dave
Last edited by hoglet on Thu Mar 14, 2019 10:47 am, edited 1 time in total.

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

Re: Atom 2k18 ?

Post by hoglet » Thu Mar 14, 2019 12:08 pm

One last thought (for this morning anyway...)

Surely there is room to squeeze in a 40 pin Pi Header, near the level shifters on the left? The Pi Zero can probably overlap the level shifers if needed, if a slightly deeper header is used.

I think you'll regret not including this in the long term.

Dave
Last edited by hoglet on Thu Mar 14, 2019 12:09 pm, edited 2 times in total.

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

Re: Atom 2k18 ?

Post by roland » Thu Mar 14, 2019 12:33 pm

I will have a look for a PI connector. Maybe on the keyboard side just like where PL8 used to be. When mounted at the level shifters it might clash with an internal eurocard board in PL6/7. I agree that there should be a Pi Zero connector :)
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Thu Mar 14, 2019 3:21 pm

roland wrote:
Thu Mar 14, 2019 12:33 pm
I will have a look for a PI connector. Maybe on the keyboard side just like where PL8 used to be. When mounted at the level shifters it might clash with an internal eurocard board in PL6/7. I agree that there should be a Pi Zero connector :)
Thanks Roland, much appreciated (I had forgotten about the internal Eurocard).

Please tell me if you want me to stop making suggestions for feature/improvements. :D

One more possible error: when wiring the PS/2 connector, you have a choice as to whether the standard clock/data connections (pins 1 and 5) are for the mouse or the keyboard. It doesn't really matter if you always use a splitter (unless it's colour coded). But currently the pins connect to the mouse port. So a keyboard plugged directly in would not work. Is this what you intended?

BTW: I don't think there's a "right" way to do it. The Thinkpad does it the way you have, for example:
http://old.pinouts.ru/InputCables/Ps2Ke ... kpad.shtml

Also, I wonder if it's worth adding 2x3 pin header block so the two inputs to the LM386 amplifier can be either from the DAC or from Atom/SID audio pins. The header block would go just before the two 10K resistors (R42/R43). The DAC signals could still go to J11 as they currently do.

The DAC is easy to use, and the SID and Atom audio can easily be mixed together in the FPGA.

Dave
Last edited by hoglet on Thu Mar 14, 2019 8:12 pm, edited 2 times in total.

User avatar
fordp
Posts: 1016
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Atom 2k18 ?

Post by fordp » Thu Mar 14, 2019 6:01 pm

roland wrote:
Thu Mar 14, 2019 12:33 pm
I will have a look for a PI connector. Maybe on the keyboard side just like where PL8 used to be. When mounted at the level shifters it might clash with an internal eurocard board in PL6/7. I agree that there should be a Pi Zero connector :)
Would it not make more sense on the other side of the board as it has 3/3V Logic Level!
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

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

Re: Atom 2k18 ?

Post by roland » Fri Mar 15, 2019 9:32 am

I'll find a nice place for the Pi connector 8) It will probably be located where PL8 is on the original Atom. The PiTube requires an additional select line. There is only one free pin left so that matches :-)

Hoglet wrote: Please tell me if you want me to stop making suggestions for feature/improvements. :D
I think it time to stop making suggestions because we're running out of FPGA pins.
Hoglet wrote: One more possible error: when wiring the PS/2 connector, you have a choice as to whether the standard clock/data connections (pins 1 and 5) are for the mouse or the keyboard. It doesn't really matter if you always use a splitter (unless it's colour coded). But currently the pins connect to the mouse port. So a keyboard plugged directly in would not work. Is this what you intended?
My intention was to build a PS/2 "laptop style" connector but it is not necessary to combine this so there will be two PS/2 connectors.
Hoglet wrote: Also, I wonder if it's worth adding 2x3 pin header block so the two inputs to the LM386 amplifier can be either from the DAC or from Atom/SID audio pins. The header block would go just before the two 10K resistors (R42/R43). The DAC signals could still go to J11 as they currently do.
I will have a play with those headers. Do we need some additional space for resistors and capacitors for filters or so?
Hoglet wrote: The SID and Atom audio can easily be mixed together in the FPGA.
That is great news, it frees a pin that I need for my last excellent feature: debug mode. I'll explain that:
Debugging seems hard for me when most of the logic is in the FPGA. We have almost all CPU signals available at PL6/7 except for the data bus. I want to use a special debug mode that opens the buffer of the data bus continuously and set the data direction from FPGA to the outside world. That makes the data bus also available on PL6/7. There is one problem however: no read operations from the VIA are allowed because the VIA and buffer will clash and at the end one of them will die (probably the VIA). So in debug mode the VIA will be disabled. Another small issue is that the three resistors are outside of the buffers and in debug mode the CPU cannot see them. This can easily be solved by also adding three resistors at the B-side of the 74LVC245.

Debug mode can be started by pressing the two buttons at the FPGA mode and then reset the FPGA (third button on the board).

In short will debug mode look like (pseudo code):

Code: Select all


on_reset:
  if (button1 == pressed and button2 == pressed then
    debug_mode == "on"
  else
    debug_mode == "off"
  end if

if (debug_mode) == "on" then
   cs_via = '1';
   cs_buf = '0';
   buf_dir = '1';
else 
  buf_dir = rw;
  cs_buf = address_in(#b100,#bcff);
  cs_via = address_in(#b800,#b80f);
end if

And we can hook up a logic analyzer or scope to PL6/7 \:D/


Great idea, isn't it :mrgreen:
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Fri Mar 15, 2019 10:46 am

roland wrote:
Fri Mar 15, 2019 9:32 am
I will have a play with those headers. Do we need some additional space for resistors and capacitors for filters or so?
All you need with the DAC is ~1uF polyester film capacitor in series with each output (for DC blocking, as the quiescent output level is 1.65V).
roland wrote:
Fri Mar 15, 2019 9:32 am
That is great news, it frees a pin that I need for my last excellent feature: debug mode. I'll explain that:
Debugging seems hard for me when most of the logic is in the FPGA. We have almost all CPU signals available at PL6/7 except for the data bus. I want to use a special debug mode that opens the buffer of the data bus continuously and set the data direction from FPGA to the outside world. That makes the data bus also available on PL6/7. There is one problem however: no read operations from the VIA are allowed because the VIA and buffer will clash and at the end one of them will die (probably the VIA). So in debug mode the VIA will be disabled. Another small issue is that the three resistors are outside of the buffers and in debug mode the CPU cannot see them. This can easily be solved by also adding three resistors at the B-side of the 74LVC245.

And we can hook up a logic analyzer or scope to PL6/7 \:D/

Great idea, isn't it :mrgreen:
Yes, it is a great idea. You could then get a complete instruction trace for several seconds of running. Really nice!

The "resistors" setting the B8xx read value could easily be faked inside the FPGA in debug mode.

Also, have you considered that the Pi Tube connector also has just enough signals for the logic analyser/instruction decoder: Phi2, Data, RnW (Sync and Rdy help, but are not mandatory)? That's on the 3.3V side of the data bus, so would not have the same issue as using PL6/7. A small extra 2-pin header close by to pick to Sync and Rdy would make it perfect.

On BeebFPGA I managed to fit a complete ICE T65 (including the AVR) into the FPGA. This was used through the USB serial port.

That's harder with the AtomFpga, because you need AtomMMC as well (including its AVR Core). The limitation was internal block RAM: the ICE T65 needs 2Kx16 RAM and 8Kx16 ROM. AtomMMC needs 4Kx16 RAM and 10Kx16 ROM. That a total of 48KB (out of 64KB) in the LX9. It's just possible that 16KB is enough for everything the Atom needs, especially if the SID was removed in debugger builds. Or it might be to make use of the fast external SRAM, if the debugger AVR was run more slowly (at 8MHz say, not 16MHz)

Anyway, fun as that would be, your idea is simpler to achieve, and equally powerful.

Dave
Last edited by hoglet on Fri Mar 15, 2019 10:47 am, edited 2 times in total.

herklots
Posts: 44
Joined: Tue Jan 15, 2013 8:43 pm
Contact:

Re: Atom 2k18 ?

Post by herklots » Fri Mar 15, 2019 4:22 pm

The C12 connection around LM358 for cassette input is wrong, top right. C12 and non-inv input are tied to VCC.

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

Re: Atom 2k18 ?

Post by roland » Fri Mar 15, 2019 4:43 pm

Good spot! And there are more errors at the cassette input. I will correct them. Thanks for your feedback!
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by roland » Fri Mar 15, 2019 8:30 pm

Here is a new version. I corrected the errors in the cassette-in area, added the PiTube connector and made arrangements for debugging mode. I also added a bunch of capacitors that go the the + and - of the IC's (I don't know the exact English words for it but the description will do, at least I hope so).

I also added the ERC output. It only mentions unconnected pins and no-driven pins. I guess this will be all right.
Attachments
FPGAtom-schema-draft-0.4.pdf
(521.2 KiB) Downloaded 8 times
FPGAtom_erc.txt
(6.74 KiB) Downloaded 7 times
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: Atom 2k18 ?

Post by hoglet » Fri Mar 15, 2019 8:52 pm

You should add "No Connects" to pins you really intend to be unconnected. Then the ERC will not flag them as errors.

Post Reply