Electronics > Projects, Designs, and Technical Stuff
AY-3-8910 - can't write odd values to its registers?
<< < (4/7) > >>
NivagSwerdna:
FWIW Here's a snippet of an old time Z80 and Sound Generator.  Nothing special required but maybe it will trigger some thoughts
nockieboy:

--- Quote from: radiolistener on February 27, 2019, 03:14:29 pm ---there is definitely something wrong with SN74F521, probably some input lines are incorrect.
Unfortunately it's not clean what you put on the input of SN74F521.

--- End quote ---

The IN_B_x inputs to the 521 are from a DIP switch block, with the lines pulled high through pull-ups or grounded if the switch is closed. They're all grounded except IN_B_2 to correspond to the 0x08-09 IO address space.


--- Quote from: radiolistener on February 27, 2019, 03:14:29 pm ---Try to check if D0 is connected to the input lines of SN74F521.

--- End quote ---

The 521 (and the address lines) are on one side of the PCB, the data lines are on the other - D0 doesn't go anywhere near the 521 or even the 7402 that generates the BDIR and BC1 signals.  :-//

nockieboy:

--- Quote from: SiliconWizard on February 27, 2019, 02:31:38 pm ---
--- Quote from: nockieboy on February 27, 2019, 01:01:27 pm ---I can't see how DQ0 (D0) would interfere with BDIR.  The BDIR line from the 7402 (where WR is NOR'd with the chip select) doesn't go anywhere near DQ0 on the PCB!  |O

--- End quote ---

Have you taken a look at the /(P=Q) signal from U4.1 when this happens?

--- End quote ---

Nooo.... sounds like a good idea, though.  Will make some alterations to the test setup (will have to use D0-D3 and the extra line to record /(P=Q)) and let you know.  :-/O

UPDATE:

Well, that doesn't make much sense but it gives me a couple more leads to check.  Thanks for the pointer, SiliconWizard - it turns out that /(P=Q) isn't going low for the write of the odd value.  It's not going low for the read afterwards either, which makes no sense to me, but I'll turn my attention to the 521 and its wiring now.



As you can see above, /(P=Q) (let's call it PSG_SELECT) goes LOW with the two even-value operations - the WR and RD.  But when I try to write an odd value, PSG_SELECT doesn't change at all...  :-BROKE
radiolistener:

--- Quote from: nockieboy on February 27, 2019, 04:18:10 pm ---The IN_B_x inputs to the 521 are from a DIP switch block, with the lines pulled high through pull-ups or grounded if the switch is closed. They're all grounded except IN_B_2 to correspond to the 0x08-09 IO address space.

--- End quote ---

are you sure, there is no mistake? Check connections between sn74f521 pins and Z80 A1-A8 pins with multimeter.
What is connected to ~OE line of sn74f521?

Does it take into account ~IORQ line from Z80?
nockieboy:

--- Quote from: radiolistener on February 27, 2019, 04:30:36 pm ---
--- Quote from: nockieboy on February 27, 2019, 04:18:10 pm ---The IN_B_x inputs to the 521 are from a DIP switch block, with the lines pulled high through pull-ups or grounded if the switch is closed. They're all grounded except IN_B_2 to correspond to the 0x08-09 IO address space.

--- End quote ---

are you sure, there is no mistake? Check connections between sn74f521 pins and Z80 A1-A8 pins with multimeter.
What is connected to ~OE line of sn74f521?

--- End quote ---

Here's the full schematic for the PSG:



The PCB is auto-routed, so unless I've bridged two lines somewhere with some horrendously inept soldering, I'm not expecting to find any problems with the lines, though I might have to start looking at them in more detail if I exclude all other possibilities.  ???
Navigation
Message Index
Next page
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod