Problematic PLDs – The Answer is Near…

The problem that I have been having with PLDs in the recent past may be close to being resolved.  The last few times that I’ve ordered GAL22V10s from any source my programmer, a TL866 (aka:  MiniPro), has been unable to program them. Considering that my G80-S Computer requires this PLD for it’s decoding logic, and that many users do not have a means to program these chips, this creates quite a problem.  So I have set out on a quest to see if the problem with the over 120 GAL22V10s that I have have in my possession is truly a problem with the ICs, or if it is an issue with the programmer.  I suspect the second is the cause.

So, I have ordered a batch of boards for the ‘ELM Simple GAL Programmer‘ and have built one to test.  Above is the board.  The person who designed the board used a Male to Male 24-Pin Serial Cable for some reason, rather than a proper Parallel Cable.  I do not know why.  But Since I do not own a 24-Pin Male to Male cable, I’m waiting on one to arrive.  The rest of the board is done.  I’ve already applied voltage and test the VCC and the 15v lines, and adjusted them to their proper voltages.

Assuming this works for programming the 22v10s that I’ve had so many problems with, I will likely redesign this board so that it is a little more proper, and then offer it in the RetroDepot store.  However, I will likely sell off the extra boards that I ordered once I confirm they do in fact work.  Until then, no sense in selling PCBs that I’m unsure of.

N8VEM SBC V2 – Still awaiting shipment

Well, Mouser managed to send an email today letting me know that they have shipped my package which has the needed parts to get this board up and running. However, it looks like the package will not get to me until 1/13/18 (4 more days).  Even though I am only 4:30hrs away from their warehouse.  I’m going to be honest, I’m not very happy with their service this time around.  But I suppose every company is allowed to have a bad day from time to time…

I already have all of the sockets and passive components soldered. I’m just waiting on the chips to stick into the sockets.  As well as an oscillator. I plan on testing this board at 16mhz , but may drop the speed depending on how the initial testing goes.  I decided to go with ACT logic families, since they have a very fast propagation delay, low power consumption, and are CMOS and TTL compatible.


The bare SBC V2 Board


Missing only the chips, the CPU Clock, and a 1k resistor array (RR1).  Well, and it needs a bi-color LED…

I actually had several of the chips needed on hand.  The board currently has a 20mhz CPU (z80 of course), an 8255, an 16C550, and a MAX232CPE.  But I still need to have a few more ICs before this will be able to boot to CP/M.  Still waiting on Mouser…

As you may have noticed in the second picture above, I installed a machine pin DIP-8 socket in place of P4 (CPU Clock).  This allows me to try a variety of oscillators until I find one that works as desired.  The goal is to have a very fast processor, and be able to run the SCG (Sprints and Color Graphics) Card in this computer.  Though I hear that card prefers something in the range of 4mhz.  For some reason I have to believe it can handle more speed.  Maybe the person who suggest this used a slower logic family???

As soon as I have more to report I’ll be back with another post.

Website Update, and Other News…

It’s been a while since I have been able to update the website.  That has mostly been due to the holidays, but also general problems of being an adult, like work…

But, fear not. I have managed to make a few updates this evening.  There is now a downloads section available by using the main menu at the top of the site.  Also, I’ve added tabs for Links, as well as condensed the Store into a tab where the cart and the checkout can be accessed.

I’ve worked on the downloads page to the point that I think it is functional.  It looks ugly to me, but it serves it’s purpose.  Maybe I need some nifty graphics or something…

I’ve got to finish working on the TinyBASIC source.  It has been brought to my attention that there is another issue with it, although it is not something that I have toyed with.  So I’m not sure where it went broken.  The average user will probably not notice it, but if you are trying to use programs found on the web, you may run into problems were it concerns the syntax.

I received a batch of boards for the N8VEM SBC V2, and some Harlequin 48k boards.  I may be offering some of those in the store before long.  I would like to build them first to make sure the boards came out as expected.

