Jump to content
IGNORED

Quad Hokey design topic


foft
 Share

Recommended Posts

This topic is for the design of a drop in quad core pokey replacement with integrated PS2 keyboard interface.

 

Hi mark,

 

If you decide to pursue this, I would love to use it and of course layout the circuit board to suit. However I will need some recommendations on what I'll need (or anyone that produces this) to burn the FPGA's and specifically what FPGA is needed, as well as more specifics on the 5v/3.3v interface issues. As with previous designs I've been involved with, this one would also be a full disclosure project for either DIY, or for someone to pick it up and run with the production side of things.

 

Let me know if you are game for this, and if so I think a new Topic needs to be created around it.

 

- Michael

OK, here we go.

 

How large an FPGA:

Looking at the existing pokey core we need about 500 LEs/hokey + 250 for the mixer. So say 2500 + some spare. So I'd aim for 3000 LEs. I like Altera devices.

 

FPGA power requirement:

Some require 1.XV, 2.5V and 3.3V. So need a bunch of regulators. The newly released Max10 that Robin used on his Ultimate Cart has a single supply version.

 

BGA or not:

BGA probably only makes sense if getting them made. So that limits the options.

 

5V tolerance:

With 3.3V LVTTL it is easy to drive the Atari. However for inputs from the Atari the 5V will damage the FPGA. I used IDT quickswitches for this: https://www.idt.com/document/apn/11-5v-and-3v-conversion-zero-delay

Though there are of course other options. This will be needed for the address, data bus and control signals. So there will be quite a few lines.

There are some older devices that are 5V tolerant. e.g. as used here by Wolfgang: http://pin4.at/pro_misc.php#fdil. Not sure how available these are and I'm less familiar with the toolchain.

 

Perhaps this? http://www.digikey.com/product-detail/en/altera/10M04SAE144I7G/544-3213-ND/5698249

Not sure if its too expensive.

There are cheaper, but will also need 3 power supplies! http://www.digikey.com/product-detail/en/altera/EP4CE6E22C8N/544-2746-ND/2288251

Edited by foft
  • Like 1
Link to comment
Share on other sites

I forgot to say... The Max10 additionally has the flash built in, so no need for a separate flash chip to store the core.

 

To flash any of them you'll need an Altera USB blaster or clone (For Altera chips) and a free download of Quartus from their site.

Link to comment
Share on other sites

