News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

CPC464 keyboard problem

Started by ikonsgr, 22:21, 01 August 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

pelrun

The 74LS145 has open-collector outputs, which means it only drives low but requires a pullup to go high. If the pullup is too weak, then a row will stay low for too long after it has been deselected, which is exactly what you're seeing.

That's either because the AY3's pullups are not present or are atypically high resistance, or because the resistance through the keyboard is too high. Have you cleaned the connectors for the keyboard membrane?

Rabs

Quote from: ikonsgr on 16:11, 12 August 22
Quote from: Rabs on 16:04, 12 August 22Hi on one of the 464s I repaired with an odd keyboard problem, it turned out to be the ribbon connector on the pcb. Give it a good clean and then clean it again. Hope this helps.

 I already done that, but didn't help. I also tried a good cpc 6128 keyboard which gave me the same symptoms! I wonder if a bad LC line filter can cause such a weird behavior...  ::) 
Btw,i have removed a couple of these filters (i'm wating for replacements to solder them back), is there a chance an upsence of a line filter, could cause such weird problem?
Beyond my knowledge, I am afraid. Wish I could help. Looks like you have replaced almost everything except the PIO? Noticed a lot of posts keep going back to the joystick, maybe worth a look at tracing the connections to the connector and looking for a short? But I did follow the recommendations by Bryce in another post and he did reference the capacitors as a possible cause.

ikonsgr

#27
Quote from: pelrun on 16:37, 12 August 22The 74LS145 has open-collector outputs, which means it only drives low but requires a pullup to go high. If the pullup is too weak, then a row will stay low for too long after it has been deselected, which is exactly what you're seeing.
That's either because the AY3's pullups are not present or are atypically high resistance, or because the resistance through the keyboard is too high. Have you cleaned the connectors for the keyboard membrane?
Well, i don't know if this is exactly my case... You see, when i press a key, first i will get the corresponding character on screen, but imediately after, the character on same bit next line, will also appear on screen! This means that,for some reason, there is always an abnormal activation of line next to one correctly activated! Perhaps i should try placing network resistor on 74ls145 outputs?  ::)

ikonsgr

Quote from: Rabs on 16:43, 12 August 22But I did follow the recommendations by Bryce in another post and he did reference the capacitors as a possible cause.
Which capacitors you mean? The caramic 100nf on the side of 74ls145 and 8255? Btw, the 8255 I/O is also replaced too  :)

Rabs

Quote from: ikonsgr on 21:30, 12 August 22
Quote from: Rabs on 16:43, 12 August 22But I did follow the recommendations by Bryce in another post and he did reference the capacitors as a possible cause.
Which capacitors you mean? The caramic 100nf on the side of 74ls145 and 8255? Btw, the 8255 I/O is also replaced too  :)
Below is Bryce's recommendations to fault finding a keyboard problem, which I followed last time 

1 - Check what happens when you turn on the CPC with no keyboard attached.
2 - If the problem still occurs with the keyboard disconnected, swap the AY-3-8912.
3 - Check that there's no loose wire / screw or anything under the PCB that is causing a short circuit.
4 - Check the capacitors associated with the three ICs. These are the small brownish discs at the end of each IC:
     C128 for the 74LS145
     C124 for the AY-3-8912
     C119 for the 8255
     If any of these are chipped, broken or damaged, this could be the problem.
5 - If you still haven't found the problem, swap the 74LS145.

ikonsgr

Problem resolved! It was the "good old" input port pull up resistor problem for the AY chip, after all.... ::)
Although i used a AY-3 8912 which supposed to have internal pullups, for some reason it didn't work right on my CPC464. Only problem is that CPC464 board doesn't provide the placement for optional pull-up resistor network (like with CPC6128 board),so i had to solder it at the bottom of the board:

You cannot view this attachment.

Now, everything works ok! So it seems that replacement of 74LS145 and I/O 8255 chips was not needed, but the good think is that, i placed sockets for any future replacements needed...  :)
Thanks for your interest and help!  :)

ikonsgr

Btw, i'm really pissed with the insane prices of the AY-3 8912 (cheapest price is currently ~25euros/piece!!!), so i'm thinking of creating an adapter to be able to plug the much cheaper ay-3 8910 (i find it on ebay for ~3euros...)
Since this chip is relatively easy to be damaged (because of the direct connection to the joy port), i think it might be a good idea, what do youthink?