I am working on building a N8VEM SBC V2.  I am currently waiting on parts from Mouser.  Their website said that the parts would leave their warehouse 3:30hrs after I ordered 3 days ago, and I received an email this morning stating that they would likely be shipped today. And, they would send me an email when they had shipped.  It’s now 9:30pm and that email has not arrived.  Broken promises….  But I’ll get a blog post, maybe a video, of that up as soon as it’s complete.  I also have an 8-slot ECB backplane on the way from John Coffman.  It’s the 167mm version of that board, so I am really looking forward to getting this setup.  I plan on putting this system into a 19″ 5U rack mount enclosure.  Along with a front panel that displays address, data, and status lights.  I am thinking something along the lines of the Magic-1 as seen here:  http://www.homebrewcpu.com/

I’m also, as we speak, printing up an enclosure for my N8VEM Zeta SBC V2, and the ParPortProp board.  Thats more of a work in progress.  But I may get a few pictures up as soon as it looks halfway decent.  I’m no artist, especially when it concerns 3D objects.  But I try.

So here is to making 2018 a great year!!!

2nd Batch of Counterfeit GAL22V10s??? Or not???

Well, I discovered a package in the post today.  This time an order of GAL22V10B.  Upon opening the package I took note of how good the condition of the ICs were in comparison to the previous batches I have ordered in the past.  These really do look to be in good shape.  However, there are obvious signs that they have been previously used.  Such as slight wear on the pins.

But will they program, that is the question.  Well, I am here to tell you that the answer is…..  Nope, I couldn’t get so lucky.  I have only tried 10 or the 50 that I ordered, but I will tell you this, with this many that are bad I can’t see many of the others working.

So this brings me to my next question.  Why am I having so many problems with these PLDs???  Is it my programmer?  It’s worked fine on 16v8s and other 22v10s for some time.  But I have run into the problem before.  See the picture below:

I have run into this several years ago, and actually posted about it over on AtariAge, here is that post.  It’s mentioned in post #11.  And it’s the same problem we see here.  So that begs the question, are these “Re-Caps” that have been labeled as ‘GAL’ when they may actually be ATF22V10s???  That would explain the problem programming (Atmel variants use a different algorithm to program the PLD, but the JEDECs are compatible from my understanding).  But that is just speculation.

If anyone can shed light on this, I’d love to hear from you.  I’ve got about a dozen dozen of these things that are refusing to program that I’d love to salvage considering that they cost about a $1-3 depending on where you buy them.  But for now I am just assuming they’ve been programmed too many times.  The funny part is that they verify as blank…I’m wondering if they were erased and the lockbit was set?  Although I’m not sure that would make a difference….

If you’re interested to know where I got them, here is the eBay link:

https://www.ebay.com/itm/Lattice-GAL22V10B-GAL22V10-22V10-CPLD-DIP28-X-20pcs/160618790657?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

Now here is another interesting bit, there are several feedbacks for this item from this seller, stating that everything was as it should be.  And the listing says that they’re 100% tested and working.  So now I have to wonder, is it the chips, or is it my programmer???

TinyBASIC 2.5g Patch 01 to be released

Thanks to Travis Hall, another bug has been discovered.  This time concerning the ‘CTRL-O’ functionality.  The good news, it wasn’t my fault.  Unfortunately neither Dr. Wang or Roger Rauskolb had the foresight for the commonality of SRAM over DRAM.  Nor SRAM’s uncanny ability to start up with garbage in memory.  So, we had to add a single line of code into the INIT routine so that an initial value is written to the OCSW switch.  The code, as it should be written is below:

INIT:
LD (OCSW),A          ;SET INITIAL VALUE FOR SWITCH
LD D,03H                  ;3X LINE FEEDS

You can patch your code if you’d like, but I will be uploading a patched version once I get a chance to sit down and update the website to include a downloads page.  Until then, plug this code in, and recompile.

Please continue to report any bugs that you may find.  Future users will appreciate it.

