VOGONS


Help needed with the VLSI VL82C311 chipset

Topic actions

First post, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hello guys

I have a 286 motherboard ( CDTEK M218 ) featuring the VL82C311 chipset and the motherboard is not working. It looks good, ( no battery leakage ) so I said it will be a good candidate for repair. Measuring around I've seen that the processor clock frequency ( measured on pin 31 of the 80286 ) is 40 MHz which is wrong. The processor clock is featured by the VL82C311 chipset.
The datasheet can be downloaded from here:
https://www.target-earth.net/wiki/lib/exe/fet … hsc00060562.pdf
So the main quartz is connected to the TCLK2 ( pin 120 ) and the processor clock is connect to the CLK2 ( pin 37 ).
The main quartz is 40 MHz and the VL82C311 datasheet specifies that the quartz has to be double the processor speed, hence the CPU speed should be 20 MHz, so this controller should divide the main clock internally.

Reading the datasheet further I've found that the frequency should be set internally by the value of 2 bits of a register so it does not look like it can be influenced externally but maybe I'm missing something.

I'm suspecting the 82C311 being broken but why is it providing a clock frequency (even if it's a wrong one) on that pin though ?
It also provides another clock (SYSCLK ) on a different pin with a frequency of 14.78 MHz..or so, and that is also derived from the main clock combined with some other internal registries values, so something is working inside that CHIP.

Please let me know if you happen to know more about how these old controllers should work.
Thank you very much.

Reply 1 of 22, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

This is an early PC-Chips mainboard.

How did you measure the frequecy at the CPU?

Reply 2 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi Majestyk

I did use an oscilloscope.
Thank you very much.

Reply 3 of 22, by Roman555

User metadata
Rank Oldbie
Rank
Oldbie
unxaix wrote on 2022-12-21, 20:49:

Hello guys

I have a 286 motherboard ( CDTEK M218 ) featuring the VL82C311 chipset and the motherboard is not working. It looks good, ( no battery leakage ) so I said it will be a good candidate for repair.

Hi,
I don't know about those very old chipsets. Of course they are much simpler than modern ones though there may be nuances.
Have you already checked the soldering of chipsets ? Usually their pins can look very good but can have cold joins. A needle or a toothpick would be useful.

[ MS6168/PII-350/YMF754/98SE ]
[ 775i65G/E5500/9800Pro/Vortex2/ME ]

Reply 4 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
unxaix wrote on 2022-12-21, 20:49:

So the main quartz is connected to the TCLK2 ( pin 120 ) and the processor clock is connect to the CLK2 ( pin 37 ).
The main quartz is 40 MHz and the VL82C311 datasheet specifies that the quartz has to be double the processor speed, hence the CPU speed should be 20 MHz, so this controller should divide the main clock internally.