eto

Quote from: ikonsgr on 17:07, 13 August 22Btw, i'm really pissed with the insane prices of the AY-3 8912 (cheapest price is currently ~25euros/piece!!!), so i'm thinking of creating an adapter to be able to plug the much cheaper ay-3 8910 (i find it on ebay for ~3euros...)
Since this chip is relatively easy to be damaged (because of the direct connection to the joy port), i think it might be a good idea, what do youthink?
I thought the same today when I checked for prices. However the mainboards are quite different and we might need more than just a single version of an adapter.

ikonsgr

You mean the placement of the adapter board in order to fit under keyboard? I though so, but since this is for replacement only, you don't need to plug a 28pin socket and then plug the adapter board, but instead you can plug the adapter board directly on amstrad board and save height!  ;)  When i will finish it, i will give you a 3d photo of the board to see if it will fit n any cpc464 board

eto

Quote from: ikonsgr on 17:37, 13 August 22You mean the placement of the adapter board in order to fit under keyboard? I though so, but since this is for replacement only, you don't need to plug a 28pin socket and then plug the adapter board, but instead you can plug the adapter board directly on amstrad board and save height!  ;)  When i will finish it, i will give you a 3d photo of the board to see if it will fit n any cpc464 board
464, 664, 6128 and Plus ;-)

ikonsgr

Ok,this is how it would like:

You cannot view this attachment.

On the 40pin connector will be a socket, and on the 28pin connector, thin round pins like these i order to fit on socket or solder them directly on cpc464 board.

I'm also thinking of adding an 8pin connector to access the 2nd I/O port of 8910, and also a pullup resistor for the 1st port, in case it is needed  :)
What do you think?

Bryce

You just need to wait long enough for a good offer to turn up and grab them all. I got a lot of 20x AY-3 8912 for €6 per chip a few months ago. Unfortunately I fix a lot of stuff (other than CPC too) that use these so I probably only have 1 or 2 left over at this stage.

Bryce.

ikonsgr

Ok,i just finished the board!  :P

You cannot view this attachment.

Dimensions are roughly 5cmX3cm and i used interleave placement in order to save space. If anyone wants to give it a try, i can send him the gerber files!  ;)

TotO

Quote from: ikonsgr on 17:37, 13 August 22so i'm thinking of creating an adapter to be able to plug the much cheaper ay-3 8910 (i find it on ebay for ~3euros...)
Since this chip is relatively easy to be damaged (because of the direct connection to the joy port), i think it might be a good idea, what do youthink?
Nice idea. ;D
As I know, the pull-up resistors are embedded into the AY-3-8910.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

ikonsgr

Quote from: TotO on 18:53, 13 August 22As I know, the pull-up resistors are embedded into the AY-3-8910.
Well, same is for 8912, but unfortunately it didn't work with my CPC464 (still needed external pull-ups) , so it's better have it that too as an option, don't you think?  :)

TotO

I think that is not usual to have a faulty or weak RN into the IC, but sure, if you have the room for that...
That cost nothing to have the footprint.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

eto

Quote from: TotO on 18:53, 13 August 22As I know, the pull-up resistors are embedded into the AY-3-8910.
There is also a AY-3-8910A ;-)

eto


Quote from: eto on 20:57, 13 August 22
Quote from: TotO on 18:53, 13 August 22As I know, the pull-up resistors are embedded into the AY-3-8910.
There is also a AY-3-8910A ;-)
(quoting myself as I can no longer edit)

I tried to find data sheets for the A variant but I could only find them for non-A. But if the 8912A differs from the 8912 in the way, that it no longer has pull-ups, then that's probably also the case for the 8910A. Since we know, that you can order a 8912 and get a 8912a, this might also happen for a 8910, so having the option to easily add a pull-up is great.

btw: I found several forums/boards where people said that you can just swap an A for a non-A chip. Not a single one mentioned that you need the resistors. The only references of a pull-up lead back to the CPCwiki. This makes me think if that's a real thing. Has someone confirmed that there is no pull-up? Or is it just a CPC thing that an additional pull-up is required? 

Bryce

The pull up resistors are only important in the CPC because the 74LS145 is an open collector chip. If the AY was communicating with a chip with driven outputs the pull up resistors would not be an issue. This is probably the case for most other devices where the AY was used.

Bryce.

Powered by SMFPacks Menu Editor Mod