Jump to content
IGNORED

1088XLD - Custom A8 Computer in 1050 Drive Case


mytek

Recommended Posts

This project will have +12v routed to SIO same as a 400/800, but not planning on sending it to the DreamBlaster socket since it's the only board that's small enough to fit where I have in mind, and it has no use for anything other than +5v.

 

In my tests I'm only running a single ground to one of the pins on the DreamBlaster, and it sounds perfectly clean with no hum or buzzing what so ever. When I measured continuity on all the grounds I could not detect any difference between the analog and digital side, which leads me to believe that there isn't a difference electrically speaking. Also keep in mind that this will be a 4-layer board with middle layer power planes same as the XEL, meaning very low resistance path to ground, and negligible chance for ground loops to occur. Probably the original wave blaster boards had actual electrical ground separation between digital and analog side, but this board doesn't appear to.

Link to comment
Share on other sites

AFAIK there's no schematic of the DreamBlaster S2 board, but I assume they followed the SAM2695 datasheet and have a separate AGND and DGND. Here's another SAM2695 project. They clearly separate the analog and digital parts (R1 and L1) and the PCB is routed in such a way digital signals never travel over/through analog planes and vice versa.

Edit: found a leaked schematic from Dream S.A.S. themselves:

post-20947-0-49490000-1536592448_thumb.jpg
post-20947-0-49705900-1536592447.jpg

L3 separates AGND and DGND. They didn't use power planes.


Edit2: Interesting read, especially the second answer. Looks like current/common practice, in case of a 4-layer board, is to have indeed one ground plane (like you have), but still have separate digital and analog sections and separate power planes. The noise is in the power supply.

 

Edit3: BTW I'm well aware that your PCB space is limited and you're not creating audiophile equipment here. I'm just thinking out load, which might or might not benefit your project :)

Edited by ivop
  • Like 2
Link to comment
Share on other sites

Ivop thanks for the great info and schematics. Assuming the S2 board follows suit, it looks like there is no need to pull-up the Reset line externally if not in use. Also the inline 10 uf capacitors on the audio outputs explains why I didn't need to have caps in my interface, with only the input gain resistors to the mixing stage required. Since I'm not experiencing any audio noise issues I'll stick with the common ground plane for both audio and digital. I already have a pretty robust filtering stage and decoupling caps on every IC, so this contributes to the clean power situation. If you scope a 1088XEL board's ground from one end of the board to the other and compare that to a traditional A8 2-layer board it's like night and day as far as the difference in ground noise that's present.

 

L3 is such a low resistance, it would look like a wire at low frequencies, no wonder I didn't detect any resistance when testing continuity between the two grounds on the S2 board.

 

Today I'll be working on creating the MIDI controller chip that I talked about earlier.

  • Like 1
Link to comment
Share on other sites

Yes, a common ground plane in a four layer board is how it's done these days. As for a separate digital and analog section (and separate power planes), it seems to be better at high frequencies. Don't know if it would make any difference for the 1088XLD. Like you said, you have a lot of filtering/decoupling in place already.

 

BTW L3 turns out to be a ferrite bead, which is specifically frowned upon in DC circuits these days (according to previously linked to articles). Dream (the French company that designed the SAM2695) is in no way an authority. But it's a cool chip anyway! :)

Today I'll be working on creating the MIDI controller chip that I talked about earlier.

 

Would be nice indeed to confine all the logic to a single 8-pin PIC! Do you have a keyboard to test it? (i.e. MIDI IN and THRU) IIRC you don't have one, but perhaps you could acquire one cheaply on eBay or craigslist? I see them regularly in 2nd hand shops here for around €25,= - €50,= but to ship them to California would cost a fortune ;)

 

  • Like 1
Link to comment
Share on other sites

Would be nice indeed to confine all the logic to a single 8-pin PIC! Do you have a keyboard to test it? (i.e. MIDI IN and THRU) IIRC you don't have one, but perhaps you could acquire one cheaply on eBay or craigslist? I see them regularly in 2nd hand shops here for around 25,= - 50,= but to ship them to California would cost a fortune ;)

 

Just for starters I picked up a new boxed Rock Band 3 Keyboard for $25 including shipping off of eBay today.

 