The MAX10 looks intriguing, and would keep things a bit simpler, but that 5v intolerance is unfortunate. Also going the FPGA route means having to do surface mount soldering which probably eliminates a good percentage of DIY. However I think if we get this project to happen, those things can be worked out (perhaps find someone willing to take on the production aspects such as Lotharek if he's interested). But going BGA would completely take it out of the realm of DIY, so that probably wouldn't be a good idea.

 

Anyway with all that said I am still game if you are with creating a new 16 voice Stereo Board inclusive of PS/2 keyboard adapter.

 

Basic Requirements (as I presently see it -- this is open to alternative suggestions)...

 

  1. Quad Pokey Sound Capabilities (individually mapped via A4-A5 address lines)
  2. Single SIO Port
  3. Single Set of Paddle Inputs
  4. Keyboard Scanner (linked to on board TK-II PS/2 -to- Atari keyboard Adapter)
  5. Mono/Stereo Select Line (controllable by either physical switch or U1MB M0 line)
  6. Dual Audio Output

The Mono/Stereo Select would either send all voices to both audio outputs or split the 4 Pokey's between them (see chart below).

 

0Lnvd9D.png

 

What do you think?

 

- Michael

Edited by mytekcontrols
  • Like 3
Link to comment
Share on other sites

Although I realize you could probably also integrate the PS/2 keyboard functionality into the core, I think its best to keep it separate since the TK-II implementation is rather extensive and not just a straight forward adaption. And all of the engineering has already been done on that side of things. Since we are looking at surface mount components, the PIC chip can also be an SMD with an ICSP connector for flashing the firmware.

 

- Michael

Link to comment
Share on other sites

I agree with limiting functionality of all but the first to save space/components.

 

But near full functionality from the 2nd Pokey would be desirable, ie probably everything except keyboard and Pots.

For the remaining 2, Timers would be desirable. They're fairly tightly integrated with audio generation anyway so probably little in the way of saving by omitting them.

  • Like 1
Link to comment
Share on other sites

I agree with limiting functionality of all but the first to save space/components.

 

But near full functionality from the 2nd Pokey would be desirable, ie probably everything except keyboard and Pots.

For the remaining 2, Timers would be desirable. They're fairly tightly integrated with audio generation anyway so probably little in the way of saving by omitting them.

 

The extra timers would be nice. Are you also suggesting that the 2nd Pokey core have an SIO as well? If so how would it be utilized and what would be the method of connection?

 

- Michael

Link to comment
Share on other sites

There's been talk of using SIO on existing stereo setups - adhoc stuff like MIDI etc.

 

I'd say just provide connection points like a header block, up to the owner to take it any further.

 

Re Covox - I'd suggest to include that. You could have 16 Pokeys yet still not be able to do 8-bit sample playback.

In fact sample playback just becomes cumbersome when you combine Pokey voices to simulate more bits, so a Covox workalike is a much better way of doing it.

 

Re controlling the whole affair - don't rely on other addons like U1Meg. Maybe jumper block and/or a control register accessed inside the 4th Pokey (use a normally unused register location).

  • Like 1
Link to comment
Share on other sites

Since I'm not the one that will create the Quad Hokey, I'm just thankful for what Mark has offered to do. So although there are likely another half a dozen features that could be added, at least on this go around I do believe we are going to keep it simple. And at the same time I would really like to keep the overall size of this thing very small, so that it could possibly fit into any A8.

 

And I've read quite a few threads on AA about creating something new that unfortunately die before anything has even begun. Simply because more and more features just keep being added on (I'm as guilty as can be on that one). But if I've learned anything, it is to cover the basics and resist the temptation to keep tweaking with it. And unless I'm mistaken, I think Mark is of the same mind on this one. So for this project, we've already set the specs. Now it's just a matter of implementing the design, and getting it out there for people to use. So no covox, but if extra timers are easy and Mark feels like including them, then that may happen. Extra SIO well once again if Mark wants to do it just for giggles, I'll leave that up to him. But midi isn't something I was looking to support in this project so that isn't even on my radar.

 

And yes my intention was to have control for mono/stereo mode via external sources (any external source). So that could be a simple SPST switch, U1MB, or perhaps even through direct control from TK-II since there are still a couple of unused keys in the matrix that could likely be decoded as a control bit.

 

- Michael

Edited by mytekcontrols
Link to comment
Share on other sites

As it stands the pokey has timers, pots and sio. If there is sufficient device space then removing them (for pokey 2-4) takes effort. I vote we break out a few pins to a header (5v safe) for A4, A5, mono stereo switch and a few more for potential future use.

 

Keeping tk2 separate on the board is fine by me, though need to keep an eye on cost and size of parts of course.

 

For paddle inputs I think wiring straight in (with 5v protection) works fine for most devices. However the touch tablet is quite sensitive to level, it just does a small voltage adjustment to go low-high. So might need something there.

 

Mark

Edited by foft
Link to comment
Share on other sites

Covox is good idea. But just 2 or 4 channels... 1R+1L or 2R+2L... My idea is to use those covox channels for bass drum, snare, hi and low hats... Or some cool bass too.

And everything else will be done on that quadpokey plus normal original pokey inside Atari...

So 2 sample channels and 4x4 PSG channels plus 1 PSG channel....

Or just add there 3x Pokey core and one will be original POKEY.

SIO is good! For MIDI in, OUT... MIDI is important!

Another thing is maybe add some filters like on C64 or Amiga was!

Link to comment
Share on other sites

At the begining Evie had 4 Pokeys, but finally after discussions only two with two tone SKCTL. Also YM2149 (instead of 2 Pokeys) and SID, GTIA Bell, Covox and PS/2 keyboard.

http://www.atari.org.pl/forum/viewtopic.php?pid=186875#p186875

http://atariki.krap.pl/index.php/Evie

http://drac030.krap.pl/evie.jpg

