New Breadboard 8088 PC V2 #6 Serial Port Hardware

New Breadboard 8088 PC V2 #6 Serial Port Hardware

Show Video

welcome to breadboarding in the previous video we managed to get our breadboard computer with an Intel 888 processor working with the seven segment LED display here and the Ada fruit Neo key keypad we managed to get the nanoc comp 888 monitor version 6 up and running and this video which is video 6 in the breadboard PC 888 version two we're going to be adding the serial Port Hardware so this is the next step in our version two high level plan to build out the nanocom 888 computer and this is a simple computer with the LED display keypad and the Monitor and the final part in this is adding the serial Port so we can download and upload programs to memory and in this video we're going to be covering the hardware side of the serial port in particular adding a 16550 compatible uart or a universal asynchronous receiver transmitter is what uart stands for now the number 12 there refers to the video number in the original breadboard PC playlist and if you look at the top right hand corner of the screen here there will be a link to video 12 in that series what I'm also going to be covering in this video is how to use a modern surface mount chip and how to solder the surface mount chip onto a breadboard compatible adapter so now just going to go into some background about the serial Port Hardware on the original PC and subsequent PC such as a PCA T and then 3860 is onwards now in the original nanoc comp I just used the Motorola 6850 uart which I had used in the earlier project and that was primarily because all of the software and the monitor would still work with that but now's come the time that we want to really switch to use a PC compatible serial controller now the original PC used a national semiconductor 8250 URS Now intel did a similar chip the 8251 but because it didn't have a board rate generator so you couldn't actually by registers configure what speed the serial Port was going to run at then IBM didn't want to use the 8251 so they went with the 8250 now there were some limitations to this it was limited to about 9600 board so that's about 1 kilobyte per second it used a 1.8 mahz clock and the PC bios generally assumes this frequency so unless you use dedicated drivers under dos certainly then generally your speed will assume it's a 1.8 MHz clock and this chip had eight registers plus two device a latch least significant bite and most significant bite and the way how you access that you needed to set the devis a latch bit in the LCR register bit 7 so there's effectively 10 registers although it only takes up eight address lines and this is just a sample of one of the uh the chips so it's a 40 pin dip chip then the PCA used a slightly later version of this it avoided some of the limitations of the original ship it's a 16450 u to allow speeds up to 38.4 Kobo but it was Backward Compatible with the 8250 registers and the later PCS used the 16550 uart now this was a more sophisticated chip although early versions did have a few problems but it had a first in first out 16 by buffer now the problem with the earlier chips is that the CPU had to process every single character and that limited the speed of which it could run at whereas this basically would allow the serial controller to handle the data 16 bytes at the time and the CPU would only have to access the uart once every 16 characters now this allow speed to up to 115,000 board and potentially higher with higher clock speeds and we still backwardly compatible with the 8250 registers but the first in first out config was actually done by writing to the interrupt identification register and in the original 8250 the I register was read only so by writing to this you're able to enable Bit Zero to enable the faster first in first out buffer and this is the chip that we'll be using uh it's a surface mount chip this is a Texas instrument chip and it has the label on here pa550 di it's not particularly easy to see so here's a block diagram showing where we got up to previously with the 7 segment keypad port and all the supporting logic and then we did the monitor so that we could make use of this now what I've done now is we're going to add the com1 serial Port so we're going to be using the port range which the original PC expects to find this on and we're going to make use of one of the ranges in the address decoder that we've already got pre-allocated we need to include a few extra rules so I'll be adding a an IO address decoder as well to do some of the lower bits that need to be configured here now I'm going to be using a PC USB serial cable going into a USB to serial adapter so these ft232 RLS are things I've used in all the previous projects they're typically a couple of pounds for a USB serial converter and we'll be using the standard 1.8 MHz clock that will allow us if we just divide by 16 then that will allow up to 115 kilobits per second I'm probably going to set this at 9600 board just because that should be okay to use with MS DOS so we're going to be using this Texas instrument tl1 16c 550 dipt uart so that's a bit of a mouthful and if I just show you the reason why I using this one I could have tried to get some chips off of eBay so that you could get some of these chips in 40 pin packages off eBay but I was trying to do in this video is use modern chips ones that you can still buy so this is one that I got from Mouser about £370 which is quite a bit cheaper than what you can buy these equivalent chips in the 40 pin dip form off of eBay and it's also in the lqfp 48 pin package so the lowprofile quad flat package I think is the terms that that stands for and it's pretty small the uh the pin dimensions are pretty small and the spacing is only something like 0.5 mm the standard dip chips have a 0.1 in