post-42561-0-66191400-1536707391.jpg

 

It'll do for now, and I figured if you are game Ivop I could send you a couple of programmed PICs to play with. Since I have no prior experience with this MIDI stuff, it'll be good to have someone else looking at it.

 

Here's the PIC chip pinout for this project.

 

post-42561-0-72340200-1536755705.png

 

In order to make coding a bit easier, I decided to try out an opensource PIC/AVR programming IDE called Great Cow Basic. It really made things super simple as can be seen in the code below. And it comes with drivers for most all of the popular PIC (and AVR) programmers. I'm a Linux guy myself, and although there is a version that can be compiled to work on a Linux box, I decided to give the easy peasy windows installation a try in WinXP on my virtual box drive. I wasn't disappointed, and within minutes I was up and fully functional with full PICkit2 support for flashing the PIC. So here's the BETA code listing (keyword being BETA ;) ).

 

;**********************************************************************
;*  Name    : MIDIctrl_PIC12F1571.gcb
;*  Author  : Michael St. Pierre
;*  Notice  : Copyright (c) 2018 Mytek Controls
;*          : All Rights Reserved
;*  Date    : 9/12/2018
;*  Version : 1.0 BETA
;*  Notes   : MIDI clock and control logic for 1088XLD project
;*          : Based on Microchip PIC12F1571
;*          : Assembled in Great Cow Basic version 0.98.02
;*          : Source: <https://gcbasic/sourceforge.net/>
;*
;*
;*  This program is free software; you can redistribute it and/or modify
;*  it under the terms of the GNU General Public License as published by
;*  the Free Software Foundation, either version 2 of the License, or
;*  (at your option) any later version.
;*
;*  This program is distributed in the hope that it will be useful,
;*  but WITHOUT ANY WARRANTY; without even the implied warranty of
;*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
;*  See the GNU General Public License for more details.
;*
;*  You should have received a copy of the GNU General Public License
;*  along with this program.  If not, see <http://www.gnu.org/licenses/>
;*
;**********************************************************************

;Use internal oscillator

  #chip 12F1571
  #option Volatile PORTA.0
  #option Volatile PORTA.1

;Set PWM parameters and activate Midi Clock on PORTA.2

  #define HPWM16_3_Freq 31.250   '31.250khz
  #define HPWM16_3_Duty 50       '50% duty
  HPWM16On ( 3 )

;Main Program

    do Forever

      If PORTA.3=0 Then   ;ENABLE LOW?
      'If PORTA.3=1 Then  ;ENABLE HIGH?

      ;enabled, so activate outputs
      Dir PORTA.0 Out
      Dir PORTA.1 Out
      Dir PORTA.2 Out

      Else
      ;not enabled, so float all outputs
      Dir PORTA.0 In
      Dir PORTA.1 In
      Dir PORTA.2 In
      End If

    ;transfer MIDI-OUT to SIO-DATA_IN
      temp=PORTA.5
      PORTA.0=temp

    ;transfer SIO-DATA_OUT to MIDI-IN
      temp=PORTA.4
      PORTA.1=temp


    loop

 

I'm running this off of the internal oscillator, which in the case of the PIC12F1571 is factory calibrated, appears to very stable, and on frequency. Don't pay any attention to the frequency reading shown in the scope image which is never quite on the money, it is the cycle time that we are most interested in which as can be seen is a 32 uSec period, matching up with 31,250 Hz. And since I am using one of the 3 available hardware PWM's to create the MIDI Clock, once set --- it takes care of itself.

 

This firmware version which is targeted at the 1088XLD, presently defaults to the ENABLE pin seeing a LOW going Motor-Control signal straight from the PIA. But by making a small change in one line: If PORTA.3=0 Then -change to- If PORTA.3=1 Then it'll work from the standard SIO port instead. When disabled, all outputs are changed to inputs which puts them into a high impedance state taking them off the bus, thus freeing up the entire SIO port for other duties.

 

 

31,250 Hz MIDI CLOCK output

post-42561-0-68462300-1536708037.png

 

