foft Posted July 13, 2016 Share Posted July 13, 2016 (edited) 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 July 13, 2016 by foft 1 Quote Link to comment Share on other sites More sharing options...
foft Posted July 13, 2016 Author Share Posted July 13, 2016 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. Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 13, 2016 Share Posted July 13, 2016 (edited) 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)... Quad Pokey Sound Capabilities (individually mapped via A4-A5 address lines) Single SIO Port Single Set of Paddle Inputs Keyboard Scanner (linked to on board TK-II PS/2 -to- Atari keyboard Adapter) Mono/Stereo Select Line (controllable by either physical switch or U1MB M0 line) 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). What do you think? - Michael Edited July 13, 2016 by mytekcontrols 3 Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 14, 2016 Share Posted July 14, 2016 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 Quote Link to comment Share on other sites More sharing options...
Rybags Posted July 14, 2016 Share Posted July 14, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 14, 2016 Share Posted July 14, 2016 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 Quote Link to comment Share on other sites More sharing options...
Rybags Posted July 14, 2016 Share Posted July 14, 2016 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). 1 Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 14, 2016 Share Posted July 14, 2016 (edited) 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 July 14, 2016 by mytekcontrols Quote Link to comment Share on other sites More sharing options...
foft Posted July 14, 2016 Author Share Posted July 14, 2016 (edited) 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 July 14, 2016 by foft Quote Link to comment Share on other sites More sharing options...
Matej Posted July 14, 2016 Share Posted July 14, 2016 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! Quote Link to comment Share on other sites More sharing options...
lemiel Posted July 14, 2016 Share Posted July 14, 2016 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. 2 Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 15, 2016 Share Posted July 15, 2016 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 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 Quote Link to comment Share on other sites More sharing options...
lemiel Posted July 15, 2016 Share Posted July 15, 2016 Evie board looks great 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. Quote Link to comment Share on other sites More sharing options...
foft Posted July 15, 2016 Author Share Posted July 15, 2016 @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. Quote Link to comment Share on other sites More sharing options...
lemiel Posted July 15, 2016 Share Posted July 15, 2016 Users and CPU power... Quote Link to comment Share on other sites More sharing options...
+mytek Posted July 15, 2016 Share Posted July 15, 2016 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 Quote Link to comment Share on other sites More sharing options...
+Stephen Posted July 15, 2016 Share Posted July 15, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
Rybags Posted July 16, 2016 Share Posted July 16, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
Joey Z Posted July 16, 2016 Share Posted July 16, 2016 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. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.