spacing so that's something like 2.5 mm so these pins are 5 times closer together than you would have in a dip chip I've included as part of this video some recordings I did of soldering this surface mount lqfp 48 pin package onto a 48 pin dip converter so it'll take that will probably take about 15 minutes so if you don't want to see that you should be able to go to the chapters down the bottom of the video here if you click on the chapters you'll then get uh all of the sections on the right hand side and you can skip over the soldering bit if you don't want to to see that there are quite a few videos out there showing you how to do this and I just recorded as I did it the first time I've already done one of these large packages it's quite tricky to do but I was able to test that all of the pins were connected properly so this modern chip is compatible with the original 8250 uh again it has register selects for the eight or 10 with the devis latch registers and we're also using the I read iite to access both the data port and the various control registers as I said on the previous slide to switch it into the first in first out 16 by buffer mode then it requires additional software now later versions of Windows would do that but you actually had to have the appropriate drivers for Doss to actually use the buffer Doo and the clock divider can anywhere be anywhere between 1 and 64k although we'll probably be using 12 which I think will give us about 9600 board so there's no need for us to use a sort of rs232 compatible outputs here since we're going to be using this ftdi compatible serial adapter then this works at 5 volts anyway so we don't need to include the chips for doing the plus or minus 12 volts which is what the original rs232 interfaces needed so if you wanted to use a Serial Mouse for example then we may need to do that but we're not going to be using a Serial Mouse during this project so it's not really important and this will be accessible through a virtual comp port on the PC using the appropriate driver and this is the mapping that I've used in the previous videos the ft232rl has a number of pins now these pins here are in fact on the end connector however the last pin here is in fact request to send and the connector actually includes DTR so we do need to uh wire up the full sort of dip pins for this particular converter to get access to the request to send used DTR then the hardware hand shaking won't work and then the mapping to the 16c 550 then request to send goes to clear to send clear to send goes to request to send because we've got two types of data terminal equipment so because both these bits of equipment are acting like a terminal rather than a modem and so we need to include the sort of crossover so the transmit goes to the serial in and the receive goes to serial out and vice versa I'm just going to show you the video of the soldering the chip onto the Ada fruit 48 pin dip adapter so if you don't want to see all of that then just use the chapters at the bottom here to skip over that and when we come back what we'll do is look at the schematic and lay out the breadboards and start building it now the only problem with these chips is if we uh just have a look at this they come in this packaging and they are incredibly small so we just zoom in and even with the zoom it's still still pretty small so what I have invested in is a digital microscope so this microscope here is a 4K microscope is about uh £50 in total from Amazon with the stand as well I did get it with the basic stand originally but the trouble is you can't vary the height uh enough to do that now I was going to I've got some of these adapters here so this is a tqfp uh adapter to up to 100 pins but the only trouble with that is because it's 48 pins and you're only using half the pins and it's really quite big but Ada fruit have these adapters here and these are in stock at p in the UK so I've bought a couple of these and these have got the tqfp on one side sorry and the qf then on the other side I've probably got the uh probably got those acronyms wrong earlier on and so what I'm going to do is I'm going to put it under the microscope and we'll probably need to tape it in place to be able to to do this now in order to attach the very very small chip it's quite delicate going to need some tweezers this is the first large one of these chips I've done so this might be a disaster got plenty of flux so this is uh clean water washable uh flux paste I don't have any liquid flux at this point in time so we're going to be using lots of flux and most of the videos I've seen on doing this you basically need to make sure we probably tinned the layer first so there's enough solder on it probably just tag one corner or two corners of the chip with solder first and then we'll use the relatively wide soldering arm bit to do solder across multiple hins at a time and then if necessary we'll use the solder braid to mop up any Bridges and things but that seems to be from the various videos I've seen probably one of the best ways of doing this I certainly don't have any uh heat plates or ovens or anything like that or any stencils for doing this sort of the proper way but from the videos I've seen this approach should work so let's take a look under the microscope this is the microscope view zoomed right out and you can see that these are the tweezers here if I just pick up one of the chips and I'll try and maneuver it in place we can just see just how small these things are and how easy it is to bend the pins if we're not careful so I'll just place this approximately here just to start with and the PRS needed just to adjust the lighting here we had some light coming from the side there we go so we can see the text on there and we can see that pin one is in fact at the top here and you can see that the it's not very clear here but the pins aren't quite lined up at the moment so what I'm going to do first of all is to Tin these connectors here first it doesn't look like they've actually got any solder on them at the moment so going to Tin those first and then once we've done that we're just going to try and tag probably one pin on one side and perhaps one pin on the other side and then see whether or not we can then uh get this to be mounted properly so just put this back for the moment and I'm going to heat up soldering iron first going to put some flux paste on the pads first of all at least we can wash this off afterwards we don't need any alcohol or anything like that okay so we've got quite a bit of flux on there now you'll see the soering iron tip is not the smallest tip I've got I do have a much smaller pointed one but from what I've seen is it's probably easier to get more heat on it to get the uh solder to melt rather than having a very fine point and the technique of Bridging the solder across here and then mopping it up with desoldering braid seems to be the way that uh people recommend for doing this if you're doing it manually so solders melting on solder on so now try and melt some some solder on the okay we seem to have sold on most of that bit there seems to be okay there we'll just try the next one okay so he seem to been able to Tin the ads okay there I'm just trying the chip and lift the chip into place pin one at the top there oh First Time Lucky so you almost managed to get in exactly the right place there I'm just going to do is to try and touch one corner with the solary on just to see if we can get it to uh stick after several minutes of messing around and I think I've just about got it in the right place so we just need to try and Heat this from one corner without actually touching the fortunately these pins are very very short in fact so it's quite difficult to get in without actually touching the chip itself or flux so the bottom down there is a little bit messy but we're going to put some more flux on the top here and then we're just going to go for the putting lots of solder on or putting more solder on up there and see whether or not it flows and then we hopefully be able to tidy the bottom up in a minute so just going to go over the top pins here okay seems reasonably clean and the pins on the other side are still look like they're okay so we're just going to do the same for this other side just need to put a bit of braid down the bottom there because it is Bridging the bottom there okay I think we managed to do that so we're just going to have a little bit of a look at all the joints I think the ones on the top there need a bit of uh yes the ones on the top there are we need a little bit of braid up here as well there we go so I'm just going to clean it up and uh we'll come back once I've cleaned it up and see whether we can check all of the joints to see if they're okay A little bit of a solder Bridge down the bot I've just rotated it to get easier access to it a little sold bridge at the bottom here that we just need to clean up a little so put some more flux on there there's just a little bit left there so I'll just use a bit of there we go so that's looking reasonable there yep that's okay just rotate this so there might be another one down the bottom there it's okay so we'll just rotate it again have a look at the next lot might be one in the middle there we go that cleared that bit away that one looks okay okay as well not a simple process and the the getting the lighting right is uh quite tricky if I put too much light on then it makes it difficult to see so in fact with the minimal light it actually it's bit easy to see so I'm just going to clean this up and what I'm going to do is to check the continuity between each of the pins if the resistance between some of the pins is very very low then uh I might still have a bridge there but it looks like for my first surface mount chip of any significant size then it looks like that has stuck it down but we'll guess we'll see when we try and use this in its first circuit for the serial Port okay so I've checked that I've washed it this is water soluble paste flux and I've also checked that all of the continuity between each of the adjacent pins so there are no shorts between pins check the voltage on multimeter it uses about 1.7 volts to test it so that shouldn't actually cause any damage to the chip so that appears to be okay so all we need to do now is to put in the rest of the dip pins so we've uh get rid of the I do have a spare just in case I uh manage to fry that one so we can get rid of can get rid of those and so this is one of the older breadboards I use with the uh testing so this one doesn't matter so much if I uh fry some of the leads so what I'm going to do is to plug this in here to solder these on probably just need a little bit more space there we go this should make us a a nice 48 pin tqfp to uh dip and this will allow us to use use this serial uart chip on the breadboard PC so I'm going to do is to put some flux on that and then I'll solder it and we come back we can see whether or not we can actually use this in a circuit that's all of the pin soldered so what I'm going to do then is to use the continuity tester to test each of these pins here to with a probe pointing to the individual pins on there just to make sure everything's okay and if everything's okay then then we should be good to go so I finished my lqfp 48 pin low profile quad flat package connector so this is it here and I was just checking to see that the current monitor is working so you can see this is nanoc comp 8088 version 6 monit monor and I thought when we look at the schematic we'll see that this serial Port is going to go with things like the floppy disc controller IDE controller and the PS2 keyboard mouse interface but I thought I'd uh attach it to this one to start with because I haven't got all those boards set up so what I'm going to do now is just have a look at the schematic to work out what we need to set up and then I'll just talk through what the changes we're going to make to this board the main thing is that this is currently working so you can inspect memory and all that sort of stuff so that's the main thing I wanted to check so here's the redw PC version 2 schematic so it's cleaned up a lot from the version one I still got a bit of work to do on the CGI controller down here just a few simplifications and to do some other changes I've been planning so what we've got here is the bus rails here so this is our stripboard bus rails where we've got all the various things so the data bus address bus control bus chip enable bus that has a number of the chip enables for the main address Rio and RAM and ROM things like that and then also the interrupts as well now this board here is going to have most of the external IO so we'll have the hard dis floppy disc PS2 keyboard and mouse and also the serial Port but in order to get the serial Port up and running to start building all this what I'm going to do is to actually just do a fairly simple version of this so we're going to have the serial Port the USB to serial adapter to connect the PC the Crystal and there's an IO Port decoder down here that we need so rather than wiring up all the things like the data bus buffers and things like that what I'm going to do is just to put this one this one this one and this one on one breadboard will wire it all up and you'll see that there's very few signals connecting the one down here up to here so there's a couple of the buffer address lines and the serial chip select about the only things that go up there and then when we come to rebuild this board then I will put it apart and uh and rewire it so if we have a look first of all at at the io decoder the io decoder makes use of these two IO lines that we have coming from the main address decoder and the advantage of having this IO range in the the the zero range and the 300 range is that we don't actually have to include all of the higher address lines every time we're wanting to do some decoding but we do need to include the lower eight address lines here to do some more of the decoding now although we've got all the various things for the keyboard Floy disc controller for the IDE interface we're not going to use those for moment we're only really interested in the serial one here so we going to look at the rules for configuring that and then this is also buffering the a 0 A1 and A2 address lines and these are used both for the ID controller and also for our serial Port this is the USB to PC serial adapter so this is like an ft232 based chip and we won't actually be using many of the pins we're only going to use the ground we're not going to connect the 5 Vols 3.3 volts because the power is going to be provided by the PC to this chip and then we're just going to have the transmit connected to the serial in serial out is connected to receive and then we've also got clear to send to request to send and request to send to clear to send so these are the sort of CR crossovers that we need our crystal is just going to be feeding in the Xin we're not going to have the X Out connected this is only if we were using Crystal rather than one of these oscillators these oscillators I find a lot more reliable then we've got the chip select from the io decoders coming in here we've also got the address lines now we're not going to be using the interrup for the moment because we haven't set up the interrup controller and the software in the nanocom monitor just pulls the status registers so it doesn't need interrupts then we're going to need to hook up the data bus here and what I'm going to do is just to hook the data bus into the input to the keypad and LED display CU that's got a data bus feed right at the top end of the card in the right place and what we're going to need to do is to just go through and set all of these various jumpers and things so the there are a lot of pins on here and there's multiple selects so you can see that the read enable there's a positive read enable and a negative one we've also got for the right enabl a positive one and also negative one so we need to jump some of these things to either ground or 5 Vols in some cases if you look at the data sheet for this there are various diagrams showing how to wire things up so you'll see here for example the read 2 right two and ads are tied low the chip select tied high for example and it also shows the board out and the r clock connected and obviously in this case there is a crystal but we've got an now oscillator going straight in here so the data sheet includes some various layouts and things for doing this we also need to hook up res set to the master reset there as well and we'll be using the io read IO right for the read and write active low signals so let's just have a look at the plld rules first of all for our IOD decoder here so this is in fact IO decoder 2 because the io decoder one will be over on the right hand side where all of the timers and the interrup controls and things are and you'll see here that we've got the lower eight address lines we're feeding in the io 3xx and io0 xx and if you remember when we did the main decoder here but in fact these ranges you can see the io0 XX is the 0000 to FF 300 to3 FF 400 4 FF so this these two signals here just mean we don't need to include all of these higher address lines in all of the decoding that we need for these things here and so the only one we're really interested in at the moment is the serial Port one chip select that's going to be the 300 range from 3 f8 to 3ff in fact 3fe 3 FF and the rules down here that we showed in the pre with the previous decoder shows that we just need to say address range 3 f8 to 3 FF and also the io 3xx so that will be sufficient to actually generate the rules and you also see that we're just feeding the a0 to A2 out and they're just using these for buffers so one of the rules really for adding in cards on the original PC is that no card should put more than two TTL loads on the bus so as long as we can keep to two TTL loads or less then we would necessarily need to add buffering but in the case of these IO external IO we're going to be using quite a lot of the a A1 and A2 are going to be used in a number of places so we are going to buffer those so p is here we'll just compile it turn the project view off and compile it compilation successful we'll just check the doc file I didn't do this in the previous video and I burn got burned when I missed out on a mistake so you can see that the syntax that we use for the field and the the field mapping has actually decoded all of these so we can see here that we've got the io3 and we want all the higher lines there set to one and then the a z one and two and then a decoded by the chip itself I can see here we've got the address field is the only thing with zero the pin everything else is mapped so we haven't got any mistakes and we'll just check that the layout down the bottom there looks correct as well that looks okay so good so you can see this is our 48 way dip adapter for this chip it's very difficult to actually see the chip closeup because the pins are so close and this is the chip label I've got for this so I will be uh gluing this on at some point in time during this process now I'll just turn off the power for the moment we know that it was working now what I'm going to do here is I'm going to join this on to the rest of the board mainly because we've got the data buses actually coming in here and we do have a few of the other signals that we might want uh coming in as well we may need to add a few more coming in there we'll certainly need to add the address bus need to add the a0 to A7 address bus coming in here as well and the data bus is going to go in over here what I'm going to do is to wire the data bus going to protrude a couple of pins over here and I'll just be able to wire those pins around to there so we've also got this is one of the ft232 of devices so this is a generic USB serial converter to just plug the USB cable in there to the PC this will actually be powered from the PC so I'm not going to connect the 5 volts up onto the board here will just be the ground and this is actually going to fit in the end here however I do do want to replace the current power rail there I've got a three-way one here so I'll put that in there and this will take out this one and this will replace this one and we'll just clip all that lot in and then I'm just going to go through and wire it all up so I've got the plld there the clock there the uart there and we've also got the USB serial converter so that's going to go in there once we've got the power connector in there we'll just fit that in so go off and wire that up and when we come back I'll zoom into this particular board so we can actually get a close-up of it so I'll speed it up and commentate over it when we come back we should then be in a position to sort the software out and to update the monitor with version 7 so that we can actually use the serial Port okay so just going to take the bread bull buddy out there and clip the board together and put the Power up there put the three-way bread W buddy in there I just put in the USB serial connector again now we're just going to do the ground lines and tying the various unused inputs to ground and to 5 volts just going in there with the 5 Vol and ground lines there so where there are multiple re speed and right pins for example will disable the ones which not active low but in the power there at the top and we've just wired in the data bus as well so now we're going to wire in the serial one chip select from the IOP there now we've got the oscillator output the 1.8 MHz coming out of there