Here's the time differential between the signal coming in (bottom trace) vs. going out (top trace). There is some delay of up to about 5 microseconds, which was to be expected due to the instruction cycle time and the number of instructions being executed in the loop. Haven't noticed any problem for playback, which makes sense with the data packet composed of the same data, just delayed in transmission time. However I don't as of yet know what the effect will be when used for MIDI-IN coming from a keyboard. I guess I'll see pretty soon.

 

SIO DATA-OUT vs. MIDI-IN

post-42561-0-64571800-1536708349.png

 

Fun stuff for sure :) .

  • Like 3
Link to comment
Share on other sites

Here's the new MIDI Controller chip integrated into the 1088XLD.

 

(updated 9/13/2018 --- go HERE to find out why)

post-42561-0-38547300-1536894670_thumb.png

 

The MIDI Interface header will connect to the optional DIN Connection Board where opto-isolation and buffering will be provided. When not utilized, the default shorting jumper will allow normal playback through the Dream Blaster S2.

  • Like 4
Link to comment
Share on other sites

It'll do for now, and I figured if you are game Ivop I could send you a couple of programmed PICs to play with. Since I have no prior experience with this MIDI stuff, it'll be good to have someone else looking at it.

 

Sure! I have about three-four devices I could test it with, including a keytar from the eighties ;) Plus, I recently received a Pickit3 as a gift, so I can even reprogram if that's necessary.

 

Here's the time differential between the signal coming in (bottom trace) vs. going out (top trace). There is some delay of up to about 5 microseconds, which was to be expected due to the instruction cycle time and the number of instructions being executed in the loop. Haven't noticed any problem for playback, which makes sense with the data packet composed of the same data, just delayed in transmission time. However I don't as of yet know what the effect will be when used for MIDI-IN coming from a keyboard. I guess I'll see pretty soon.

 

I assume MIDI THRU is also done on the add-on board?

 

Also, but that could be done in software, it would be nice if you could play the keyboard and hear what you're playing through the WaveBlaster board. I don't think a 10us delay will be noticeable during live playing. MIDI latencies are measured in milliseconds. 1-5ms is considered acceptable, though I really "feel" it if it's more than 2-3ms.

 

  • Like 1
Link to comment
Share on other sites

I recently received a Pickit3 as a gift, so I can even reprogram if that's necessary.

 

Cool! The PICkit3 is supported in Great Cow Basic (download). So if you have access to a PIC12F1571 (or a PIC12F1572) you could simply do a cut'n'paste of the code I posted, and then do what's called a Hex/Flash in the Great Cow IDE to compile the code and flash the chip.

 

But if not, I can certainly send you a couple of chips, just PM me your address.

 

 

I assume MIDI THRU is also done on the add-on board?

 

That was the plan ;) .

 

 

...it would be nice if you could play the keyboard and hear what you're playing through the WaveBlaster board.

 

That's also in the plan in a similar way to what you were proposing on the MidiMuse project. There would be a header on the DIN interface board that could either be connected to a switch, or via a jumper for re-configuring where the source MIDI is coming from for the on-board synth.

 

 

MIDI latencies are measured in milliseconds. 1-5ms is considered acceptable, though I really "feel" it if it's more than 2-3ms.

 

That's good to know :thumbsup: .

Link to comment
Share on other sites

Hi,

 

It looks like a 1050 mechanism could sit above the board quite naturally, how much work would it be to drive a 1050 mechanism, e.g. add connectors to the board and software (not sure how much you could do as I think the chips on the 1050 board are all socketed)?

Link to comment
Share on other sites

It looks like a 1050 mechanism could sit above the board quite naturally, how much work would it be to drive a 1050 mechanism, e.g. add connectors to the board and software (not sure how much you could do as I think the chips on the 1050 board are all socketed)?

 

Remember the original 1050 electronics takes up that entire area where I'm now proposing to drop in a remake of the A8 computer motherboard instead. I don't think there would be enough room for the drive electronics to also fit along with my motherboard, not unless you could greatly miniaturize it to fit in the area behind the drive. And it couldn't be done with the same components in that limited space, not unless you went with something like a CPLD or FPGA design. Also there would be height problems where the U1MB goes, as well as issues such as where would the peripheral interface connectors go?

 

