It's been a few weeks since the last update, but there is quite a bit to report.
I've taken the last [almost] month to work solidly on getting the new machines a lot closer to production.
The first couple of weeks were solely dedicated to working through the [FPGA] logic design and ensuring it was stable.
I tracked down quite a number of potential timing issues (data not meeting setup times to clock edges) and solved a few
intermittent problems as a result. I reported last that the SDcard was intermittent, and I thought I had fixed that, but depending on
the build / compile of the FPGA logic, that was still faulty. I found the cause, and it related to another few parts as well, including
an intermittent issue in reading from the configuration flash rom (in which the Z80 mode Boot Rom image is stored). This is now
solidly fixed and tested.
Next I tackled some timing issues still persisting in the video display area, and also the 'Videotex' video mode (where the pixel clock
is half the normal rate) which allows for 32 / 40 column mode. All this is now working really well.
The next major area to get on with was the HDMI output. I needed to verify this functionality before doing [what will hopefully be] the
production PCBs. You may recall that I'd designed an HDMI dev board to test this out from an earlier post in this thread.
To start with, and before I attached the HDMI dev board, I needed to get the I2C bus working on the 68SZ328 processor.
This bus is used for a number of peripherals, including [obviously] the HDMI transmitter and the new Real Time Clock.
After implementing some code, I was able to access the RTC straight away and confirm chip ID and that the Unix Time counters
were running. I2C bus - Tick.
To get the HDMI transmitter going, I needed to attach it to the FPGA board video output section and then program up some
configuration of the part on the board via the I2C bus. Straight away I could read the chip ID to verify the I2C bus connection
and then configure the part and turn the transmitter on. While there is still some programming to do to read the display information
out of the monitor (EDID) and properly configure the video descriptors, the HDMI output now works and is crystal clear.
See the photos below.
I was hoping to test out the I2S sound that is included on the HDMI Dev board as well, but there are not enough accessible free FPGA
pins on the current FPGA board to connect the I2S sound signals (or the HDMI interrupt signal for that matter, which services
Hot Plug events), so that will need to be tested when the new PCBs are done.
Aside from the development work, I've started ordering the critical components.
I already have the metalwork for the 64 key keyboard frame - I had this done long ago.
I've ordered 120 sets of the 64 key layout key caps, and they should arrive just before Christmas.
I'm working with a new supplier for the 98 key keyboard key cap sets and should have 100 sets of
those pre-christmas as well.
So, as you can see, the project has moved forward significantly in the last month.
Firstly, I've renamed this thread to remove 'Classic-Plus' from it. As mentioned in an earlier post in the thread, the 'Classic-Plus' and '256TC-Plus'
names for the 2 models will be changing for release. Neither of them truly reflect the new features and enhancements in the product.
Not a lot has gone on this week, except from working on the new revision of the FPGA board.
I've now added the HDMI transmitter part & I2S sound -> line output DAC. Also, instead of
the 2 static rams of the previous version, there is now a Flash rom & a 32Mbyte SDRAM.
Routing of the boards' updates is going well, with a little bit left to do. I'm aiming to have the
new FPGA board design files sent off for manufacture by the end of next week.
Over the past few weeks both the FPGA board and main board have lots of revision and the designs are just about fully routed
for the new (and hopefully production) versions.
There is only a minor amount of routing of the FPGA board left, with only the connections from the HDMI transmitter chip to the SO-Dimm
edge connector left to route. This is a little tricky as it involves pushing and shoving existing routing to make way for a clear path for
the differential DVI signals and the I2C, HPD, and CEC signals on an inner layer of the PCB.
The Main PCB routing is done and just needs a bit of cleanup & checking over. It should be into the PCB fab house by Thursday.
Looking at the PCB from the front, you can see quite a number of changes.
The power supply section (far right) has been rationalized. The previous version had supplies for both 5v & 3.3v. Now the FPGA board
provides the 3.3v for the main board as well as for it's own requirements.
The audio output for the internal speaker has been re-designed to take the stereo line level output from the FPGA board's I2S sound
output and sum it into mono audio with a rear facing volume pot. The single bit from the PIO chip that provides the Microbee's normal sound output
now routes to the FPGA and gets combined with the dual sound (stereo) FIFO's before being sent out to both the HDMI transmitter (for sound
over HDMI) and the onboard stereo DAC that provides line level output to a rear jack.
As you'll see in the next couple of pictures, the 5 pin DIN socket that has been the connection for Power, Video and the cassette interface has been
retired and replaced. There are a number of reasons for that.
Firstly, it's a real pain to make the power supplies for the 5 Pin DIN.
Also, the normal monochrome video output is no longer supported. While some people might have monochrome monitors that suit, that is not
the case for most people, and although some TV's have AV inputs that work well enough, it's still not great.
The video output is now upscaled HDMI and that is provided via the new connector on the back panel. It is a much cleaner, sharper solution and most
people have a suitable monitor or TV with HDMI in. No more need for 15Khz capable monitors or external upscalers.
The cassette interface has been retained but the connection is now via a 3.5mm stereo plug for the die-hards who would still like to read and record to tape.
You'll also notice a USB connector has been added. It is for adding mouse functionality (only).
With the exception of the power switch, everything fits nicely in the Premium case if you have one. If choosing to use a Premium case
you can leave the power switch off and jumper the switch position. I'm looking into a 'premium style' case replacement design.
Of course the board is also designed for the 256TC case with the new keyboard, in which case the power switch will be included.
There probably more that I've not detailed here, but there you have it for now.
I think I mentioned earlier but the keycaps for both the 64 key [premium] layout and the 98 key new layout have been ordered.
The manufacturer has informed me that the 64 key sets will be shipped in January, and "fingers crossed" the 98 key layout caps
will be during February.
After a big push over the last week, new boards have now been ordered.
Hopefully, production ready. We'll wait and see on that one.
One of things I was struggling with, as to what to do, was to do with the keyboard interface.
With the classic microbees, the keyboard was scanned through the 6545 CRT controller. It was a nice, cheap & effective
way to attach a keyboard back in those days. Moving forward though a better solution had to be found with a keyboard
that could be interrupt driven rather than polled. Complex running software sometime doesn't have the opportunity to
pause to see if there is any keyboard activity, so in some circumstances key strokes can be missed.
The 256TC and Teleterm models, and the Gamma all had keyboards that are interrupt driven, and better for it.
However, most of the software written for earlier Microbees, particularly games, rely on scanning the keyboard
through the 6545 screen controller, polling for keyboard input.
On to the new models - the one with the larger 98 key layout actually uses a PS/2 interface internally. The PS/2
interface is available to both the 68000 (MC68SZ328) and the Z80, but also the key scan codes actuate an
8 x 8 matrix that can still be scanned by the CRT controller for legacy software. This is the same approach as used in our PS/2 interface adapter
that can be added to standard & premium Microbees. It works well, and works with all the older software that scans
via the CRT controller.
The prototype of the new model with the 64 key layout still had the keyboard connected to the scanning circuit on the CRT controller
and it worked perfectly, but then this means that the keyboard scanning is different for each of the 2 new models.
So, I bit the bullet and converted the 64 key layout model to scan the keyboard via a PS/2 keyboard controller, and mapped all the keys
accordingly. This means that software for the new machines will work on each model without having to have different keyboard routines.
If you have a look at the photo of the PCB (above) you will see the PS/2 keyboard keyboard controller just above the keyboard section, just
to the right of the middle of the PCB. I've also put in a way for the processor to tell which size (64 or 98 key) the keyboard is.
Of course, the old matrix scanning will be catered for as well, so all the old software will still work.
The new version of the FPGA board is all done & panelized into a 2 x 2 panel, ready for building on the Pick and Place machine.
If all goes well, I should receive the new boards at the end of next week and then I get to prove them out.
Also, the key caps for the 64 key layout are shipping from the US tomorrow. I should have them at the end of next week
as well.