5v to 3.3v Logic Level Shifting Made Simple

When I first started playing around with electronics I was like the other 90% of people to do so.  I started by playing around with micro controllers and other simple items.  And while I had no idea what I was really doing for a long time, there was one thing I learned very early on.  And that is that level shifting is not only often a requirement, but is often confusing to the beginner.

Often a beginner needs to create a 3.3v signal from a 5v signal.  Ok, so you use a voltage divider.  No problem.  But what if you need to create a 5v signal from a 3.3v signal?  Well, then you get dozens of homebrewed circuits often times taking 2-4 resistors, a diode or more, or maybe transistors to invert logic.  It gets confusing.  And for someone needing to learn the basics, that is not a good thing.

Even after I had learned a lot about electronics I still struggled with what the best way to convert between voltage levels was.  90% of what I needed to do was based on 3.3v and 5v logic.  So I knew that I could narrow down my requirements to being simple, requiring very few components, and being easy to understand.  And that is when I discovered the 74LS07 IC.

The 74LS07 is an Open Collector Buffer.  Meaning that the buffer’s output has two logic levels.  And that is not 1 and 0.  No, instead it is High-Z or 0.  Meaning that it’s out put is either high impedance (meaning not connected to anything), or it is equal to ground.  What that means is that we can use a pull-up resistor to tie the output to whatever level it is that we want within the specifications of the part.  See the truth table here:

Great, so we can easily convert to 3.3v from 5v, but we still have to convert from 5v to 3.3v!  Well, that is taken care of in this design as well.  You see, the inputs on the LS07 accept input levels as low as 2v!!!  Thats right 2v inputs are able to activate the output!!!  Check out the recommended specs, here:

So that means that we can reverse the design to create a 3.3v signal from a 5v signal.  See the examples below.

Now, how does this work?  Well take a look at Texas Instrument’s Official circuit for each of the 6 buffers in a 74LS07.

Let me guess, if you’re a beginner you don’t understand what is going on, right?  Well, lets simplify this for you (keep in mind, this is just to give you an idea of what is essentially happening).

You see, a PNP transistor such as this would only “turn on” when the input is not receiving any current.  So, we can think of this for demonstration purposes as 0v.  And we can think of it as 5v when the transistor is “turned off”.  So when the input is at 5v, the out put is Hi-Z (or left floating if you will).  When the input is at 0v, the output shorts to ground through the transistor making the output 0v.

So by using a pullup resistor to bring the output to the desired output, we have now crafted a level shifter.  And per the datasheet, we can have output voltages as high as 30v!  I’m not sure what the maximum input voltage level is, as it is outside of what my needs are.  And I’m too lazy to look at the datasheet.  But I’m guessing it is a little above VCC at the minimum.

The simple use of this one IC and a few resistors completely takes care of most peoples needs for logic shifting!

But why use this rather than voltage dividers and the diode circuits?  Well, that is an easy question to answer.  Most of those circuits are SLOW.  And by that I mean that the rise and falling edges of the signal may work for some applications when they will not even come close to others.  Not to mention they can become inefficient and consume quite a bit of current.  But since this circuit is purpose built, the power consumption is lowered. And with the use of low value resistors we can increase the spead of the rise time of the signal (the falling edge speed is essentially TTL speed).

That means we have a circuit that uses less power, is faster, and uses less parts than the other options.  Sounds like a win/win to me.

Non-Retro Topic of the Day – LED Flame Bulbs

Not really anything of interest to the Retro Enthusiast.  But something I found pretty interesting.

The video concerns LED Bulbs that produce a flame effect.  There is a tear down of the bulb contained in the video.  It’s a good watch.

If you’re interested in these, here is a link to one on eBay:  LED  Flame Bulb.

 

The Quest for More

Prototyping has begun.  Working up a standard for using an SD Card is the end goal.  But not just that.  I actually have some other plans for a “project” to go along side the SD card.  Not something that will be added to the overall computer.  Rather something that will just be a fun project FOR the computer.