Luckily I don't need to worry about any of this ;) .

  • Like 1
Link to comment
Share on other sites

Ok, fair point. I don't actually know how much of the 1050's PCB is directly related to driving the mechanism, I figure some of it is dedicated to the supporting infrastructure, e.g. 6507 chip, RIOT chip, ROM, circuitry to support those, etc. I like the idea of being able to take a 1050, swap out the motherboard, and have a 1088XLD (and 1050 drive). I've never used a U1MB, but I would like to point out the drive mechanism doesn't occupy the whole of the length of the 1050's case. However, I'm much more of a software person than a hardware person, so can only wishlist this sort of thing. Thanks for developing the 1088XLD, it looks like a very interesting project.

  • Like 1
Link to comment
Share on other sites

Disclaimer

 

This is a totally weird self serving project that quite frankly just shows what happens when the frantic gears spin out of control in my bored little brain. Nothing you see here was born out of necessity, nor does it fill a niche that needed filling. And most likely there will be those that will scratch their head and wonder WTF is this good for! And for those devoted Atari hardware preservationist, I'll warn you now that 1050's will die before this project is done (and many more, if this spreads). So if you can't stomach the thought of that, it's best that you stop reading this immediately, curl up into a little ball, and pretend the world is sane.

 

Are you still here?

 

Good, let's proceed.

 

As some of you may already know, this all began a few days ago when I proposed putting a 1088XEL motherboard into a 1050 floppy drive case.

 

msg-42561-0-10817100-1531783037.jpg

 

Well that was going to get very messy real fast, with lots of wires and dangling bits holding it all together. So like any reasonable and somewhat lazy person would probably conclude "I decided no way was I going to do that!" But the idea wouldn't die. And to add fuel to this, a posting in a PM suggested designing a new motherboard for a few dead 1050s they had laying around gathering dust. Stupid me latched onto 'new motherboard', and at first I thought that was totally crazy, after all I just finished a big project like that earlier this year, and I just wasn't feeling it. Little did I realize that they weren't on the same wavelength as me, and were really talking about a custom XF drive board that would fit into a 1050 case. Not a bad idea in itself, but that's a whole different story, for an entirely different thread.

 

Anyway the gears kept turning, and I thought that would be kinda cool and somewhat awesome to have a A8 computer motherboard that would drop into a 1050 case, with no, or very little modification. And even better still if it could piggyback on the 1088XEL project with an internal CF drive that could utilize flashjazzcat's 1088/U1MB Bios to make that CF drive really purr.

 

I started getting excited, and the ideas just came pouring forth, a dangerous phenomena to say the least ;) . So suffice it to say a new alternative motherboard project was born.

 

 

Please welcome the 1088XLD

 

1088 - Total amount of RAM memory due to built-in U1MB.

XL - Because we are packaging this in a 1050 case, it'll take on the style of this iconic series.

D - Just like the 1450XLD it'll sport an internal drive, although a much faster and more capable solid state one.

 

 

post-42561-0-94869500-1533541516.png

 

Obviously I have a long ways to go. But it's a good start, and since it will re-purpose a lot of the 1088XEL design, it should go much more smoothly through the development process.

 

PCB Image UPDATED On August 8th 2018, now much closer to final layout

 

Features

  • U1MB
  • UAV (routed to standard DIN-5 rear panel video jack)
  • Will support PAL or NTSC configurations
  • Integrated XEL-CF3 electronics (will leave MPBI+ expansion bus free)
  • Rapidus, VBXE, and P-Covox interface control signals to be provided by independent header
  • 9 VAC power derived from stock 1050 PSU
  • Internal 5 VDC and 12 VDC regulation via cool running switching regulator ICs
  • MPBI+ (same as the 1088XEL MPBI expansion bus, but also sporting the missing upper address bits for a full interface, and added 12 VDC)
  • PS/2 Mouse and Keyboard front panel jacks
  • Front panel Joystick ports and 3.5mm Stereo audio output jack
  • Dual Stereo Pokeys with electronic Mono/Stereo switching via the U1MB
  • V-Gate chip to kill video overscan
  • Dual SIO ports
  • Front access cartridge port

 

The journey begins :)

 

 