But only 3 prototypes exists and no public code. :(

  • Like 2
Link to comment
Share on other sites

At the begining Evie had 4 Pokeys, but finally after discussions only two with two tone SKCTL. Also YM2149 (instead of 2 Pokeys) and SID, GTIA Bell, Covox and PS/2 keyboard.

http://www.atari.org.pl/forum/viewtopic.php?pid=186875#p186875

http://atariki.krap.pl/index.php/Evie

http://drac030.krap.pl/evie.jpg

But only 3 prototypes exists and no public code. :(

 

Evie board looks great :thumbsup:

 

It looks so good, I'm left wondering why isn't it available to buy? Because someone sure must have put a lot of work into its creation.

 

On the Quad Hokey project...

 

I've decided to sit this one out for the time being, and just go ahead with my original plans on a through hole based dual Pokey/U-Switch/TK-II board which will at least be useful to me. My SMD layout skills are much less refined, so I think its best that someone else tackles that end of things. But whoever does, you have my blessing to use the TK-II firmware as part of that design if you so choose to do so.

 

- Michael

Link to comment
Share on other sites

Evie board looks great :thumbsup:

 

It looks so good, I'm left wondering why isn't it available to buy? Because someone sure must have put a lot of work into its creation.

 

Money and time needed to be invested in mass production?

 

Author is Pasiu - Rapidus creator.

Link to comment
Share on other sites

 

Money and time needed to be invested in mass production?

 

Author is Pasiu - Rapidus creator.

 

Hopefully he is receiving some money from the Rapidus release to be able to take the Evie into production as well.

 

 

@Michael: No worries. There would be very limited users for Pokey 3 and 4 I'm sure! Good luck with your dual pokey + tk2 project.

 

Thanks for understanding. I had an initial goal that really was about staying with a through-hole design (my comfort zone), and your offer of creating a Quad Hokey temporarily enticed me to leave that behind, but then my more rational side kicked in and told me to stick with my original plans. However please do keep in mind that the TK-II IP is available for your use in this project as well, and would be one less thing to worry about. I'm also planning on developing a firmware version that will require far fewer Pokey key scan counter lines to achieve key sync, being very similar to what was done in the AKI keyboard adapter. So this would free up at least 4 of the PIC's I/O lines for other uses, such as alternative Mono/Stereo select via direct keyboard command. I'll keep you in the loop with how this idea progresses and can discuss this and other uses for those extra I/O lines in relation to your project.

 

 

Users and CPU power... :(

 

Yep isn't that the truth ;)

 

- Michael

Link to comment
Share on other sites

Users and CPU power... :(

Not to derail this thread, but I wonder what PoKey could achieve with a good DMA engine? Look at what Phaeron was able to make ANTIC do (60fps full colour video) by abusing a register and stuffing a few hundred kB/sec at it? I would love to see a DMA solution for PoKey and CoVox module. Point either chip at data, and bang - let the DMA controller stuff the registers, freeing up the 6502 for other tasks.

  • Like 1
Link to comment
Share on other sites

A workable method for digital DMA audio might be to use normal Antic graphics DMA to do the work.

Have a control register and buffer, give the audio chip a feed of the /Halt and /Refresh lines.

 

When the control register is enabled the chip automatically buffers any Antic read data. DList data could be ignored fairly easily, and just under 8 scanlines of hires data could provide one frame worth of samples (PAL) at 1 per scanline.

  • Like 1
Link to comment
Share on other sites

A workable method for digital DMA audio might be to use normal Antic graphics DMA to do the work.

Have a control register and buffer, give the audio chip a feed of the /Halt and /Refresh lines.

 

When the control register is enabled the chip automatically buffers any Antic read data. DList data could be ignored fairly easily, and just under 8 scanlines of hires data could provide one frame worth of samples (PAL) at 1 per scanline.

That's actually a really intriguing idea, as far as DMA goes in general (for use with storage, in particular). ANTIC can easily do 239 lines (not 240 due to line 240 bug) which is 47 more lines than the normal atari display (192 lines). 47 lines at 40 bytes each is 1880 bytes/frame, and at 60 fps, you get 112.8 KB/s, or 94KB/s at 50 fps. If you can switch between playfield widths in a DLI (I don't know, can you?) then you can get more data even.

 

These extra lines could have all the colors set to border color in a DLI to prevent visual artifacts. A custom display list would be used to set the address where the DMA is done, just a handful of LMS. If you wanted to implement write DMA, you could gate the ANTIC R/W line and enable writing during the extra lines. Your DMA hardware would look at the sync output and count scanlines, piggybacking on the ANTIC cycles if it's enabled to do so. Heck, you might be able to implement this entirely externally. There's a refresh line on PBI, if I'm not mistaken, and definitely /HALT, and the video signal itself can provide sync. ANTIC is NMOS, so it *should* act as wired AND, allowing you to externally pull R/W low for a write.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...