But to do this, I need more I/O.  A lot more.  Because of this I decided to add another 8255 PIO and a z80 PIO.  The latter for it’s Mode 3 operation which will come in very handy with the SD card.  Also, since we will be doing file handling routines, it might make sense to have a RTC so that we can determine the the current time.  I had several ICM7170s on hand, and with the addition of a watch crystal and a coin cell, I should be able to rig it to work.

Progress is still a little slow due to work, but updates will be posted regularly.   As progress is made, that is.

Also, changes have been made to the Product Pages for the G80-S computer to reflect some needed information.  And a download page for the software will be added shortly.  I ask that if any bugs are discovered that they be reported, and I will issue a patched version.

Do you have a project that you used the G80-S or the TinyBASIC 2.5g software for?  Shoot me an email.  I’d like to get a picture, and possibly do a write up about your project.  Better yet, shoot a video, and I’ll add it to the blog crediting you! (With your permission of course).

Got a Website centered around vintage technology, software, or other hardware projects?  Shoot me an email, with your website address.   I’ll add it to an upcoming “Links” page.

Studying for Mass Storage…

Now that TB 2.5g and G-DOS 0.50b are finalized and out there in the wild, it’s time to turn our focus to Mass Storage.  That’s right, we need to be able to add, remove, modify, and use files contained in some type of file system.  The type of file system may be up for debate.  But regardless of what we decide to do with this computer, we need a way to access binary files, BASIC programs, etc.

So the two main types of file systems of interest to us would be FAT or a CP/M file structure.  Considering that this computer only has 32k of RAM, that dissolves any idea of using CP/M without major modifications.  That’s another project for another day.  FAT on the other hand has several advantages.  Firstly, it is readily readable by a modern PC.  Which means that we should be able to write and transfer files between this computer and a PC with ease.  Secondly, it is highly documented.

Knowing this I set out to learn everything that I could about the hardware side of the SD format.  First thing I discovered is that there are two protocols for communicating with an SD card.  The first is SPI, a pretty straight forward protocol similar to what one would use with Serial Shift Registers. The second is SDIO, which is completely undocumented.  Knowing this I knew that I would be using SPI.  So I would need the following pins: Clock, MISO, MOSI, and Chip Select.  That is in addition to the 3.3v supply voltage.  Speaking of 3.3v, i would also need to level shift from 5v to 3.3v and vice versa.  Luckily I recently ordered 74LS07 Open Collector Buffers, so this is no problem.

But how would I drive these pins?  Well, that is when I began thinking about the onboard 8255 PIO.  Obviously it has plenty of pins…but I wanted to use that for general purpose I/0…  And besides, I do not want to dedicate one whole port to just one input pin!  But wait!  If I were to add a z80 PIO I could use it in Mode 3, or I/O mode!  That means I can specify in software whether a pin is input or output!  Fantastic, I have the hardware figured out.  Now onto the SD SPI Protocol.

And that is where I am at now.  Reading in the plethora of information available on the web, which doesn’t really give me much information about the hardware side (like do I write one byte, then read a byte? Or how do I specify where I want to read data from?).  That is until I found the resources below.  And while I am still trying to crawl through the information, I am taking many notes along the way.

If you’re interested in this type of stuff, I suggest giving it at least a once over.  You’ll probably learn something that is of no real use to you outside of this hobby.

https://www.compuphase.com/mbr_fat.htm

Simple FAT and SD Tutorial Part 1

Simple FAT and SD Tutorial Part 2

Simple FAT and SD Tutorial Part 3

Simple FAT and SD Tutorial Part 4

G-80S Update: G-DOS v0.50b Released

It’s here!  TinyBASIC v2.5g hit the Web late last night.  Today, it’s the G80-S Monitor v0.50b.  The link to the download is below.  Several changes were made to simplify use of this software.  As well as the TinyBASIC being updated to v2.5g.

If you find any bugs, please let me know.  Enjoy!

G80S_v0_50b