You Gave it a cartridge port OMG!

  • Like 1
Link to comment
Share on other sites

Ok, fair point. I don't actually know how much of the 1050's PCB is directly related to driving the mechanism, I figure some of it is dedicated to the supporting infrastructure, e.g. 6507 chip, RIOT chip, ROM, circuitry to support those, etc. I like the idea of being able to take a 1050, swap out the motherboard, and have a 1088XLD (and 1050 drive). I've never used a U1MB, but I would like to point out the drive mechanism doesn't occupy the whole of the length of the 1050's case. However, I'm much more of a software person than a hardware person, so can only wishlist this sort of thing. Thanks for developing the 1088XLD, it looks like a very interesting project.

 

It's certainly not impossible to do what you are asking for, but in essence we are talking about two separate computers in the same case. One dedicated to the drive, and the other our beloved A8. There really wouldn't be any easy way to combine them into one board in that space, or run both functions off a single 6502, or simply change the OS to make it all work. In reality you would be looking at several stacked boards in order to get 5 lbs of shit into a 1 lb container.

 

My intention on this first iteration is to leave out cartridge access from the front panel, and then center a CF drive in the upper part of that same panel, with the interface connectors down below. I was thinking of surrounding the CF slot with some graphics that make it look more like a floppy insertion point, and perhaps even use a floppy image off to one side for that retro look.

 

Of course as has been suggested, the 1088XLD could be stacked on top of a 'real' 1050, thus giving you a floppy in the system. But by far having a PBI CF Drive in the main unit will be the best thing to do, giving you access to a virtually unlimited amount of games and applications, while loading at break neck speed.

Link to comment
Share on other sites

Disclaimer

 

This is a totally weird self serving project that quite frankly just shows what happens when the frantic gears spin out of control in my bored little brain. Nothing you see here was born out of necessity, nor does it fill a niche that needed filling. And most likely there will be those that will scratch their head and wonder WTF is this good for! And for those devoted Atari hardware preservationist, I'll warn you now that 1050's will die before this project is done (and many more, if this spreads). So if you can't stomach the thought of that, it's best that you stop reading this immediately, curl up into a little ball, and pretend the world is sane.

 

Are you still here?

 

Good, let's proceed.

 

As some of you may already know, this all began a few days ago when I proposed putting a 1088XEL motherboard into a 1050 floppy drive case.

 

msg-42561-0-10817100-1531783037.jpg

 

Well that was going to get very messy real fast, with lots of wires and dangling bits holding it all together. So like any reasonable and somewhat lazy person would probably conclude "I decided no way was I going to do that!" But the idea wouldn't die. And to add fuel to this, a posting in a PM suggested designing a new motherboard for a few dead 1050s they had laying around gathering dust. Stupid me latched onto 'new motherboard', and at first I thought that was totally crazy, after all I just finished a big project like that earlier this year, and I just wasn't feeling it. Little did I realize that they weren't on the same wavelength as me, and were really talking about a custom XF drive board that would fit into a 1050 case. Not a bad idea in itself, but that's a whole different story, for an entirely different thread.

 

Anyway the gears kept turning, and I thought that would be kinda cool and somewhat awesome to have a A8 computer motherboard that would drop into a 1050 case, with no, or very little modification. And even better still if it could piggyback on the 1088XEL project with an internal CF drive that could utilize flashjazzcat's 1088/U1MB Bios to make that CF drive really purr.

 

I started getting excited, and the ideas just came pouring forth, a dangerous phenomena to say the least ;) . So suffice it to say a new alternative motherboard project was born.

 

 

Please welcome the 1088XLD

 

1088 - Total amount of RAM memory due to built-in U1MB.

XL - Because we are packaging this in a 1050 case, it'll take on the style of this iconic series.

D - Just like the 1450XLD it'll sport an internal drive, although a much faster and more capable solid state one.

 

 

post-42561-0-94869500-1533541516.png

 

Obviously I have a long ways to go. But it's a good start, and since it will re-purpose a lot of the 1088XEL design, it should go much more smoothly through the development process.

 

PCB Image UPDATED On August 8th 2018, now much closer to final layout

 