You miss one critical point of information: The 80286 CPU is supposed to be clocked at twice its clock frequency (that's why Intel calls the pin CLK2, not just CLK). So feeding a 20MHz 80286 with a 40MHz clock signal is the right thing to do. The divide-by-2 option in the chipset is likely meant for de-turbo operation.

Reply 5 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hey Mkarcher

WOW...thank you so much !
This is great information. So I have to start looking on a different direction. I got stuck believing the frequency is wrong.
I also checked the soldering as Roman555 suggested and everything is looking fine.
Thank you all for the valuable information and the willing to help.
I'll keep researching and update the thread.
Thanks again,
Happy Holidays !!

Reply 6 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
unxaix wrote on 2022-12-23, 13:35:

This is great information. So I have to start looking on a different direction.

If you want to make fixing old computers a hobby, get a ISA POST card. Be aware that there is a bad model on the market that just lurks around to destroy old PCs, though: Troubles between a PCI/ISA POST card and my Asus P55T2P4-C motherboard Note how this card (in the first post of that thread) only has a single chip on it. That's the bad model. The fourth card in that thread (with four chips) is a good model.

All AT-compatible BIOSes (that includes all typical PCs up to the advent of UEFI) indicate self test progress by writing values to a special I/O address. This value is displayed by the card. The first thing to observe is whether the card displays anything at all. If the interface between processor, chipset and BIOS works (even if the RAM is bad), you should get a display on that card.

If you are at a one-off project and don't want to invest into a POST card, the next best thing to do is: Remove all RAM and ISA cards from the board, but do connect a speaker. You expect some desparate beeps from the board when it can't properly access any RAM. The check for "beeps if nothing is installed" is nearly as reliable as the test for "do I get any POST codes at all". If you don't get a beep / no POST code, check

  • Does the processor get out of reset?
  • Does the BIOS chip get read requests? (/OE and /CE must not be high all the time after you push the reset button)
  • If you keep getting BIOS read requests for some time: Do you see all the low address lines toggle at the BIOS chips?

All those tests can be performed using a simple DMM. A pin that is stuck high usualy reads 4.5 to 5V. A pin that is stuck low reads 0 to 0.5V. Any voltage in-between usually indicates that there is activity on the pin. You don't need an oscilloscope for the most basic test.

Reply 7 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi Mkarcher

Thank you very much for your valuable information !
I did place an order for the ISA Post card based on your recommendation.
I had no intention on turning this into a hobby initially (I'm an 8 bit guy) but I've got several old 286 and 386 boards from somebody and managed to fix some which suffered from battery leakage but this one was different as the fault was not obvious and it got me intrigued 😀 .
I'll resume the debugging on Monday and keep the post updated.
Thank you very much again !

Reply 8 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hello guys

I managed to borrow an ISA Post card and I start digging again. The post card is showing nothing when powered on ( just the dashes ) . I also plugged in a speaker and what I get is series of 10 beeps with 2-3 seconds in between each series. Searching the web I found it is BIOS related so I removed it and ran some tests with a programmer like read it several times in a quick succession to see if it errors anything and also programmed a new one ( 27C512 ) but nothing.
I also checked all of the points above suggested by Mkarcher and everything is looking fine :
- Processor gets out of reset
- /OE and /CE are showing a pattern of low and highs
- I do see activity on the address and data lines using an oscilloscope
After digging more I found one interesting thing. The frequency of the ISA bus measured on pin B20 is 3.58 MHz which is very low compared with the normal 8MHz so following the traces I found that the pin is actually connected to one of the pins of the 82C311 named SYSCLK and the frequency of that pin is determined by the oscillator frequency connected on another pin named BUSOSC ( which in my case is coming from an 14. 318 MHz quartz ) plus the status of 2 other pins , PPICS and DKEN which combination ( zero or one ) will divide that 14.318 MHz by 2 or 4 or 6 or 8 . DKEN is not used and always LOW and PPICS is coming from another IC named 82C113 which is a combination of a real time clock, keyboard controller, etc. and this is the one I suspect being damaged as the BIOS address lines are also connected to it. PPICS is logic 1 and the 01 combination ( according to the datasheet ) will divide by 4 hence the 3.58 MHz I get. If zero ( 00 ) I would have got /2 division which would have been more close to the 8 MHz.
I will keep investigating but I'm almost sure that IC is the culprit as plugging in a keyboard also does nothing ( keyboard gets power but no LED is lit when pressing CAPS LOCK on NUM LOCK ) and the BIOS chip address lines are also coming from it.
Thank you very much again for all your help.
Happy Holidays and a Happy New Year !

Reply 9 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
unxaix wrote on 2022-12-31, 06:55:
The post card is showing nothing when powered on ( just the dashes ). […]
Show full quote

The post card is showing nothing when powered on ( just the dashes ).

[...]

I also plugged in a speaker and what I get is series of 10 beeps with 2-3 seconds in between each series. Searching the web I found it is BIOS related so I removed it and ran some tests with a programmer like read it several times in a quick succession to see if it errors anything and also programmed a new one ( 27C512 ) but nothing.

[...]

- Processor gets out of reset
- /OE and /CE are showing a pattern of low and highs
- I do see activity on the address and data lines using an oscilloscope

After digging more I found one interesting thing. The frequency of the ISA bus measured on pin B20 is 3.58 MHz which is very low compared with the normal 8MHz so following the traces I found that the pin is actually connected to one of the pins of the 82C311 named SYSCLK and the frequency of that pin is determined by the oscillator frequency connected on another pin named BUSOSC ( which in my case is coming from an 14. 318 MHz quartz ) plus the status of 2 other pins , PPICS and DKEN which combination ( zero or one ) will divide that 14.318 MHz by 2 or 4 or 6 or 8 .

There's actually a lot to learn from these symptoms, thanks for the detailed posting. I'm guessing your BIOS in an AMI BIOS. 10 beeps doesn't mean "BIOS ROM error", but "CMOS RAM error". In the IBM AT architecture, the CMOS RAM needs to work while the system is powered on. If the battery is flat, and the CMOS RAM looses information and time when powered off, it's not that bad, though. Most AT compatible computers work fine (or mostly fine) with a flat battery, as long as the chip keeps contents with external voltage applied. So this might indicate a defective CMOS RAM chip.

The next lesson to learn from your symptoms is that port 80 obviously writes don't reach the ISA bus, as you should get POST codes when you get far enough into the boot process to get beep error codes. Yet the beeping works, so I/O writes to port 61h get handled correctly.

With a look at the architecture of your board, we can determine that BIOS reads seem to work fine enough for the the beeping code to get executed (which doesn't necessarily mean that BIOS reads work perfectly, and if they don't, maybe the beeping code is only executed "accidentally"), port 61h responds (controls the speaker), port 70h/71h doesn't respond (RTC/CMOS) and port 80h also doesn't respond. Looking at the datasheets, port 61 is part of the 82C311 (the main SCAMP chip), whereas port 70h/71h is part of the 82C113 (the SCAMP support chip), and port 80h is located on the ISA bus. You don't need a lot for port 80h to work, but you do need valild ISA address lines and a valid ISA /IOW line. If ISA data lines are broken, you are still getting POST codes, but invalid ones.

ISA address lines (SA1-SA9) are generated by the 82C113, SA0 and /IOW are generated by the 82C311. As the CMOS RAM interface seems to fail, I guess the 82C113 isn't correctly processing ISA cycles, so the issue is between the 82C311 and the 82C113. On the other hand, the BIOS is supposed to get its addresses from the ISA address bus, too, so ISA address lines seem (mostly?) working. The first thing I would verify in this situation is the /IOW line from the 82C311 (which is able to process I/O cylces) to the 82C113 (which doesn't), and in the next step, the address lines between these two chips (maybe some address bits are "stuck high" that don't matter for executing the specific part of the BIOS that does the ten beeps).

Don't worry about the clocks at the moment. The 82C311 is software programmable, so the system might rise SYSCLK to a more sensible value during the POST. It's quite common to strap the chip into a "better safe than sorry" mode and set the intended bus clock when the initial checks are finished.

Reply 10 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi MKarcher

Happy New Year!
WOW, thank you so much for this amazing information ! I'm learning a lot from your posts.
This morning I checked the /IOW line which seem to be 5V all the time. The line is a direct connection between pin 149 of the 82C311 and pin 96 of the 82C113. It also goes to the pin B13 of the ISA slots which have a 10K pull-up resistor so that line is kept high till I'm guessing that 82C311 should bring it LOW when needed but this never seem to happen.
The address lines (A0 -A23) are direct connections between processor, 82C311 and 82C113 without any external latches, buffers or anything else so if any of it may be stuck high then it has to be the fault of either 82C311 or 82C113 ( I know for sure the processor is good ) .
I will keep investigating and update the thread.
Thank you very much.

Reply 11 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi

I also checked the address bus lines and none of it seem to be stuck high.
I also forgot to mention that the battery was removed by the previous owner ( before leaking ) but I think that should not be a reason for the motherboard not booting. Are there cases where a missing battery may cause a 286 motherboard not booting or posting codes at all ?
Thank you very much.

Reply 12 of 22, by Deunan

User metadata
Rank l33t
Rank
l33t

Can you make a photo of this mobo? Usually 286 mobos have a separate RTC chip but even if you have it integrated into 82C113 there might be a buffer chip between it and the rest of the chipset. This is because in the original design the RTC is on the ISA side of the bus, not a part of the mobo internal logic like interrupt/DMA controllers, etc.

Look for a 74ALS245 chip, usually near ISA slots, it might even be socketed. These chips sometimes die due to stress (not all ISA cards play nice, some have slow address resolving and cause long bus conflicts) and this typically takes out not only ISA (which would make the POST card not register any codes) but primarily CMOS and/or keyboard controller. It's worth looking into. Note that some early 286 BIOSes might not even generate POST codes to port 0x80 but I would assume a mobo with such integrated chipset would be using more modern BIOS.

Now, a completly dead '245 might also prevent PC speaker from working, and your does work, but usually it's just one of the 8 bits that goes weak (or dead). So it's not a sure way to know without testing the chip. And if nothing else helps you can try custom BIOS image with some low-level HW tests (you'll need an EPROM emulator chip or a bunch of actual EPROMs and UV eraser). If you don't know how to code such test in assembly I can be of assistance. This method is slow but it did help a few people with their mobos, it's certainly better then going in circles with a scope once you have no other ideas.

Reply 13 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi Deunan

Hehehe, I was just completing the replacing the 245 when I've seen your post 😀 . Yes, that IC is under the BIOS one ( not visible in the pictures from the link below ) and even if it seem to handle the 16 bit part of the things only ( its outputs are going to the 16 bit part of the ISA slot only), I said to go ahead and replace it as a last resort. The IC was 74HCT245 and I replaced it with an 74F245 ( the only one I had available ). Unfortunately, nothing changed.
This is an identical board with what I have:
https://www.worthpoint.com/worthopedia/vtg-no … -box-1845824120
The BIOS is AMI dated 1991 .
I do have a programmer, eraser and a lot of 27C512, 27C256,etc. UV EPROMs, but I don't know any source of custom BIOS images so please guide me on where to find it and how to work on it.
Thank you very much for your help.
Have a great day !

Reply 14 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi

I was able to find it here also :
https://theretroweb.com/motherboards/s/pcchips-m218
The only difference is that my board has SIPP RAM sockets while these are having SIMMs but the rest of the layout is exactly the same.
Thank you very much.

Later add :

I found a picture with the exact one I have on this link:
https://www.phantom.sannata.org/viewtopic.php?f=&t=19951

Thank you.

Reply 15 of 22, by Deunan

User metadata
Rank l33t
Rank
l33t

Cute little 286 mobo, but I don't see any external battery connector, or a clear CMOS jumper. BTW I assume you inspected the battery? Any signs of leakage and it needs to go (preferably it should be replaced even if looks good). Check the voltage, I don't see the usual diodes (since there isn't external connector) so possibly it's wired directly to the chip via a resistor and another one to provide charging. Or perhaps it's a non-rechargeable one, in which case it must not be dead. In a circuit like this if it's shorted or dead it might not be powering the part of the chipset that is responsible for CMOS. That would not only stop the RTC but might actually prevent the whole CMOS from working properly.

Here's also a super simple "BIOS" that only does 2 writes to the POST card and then hangs. If your BIOS image is only 32k then cut away the lower part of the file and program only upper 32k. Try it with POST card installed and see if you get any codes appear at all. BTW the F245 migt not work well as HCT245 replacement - depends on the card you will use. You want to replace that 245 either with bipolar (LS245 might not be able to drive the bus with many cards so ALS245 is needed) or HCT/ACT/AHCT one. The T is important, it means the chip will accept TTL signals, lower level than CMOS. I'm not sure now if F has the same level as ALS. Preferably put a socket in there, some mobos have sockets from factory so it's not such a weird idea. EDIT: Ignore that, I misunderstood "under the BIOS" 😀

Reply 16 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
unxaix wrote on 2023-01-02, 09:22:

This morning I checked the /IOW line which seem to be 5V all the time. The line is a direct connection between pin 149 of the 82C311 and pin 96 of the 82C113. It also goes to the pin B13 of the ISA slots which have a 10K pull-up resistor so that line is kept high till I'm guessing that 82C311 should bring it LOW when needed but this never seem to happen.

Your guess is about right. Under normal operating conditions, the '311 will drive /IOW, /IOR, /MEMW, /MEMR, /SMEMW and /SMEMR from the CPU bus interface signals. If the '311 recognizes an CPU I/O write cycle, it is supposed to pull /IOW low. We know that the '311 is able to recognize I/O write cycles, because the beeping you observe is performed using I/O write cycles that are handled inside the '311. The behaviour of your system is (as far as I understand at the moment) fully consistent with a missing ISA /IOW signal. The CMOS RAM is most likely the first component that gets check by the POST and is not part of the '311. So a non-functional ISA bus (I consider the CMOS in the the '311 to be "just on the ISA bus", which is most likely good enough) will fail at the CMOS check.

To be more specific: The 82C311 is meant to drive /IOW from the processor bus interface signals, but only while the processor owns the bus. If the datasheet is accurate about the implementation details, the source that decides whether /IOW is driven from the processor bus interface signals is HLDA ("Hold Acknowledge"). HLDA is an output signal from the CPU indicating that the CPU gave up ownership of the "frontside bus" due to an hold request. The datasheet says: If HLDA is high, /IOW is driven from the DMA controller integrated in the '311, and if HLDA is low, /IOW is driven from the CPU bus interface signals. The interesting information (which is not explicitly written, and thus guesswork): At no point the data sheet claims that '311 is only assigned to the DMA engine (or ISA bus masters, but let's skip that for the moment, as this detail is irrelevant for your issue) if the chipset requested a hold. In a properly working 286 system, the chipset will never receive a hold acknowledge unless it sent a hold request before, so not caring about the hold request state simplifies the bus interface logic without interfering normal operation. Your system is not properly working, though, and thus we need to validate whether HLDA works as intended: You should check whether the HLDA trace between the CPU and the '311 is broken. If that were the case, the TTL-type input in the '311 would read the open input as high and disable driving /IOW from the CPU signals.

Another possible cause for /IOW being stuck high is a short between /IOW and +5V. You can easily probe for that while the system is powered off. A short between /IOW and another signal is unlikely, as TTL logic is usually much more capable of pulling a signal low than pulling it high, so you should get a "nearly low" level on /IOW even if it were shorted to (for example) /IOR.

Reply 17 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hello guys

First of all , thank you so much for all your help on this !!
I have not had much time to investigate yesterday but I did check several things both MKarcher and Deunan suggested :
- the HLDA trace is fine . It goes from the CPU to both 83C311 and 82C113 ( I checked the connectivity between the IC pins, not the traces , just to make sure there is no cold joint ) . HLDA signal is LOW all the time.
- there is no short between the /IOW and the +5V ( there is a 10K pull up resistor which measures just fine ) . I tested both in OHM and continuity mode with a multimeter.
- since the initial battery was removed by the previous owner already, I plugged in an external battery ( external battery plug is on the right of the power connector together with the classic 2 transistors, resistor and diodes circuit). I did use a CR2032 battery and I measured 2.7 V at pin 80 of the 82C113 which should be enough to make the RTC work ( ...I guess 😀 ) . I just wanted to cover the possibility of a SCAMP CIP not working without RTC voltage as Deunan suggested. Unfortunately the result is the same ( no post codes and the same 10 beeps ).

Today I will try with the BIOS sent by Deunan but I'm not sure I understand what needs to be done.
The file is 1KB in size and my board is using an 27C512 EPROM ( 64K x 8 ) for the current BIOS. Do I have to write the 1K file in the upper 32K or should I start in the lower part ?

Thank you very much.

Later add:

I'm sorry, the file is 64K . I was looking at the compressed file size inside the archive and got me tricked 😀
I will write an EPROM and keep you posted.
Thank you.

Reply 18 of 22, by mkarcher

User metadata
Rank l33t
Rank
l33t
unxaix wrote on 2023-01-04, 06:52:

- the HLDA trace is fine . It goes from the CPU to both 83C311 and 82C113 ( I checked the connectivity between the IC pins, not the traces , just to make sure there is no cold joint ) . HLDA signal is LOW all the time.
- there is no short between the /IOW and the +5V ( there is a 10K pull up resistor which measures just fine ) . I tested both in OHM and continuity mode with a multimeter.

I'm afraid that I run out of ideas except for the 82c311 chip being broken. You seem to have established that

  • The 82C311 is able to recognize IO writes (wouldn't beep otherwise)
  • The 82C311 is in a state in which it should forward I/O writes to the ISA bus (HLDA is low)
  • The /IOW line is not forcefully pulled high by a short to VCC
  • So the 82C311 is supposed to assert /IOW, there are no reasons for it to be unable to assert /IOW, yet /IOW stays high all the time

The 82C311 is the only chip on your board that is supposed to drive /IOW. In an ISA system, /IOW can only be driven by the bus interface chip (in your case, that's the 82288-compatible logic integrated in the 82C311), the ISA DMA controller (in your case, that's the two 82C37A units integrated in the 82C311) and ISA bus masters (in your case, there are none).

Let's see what happens with the BIOS that just does some I/O writes to the POST card. If that BIOS does generate a display on the POST card, the issue is somehow more complicated.

Reply 19 of 22, by unxaix

User metadata
Rank Newbie
Rank
Newbie

Hi MKarcher

I tried with the new BIOS and no change. Nothing gets posted and no more beeps. I tried with both SIPP memory added and without.
The BIOS file is almost empty (only 13 bytes are written starting with address 65520) but I guess this is how it should be.
I am happy I could learn so much from you guys. It does not matter it couldn't be fixed, what's important for me is that I learned so many things which will help me debugging other motherboards in the future.
I will do a last attempt by measuring all discrete components on the board and if I won't be able to spot anything I'll store the board hoping that in the future I will be able to find another one with the same SCAMP ICs and try to swap.
Thank you very much again for all your help !
Have a great day !