into the crystalin now we just need to connect the board out and the receive clock together now we're going to wire in the three pins at the top there of the connector which aren't directly connected to the data pins that one's been wired into D5 then we're doing D6 and D7 there and that will be wired into the seven segment display board which already has the data bus we seral out to the receive and the serial in to the transmit and the CTS goes the request to send so clear to send request to send and request to send to clear to send that's wiring in the request to send from the art around to the USB serial converter then we've got the serial in through the transmit and the serial out to the receive now we're going to wire in the address lines that's a z we'll put in A2 next just because it makes it easier to put the A1 going over the top there now we need to hook in some of the other control signals now we're not using inup for the moment but the io read and IO right and the set need to be connected and also the a0 to A7 we're just going to plug in the io read and IO right the reset that's all wired up so these are the io read and iite that's going off to the bus and this is a0 to A7 that's going off to the bus and this data bus here just needs to go over to the other side over here so I'm just going to connect this up hopefully mean that's all wide in and so I've completed installing the hardware so I'm going to break the video there now since we're up over half an hour especially with the soldering part of the video and the next video we're going to be looking at updating the software side to support the loading and saving using the new pc compatible uart and that'll be using the motorer S record format which is a text format to store binary files that the tools that we're using for this also support and that allow us to build our basic floppy disc PC with a text mode CGA controller bios floppy disc controller and being able to boot Ms Doss from floppy dis and then that's a step on to adding an IDE dis controller with IDE dis and then booting Ms Doss from hard disk adding all the graphics modes to the CGA video controller add a mouse and then we should be able to run Windows 1 2 and three as we did in the first series of the breadboard PC so if you don't want to miss out on future videos then please hit subscribe and if you found the content interesting please hit like it just helps to make the videos available to more people thanks for watching

2025-03-24 12:03

Show Video

Other news

Rob Emsley, Dell Technologies | Is Your IT Infrastructure Ready for the Age of AI? 2025-04-13 02:35
Opening Keynote: The new way to cloud 2025-04-10 23:19
The Big Business of Drilling Deep Into the Earth | Bloomberg Primer 2025-04-05 13:26