Features

  • U1MB
  • UAV (routed to standard DIN-5 rear panel video jack)
  • Will support PAL or NTSC configurations
  • Integrated XEL-CF3 electronics (will leave MPBI+ expansion bus free)
  • Rapidus, VBXE, and P-Covox interface control signals to be provided by independent header
  • 9 VAC power derived from stock 1050 PSU
  • Internal 5 VDC and 12 VDC regulation via cool running switching regulator ICs
  • MPBI+ (same as the 1088XEL MPBI expansion bus, but also sporting the missing upper address bits for a full interface, and added 12 VDC)
  • PS/2 Mouse and Keyboard front panel jacks
  • Front panel Joystick ports and 3.5mm Stereo audio output jack
  • Dual Stereo Pokeys with electronic Mono/Stereo switching via the U1MB
  • V-Gate chip to kill video overscan
  • Dual SIO ports
  • Front access cartridge port

 

The journey begins :)

 

piggyback a 1030 modem case as an additional power supply for laptop capability? Lithium Ion batteries are the shit for mods!

 

get er done!

  • Like 1
Link to comment
Share on other sites

piggyback a 1030 modem case as an additional power supply for laptop capability? Lithium Ion batteries are the shit for mods!

 

get er done!

 

Huh :?

 

 

Absolutely! It NEEDS to be in a 1050 case!

 

You'll get no objection from me ;) .

 

 

BTW, it would be nice if you could go back and edit those two super long posts you made and delete all the redundant information :) . It looks like you must have used the quote option on the very first post in this topic.

Link to comment
Share on other sites

Getting back to incorporating MIDI into the 1088XLD...

 

I have quite a rats nest of wires to clean up before something bad happens and I short out my 1088XEL, or another U1MB up in smoke (good thing there are no kittens around :-D ).

 

post-42561-0-86739700-1536797745_thumb.jpg

 

So I want to turn that, into this. The idea being to use a right angle female header for P1, and then plug it straight into the XEL's SIO-AUX header.

 

PCB (updated 9/13/2018)

 

post-42561-0-90626400-1536894033.png post-42561-0-17255500-1536894041.png

 

This way I can continue testing in a much safer way :thumbsup: .

 

Making these small boards has gotten pretty easy for me, and having a small batch made at ALLPCB is very cheap and fast ($10 for 5 boards with FREE shipping). The days of breadboarding stuff on vector board is gone for me.

 

Schematic (updated 9/13/2018)

 

post-42561-0-15582700-1536894056_thumb.png

 

Header J2 provides a connection for the audio to mix into the 1088XEL's main stream, and also a RESET connection for the S2 module. All three of these signals will plug into pins on the MPBI.

  • Like 3
Link to comment
Share on other sites

PCB Layout Updated today. I got a lot more components in place and have decided to take a slightly different approach on the daughter-board business. At this point I think I've dropped about 85-90% of the required parts onto the board. Just need to add some SIP resistor arrays, some SIP headers, and finish adding the components for the power supply section. The nice thing is with the extra real estate that this board offers, no layering of components is required, thereby making life a bit easier when it comes to troubleshooting and/or re-flashing the PIC chips.

 

post-42561-0-96343100-1532235714.png

 

 

The cartridge port will require a small adapter board to transition from a vertical to right angle orientation, as well as for setting the correct height in relation to the front panel. There will also be a small status LED board required.

 

I'm going with a clock/oscillator IC this time around since these are available for both the NTSC and PAL systems in a x4 frequency (the extra 74HCT74 above it will be wired as a divide-by-four circuit). There will be a socket for this IC to facilitate easy removal and swapping.

 

14005-oscillator-socket.jpg14.31818 MHz CO70024 (NTSC) -or- 14.187576 MHz CO70034 (PAL)

 

 

The built-in IDE is based on the XEL-CF3 with but one exception, it has a 74F08 being used to buffer the 3 address lines. (these are un-buffered on the present day XEL-CF3 destined for the 1088XEL). I believe buffering those bits will yield even better results.

 

What look to be a 7805 and a 7812 linear voltage regulators, will actually be a drop-in switching equivalents with a 1.5 Amp rating.

 

TPSM842xx TO-220 Drop-in Switching Modules

 

