First off I'm a firm believer that everyone should have a logic probe in their toolkit since there so much you can do with it and while it's helped me tremendously over the years, when it comes to data signals or anything timing specific it has some limitations, this is when it's time to break out the oscilloscope.
Seeing as I finally purchased a new oscilloscope for my test bench, and it arrived on Friday, I figured I would test it out by looking at switch matrix signals; while there is tons of good information out there on how to troubleshoot the switch matrix, I figured why not toss out the visuals of how it works here on pinside as I know many of you will find it interesting and hopefully clarify some of the theory on how the matrix works.
The theory itself is pretty simple, any inactive row or column is going to be at a logic high; when its time for the computer to scan the switch matrix for closed switches, it enables each column one at a time by driving it low, while monitoring all eight rows; any closed switch in the active column will drive the entire row low for the duration of time that the column is active. In the following picture, you can see the column1 drive signal measured on J207-1. This signal is of a very short duration, about 30us and happens roughly 488 times a second...
Switch_Matrix_PRF_(resized).png
each column in the matrix is sequentially checked until all columns have been checked for closed switches. For some reason the frequency counter was showing less that 15HZ, not really sure why, I'll need to look into that.
WPC_Switch_Columns_(resized).png
For the test setup I used a WPC89 MPU, Pinitech.com matrix tester with the following switches turned on:
Row 1 switches in columns 1,2,3, and 4
Row 2 switches in columns 2 and 4
Row 3 switches in columns 1, 3, and 5
For those unfamiliar with the switch matrix tester, each of the eight red DIP switch banks is a separate column, and each switch in the bank is for a row in that column, this allows you to lock individual switches into specific states for testing.
Test_setup_(resized).jpg IMG_1746_(resized).JPG
The following images illustrates how row 1 was pulled low for the entire duration that columns 1 -4 were enabled since it contained an active switch in all four columns; rows 2 and 3 alternated states as only every other column in those two rows contained closed switches.
Hope you find this information useful in diagnosing those pesky matrix issues, and be sure to check out the information on pinwiki http://pinwiki.com/wiki/index.php?title=Williams_WPC#Switch_Matrix_Problems