TPSM84205.jpg

 

You can pick these up at Mouser for $4.63 each.

wow! new components that do so much. my new 1200xl mb build taught me that I need glasses. i suffer from cant see shit syndrome

Link to comment
Share on other sites

Hey mytek, thanks for the amazing work you do. I think you might have misconstrued my comment. I was referring to the the original 1088XEL shape and design and the discussion pages of ITX (or ATX) case options. I am saying that the new design fitting the 1050 case is great because as much as I LOVE the original, I couldn't bite yet until a redesign of it fit something more familiar. I'm loving the 1050 redesign, but I feel if THIS is a thing, surely the next revision will be shaping the mobo to fit an:

 

1st choice: 800XL

2nd choice: 600XL

3rd Choice - ANY drop in replacement of A8.

 

In summary, my latching on to the 1088 ANYTHING projects is in hope of what the latest C64 scene has brought, namely Gidion's Ultimate 64 (FPGA Commodore 64 board to fit a real c64 case/keyboard) or JENS' Individual Computers MK2 board. So the Atari FPGA based Eclaire board is another near perfect "but I want to use my Atari 600xl/800xl case" scenario for me. Regardless of my comments, I am so much in respect of each and all mentioned creators and projects. UNTIL I have a drop in replacement board for SOME A8, I should point out a a rare combo that could work: PLEASE consider the work here: http://blog.tynemouthsoftware.co.uk

 

I have corresponded with the kind hearted owner of this. IF you convert an XL, IN THEORY, you have a USB XL that could plug into a MIST, yet ALSO any 1088XEL variation! The closest comparison in Atari world is the XEGS, but I feel it is closer to creating an Atari after-market equivalent of the Commodore 128D vs the 128... gut an Atari, but include a KEYBOARD to connect to a tower.

 

 

commodore what?! HISSSSS ( sunnyvale high school not Cupertino!)

Link to comment
Share on other sites

1) I always buffer a clock if it's going to more than one place. Now 16MHz isn't the fastest clock in the world, but I'd still buffer it. I can't tell you what happens if you don't, because I've never done that, but I can tell you it works well to buffer it :)

 

2) Audio (well, anything analogue, actually) isn't my bag, I'll defer to others :)

  • Like 1
Link to comment
Share on other sites

Actually in my thinking since you are basing your clock source on a canned oscillator, and only fanning out to two devices, I wouldn't think buffering would be required. The clock source probably already has a high drive capability built-in. Check the specs to see for sure.

Link to comment
Share on other sites

1) I always buffer a clock if it's going to more than one place. Now 16MHz isn't the fastest clock in the world, but I'd still buffer it. I can't tell you what happens if you don't, because I've never done that, but I can tell you it works well to buffer it :)

 

2) Audio (well, anything analogue, actually) isn't my bag, I'll defer to others :)

 

Thanks for the quick reply! I mistakenly wrote decoupling both in my previous post and on the schematic. The datasheet has an AC coupling (DC blocking) capacitor plus resistor drawn in and has a note saying "required only for ac coupling", but I don't know if I require it :)

 

I'll look into the clock buffering some more. I guess if space permits it, I'd better add a buffer. Better safe than sorry.

Link to comment
Share on other sites

Actually in my thinking since you are basing your clock source on a canned oscillator, and only fanning out to two devices, I wouldn't think buffering would be required. The clock source probably already has a high drive capability built-in. Check the specs to see for sure.

 

That was my initial thinking, too. Checking some crystal oscillator datasheets (because I have no idea of the brand of the oscillators ordered on ebay) most of them have a load capacitance of 15-30pF. The problem is, both the CS9236 and CS4333 datasheet do not list the input capacitance of their clock inputs :( Recent MCUs and CPLDs etc... have an input capacitance of 10pF or less, but those CS chips are from the 90's. I guess that it would be nice to cater for low load capacitance oscillators (i.e. 15pF) and expect more than 20pF combined input capacitance. So that'll mean I need a buffer.

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

There have been several recent changes besides the firmware --- reference notes at the bottom of this post for an explanation.

 

New code for PIC MIDI Controller firmware.

;**********************************************************************
;*  Name    : MIDIctrl_PIC12F1571.gcb
;*  Author  : Michael St. Pierre
;*  Notice  : Copyright (c) 2018 Mytek Controls
;*          : All Rights Reserved
;*  Date    : 9/13/2018
;*  Version : 1.0 BETA3
;*  Notes   : MIDI clock and control logic for 1088XLD project
;*          : Based on Microchip PIC12F1571
;*          : Assembled in Great Cow Basic version 0.98.02
;*          : Source: <https://gcbasic/sourceforge.net/>
;*
;*
;*  This program is free software; you can redistribute it and/or modify
;*  it under the terms of the GNU General Public License as published by
;*  the Free Software Foundation, either version 2 of the License, or
;*  (at your option) any later version.
;*
;*  This program is distributed in the hope that it will be useful,
;*  but WITHOUT ANY WARRANTY; without even the implied warranty of
;*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
;*  See the GNU General Public License for more details.
;*
;*  You should have received a copy of the GNU General Public License
;*  along with this program.  If not, see <http://www.gnu.org/licenses/>
;*
;**********************************************************************

;Use internal oscillator

  #chip 12F1571

;Port Equates

  #define MIDI_OUT PORTA.0
  #define DATA_OUT PORTA.1
  #define MIDI_CLK PORTA.2
  #define ENABLE PORTA.3
  #define MIDI_IN PORTA.4
  #define DATA_IN PORTA.5

  #option Volatile MIDI_OUT
  #option Volatile DATA_OUT

;Set PWM parameters and activate Midi Clock on PORTA.2

  #define HPWM16_3_Freq 31.250   '31.250khz
  #define HPWM16_3_Duty 50       '50% duty
  HPWM16On ( 3 )

;Set-up gated MIDI output port and force it high

  Dir MIDI_OUT Out
  MIDI_OUT=1


Main:

    do While ENABLE=1   ;Keep looping if  Motor Control is enabled

    ;activate SIO related outputs (take over SIO bus)
    Dir DATA_OUT Out
    Dir MIDI_CLK Out

    ;transfer DATA input to gated MIDI output
    temp=DATA_IN
    MIDI_OUT=temp

    ;transfer MIDI input to gated DATA output
    temp=MIDI_IN
    DATA_OUT=temp

    loop

;float SIO related outputs (free up SIO for other devices)
Dir DATA_OUT In
Dir MIDI_CLK In

;and force gated MIDI output high
MIDI_OUT=1

Goto Main

----------

 

I streamlined it a bit by going with a "Do While" loop instead of the "If Then-Else-End If" that I formally had.

 

I also decided to not float the output going to the Dream Blaster S2's Midi-In connection, so that when it's idle, the input sees a high state. Otherwise I'd have to pull it high with a resistor. so it's nice to be able to change code instead of adding parts ;) .

 

This version is ready to go for connection completely through the SIO port, with a HIGH logic activation via the Cassette Motor Control pin.

 

While I was fiddling around with this today, I kind of had a crazy thought :ponder: . Since I'm connected to the S2's Midi-In, theoretically I could have the PIC send unique data to it, instead of the SIO. There is space for something short to possibly exist, with the PIC12F1572 having 2K of Flash Rom where a midi sequence could be stored. The only problem is, I would have to bit bang it to create the 31,250 baud Midi serial data stream, since this chip has no on board UART (a lot of PICs do, but this chip makes up for the lack of it it in other ways). The main thing is that the idea is possible.

 

 

NOTE1: I just noticed that the PIC12F1572 does have a UART :thumbsup: . Now to see if it can be set to a baudrate that will work.

 

NOTE2: I've corrected the schematic, board layout, and the latest code above to reflect the change required to get the 12F1572's on-board UART transmit pin where it can be used to talk to the synth. I will be updating the items I mentioned in the previous posts to insure that the information remains consistent and valid. I also updated the naming convention for the PIC's port pins, because quite frankly the original naming scheme was confusing the crap out of me :grin: .

 

New pin naming scheme

post-42561-0-37221900-1536893934.png

 

Go HERE to see updated schematic and PCB.

  • Like 2
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...
  • Recently Browsing   0 members

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