Author Topic: Help Required with Cheetah Amdrum  (Read 848 times)

0 Members and 1 Guest are viewing this topic.

Offline gerald

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.467
  • Liked: 1021
  • Likes Given: 257
Re: Help Required with Cheetah Amdrum
« Reply #25 on: 18:53, 22 May 20 »
The 137 latches its 3 bit input, not the output. So only one ROM would ever be selected if the ROM selection register was never set by FW.
Also, all 137 output are high unless A14 is high (0x4000-0x8FFF or 0xC000-0xFFFF), and actual ROM read is enabled by GA generated ROMEN (0x0000-0x3FFF or 0xC000-0xFFFF).
Since the FW is located at 0x0000, and sets the upperROM quite early in the reset sequence there is no risk of clash with any upper ROM.

Reasons for the pull up ? Reminiscence of old habit to help original 74xx logic going high. Since the schematic uses a 74HCT, there is no need for them.
« Last Edit: 18:59, 22 May 20 by gerald »

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #26 on: 19:01, 22 May 20 »
The 137 latches its 3 bit input, not the output. So only one ROM would ever be selected if the ROM selection register was never set by FW.
Also, all 137 output are high unless A14 is high (0x8000 to 0xFFFF), and actual ROM read is enabled by GA generated ROMEN (0x0000-0x3FFF or 0x8000-0x7FFF).
Since the FW is located at 0x0000, and sets the upperROM quite early in the reset sequence there is no risk of clash with any upper ROM.

Reasons for the pull up ? Reminiscence of old habit to help original 74xx logic going high. Since the schematic uses a 74HCT, there is no need for them.


Gerald :)


After posting I noticed the HC137 internal schematic and was in the process of editing my post - but something came up and a I scrubbed the edit... Here's a snippet of that edit... so we are both thinking along the same lines... :)

"EDIT:-

You got me thinking about power up condition, BUS contention being a very real potential problem - Looking more closely at the internal schematic of the HCT137 and the designers where clever enough to insure defined output levels by the logic state of E1n & E2 and not by the random power-on state of the HC137 internal latches... (the Latches output paths are "Gated" by simple logic - the undefined latch state is thus irreverent).

Address line A14 which is connected E2 on the HC137 needs to be High...." etc...


Agreed about not needing the pull-ups on the HCT outputs - Thankfully I've not used LS logic for many MANY years!
« Last Edit: 19:18, 22 May 20 by RetroCPC »

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.517
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4109
  • Likes Given: 428
Re: Help Required with Cheetah Amdrum
« Reply #27 on: 20:24, 22 May 20 »
It doesn't matter whether they are low impedance or not. The states are non-defined at startup, without the resistors, there's a pretty good chance that one of the ROMs will have a /CE tied low and it will mess up the chances of the Z80 reading the correct ROM. If you don't believe me, build the circuit without the resistors and let me know how often the CPC boots normally.

There are more logical (less resistors) solutions to solve the issue, but the creator chose this one. Resistors on the LE/G lines or even the inputs may have been a better solution.
One other point that Gerald reminded me of: Back then (when I actually designed this type of stuff for a living) it was generally accepted that you should never let one TTL ouput power several TTL inputs (due to current consumption). It may be "old school thinking" that they said " The ouput needs to source both the AND gate and the EPROM /CE so we add pull-ups to supply the required current".


Bryce.
 
« Last Edit: 20:28, 22 May 20 by Bryce »

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #28 on: 21:35, 22 May 20 »
Bryce,


Please consider for a moment these operating conditions:-

The worst case internal resistance values for the standard HC / HCT logic families @ 5V operation is VOL = 25 Ω and VOH = 50 Ω.

(Page 11)   http://www.ti.com/lit/an/scla007a/scla007a.pdf

1. That for some reason an output on the 74HCT137 is in an Active Low state on Power-up (not good as an external ROM would be selected) , This Active Low state translates to an output impedance to Ground for the sake of argument of 50Ω (double the rated worst case).

HCT / HC Logic operating @ 5V supply rails with 2K2 pullup resistor being actively pulled Low via an effective 50 Ohms "logic" output impedance:-

Vout Low = 0.111V or 111mV

2. Logic Low Vout Without the 2K2 pull up will be practically 0V.

So by adding the 2K2 pull-ups we increase Vout logic "Low" from 0V to 0.111V... I think we can all agree that this worst case of 111mV " V Low" is still Logic Low within the eyes of all applicable logic family's (we are not talking about PCEL / LVDS here)!

The Outputs of the HCT137 can only be either Low or High, adding the pull-ups does nothing to resolve an unintended Power-on Low state condition, a 111mV increase in VOL as a result of adding the 2K2 resistors helps nobody apart form the Demons of the Green environment movement...

Maybe things where different with LS logic, but with HC / HCT logic (as used on the ROM board design)  the 2K2 pull up resistors gain us nothing but extra power dissipation and 111mV extra VOL (Voltage Output Low).

As commented earlier by Gerald and myself, the internal schematic of the 74HCT137 shows that the power on state of its outputs is determined E1n & E2p and NOT by the state of the internal Latches (unless the output from these latches is enabled by E1n & E2p).

E2p is connected to A14 - and as has also been explained by Gerald:-

"
all 137 output are high unless A14 is high (0x4000-0x8FFF or 0xC000-0xFFFF), and actual ROM read is enabled by GA generated ROMEN (0x0000-0x3FFF or 0xC000-0xFFFF).Since the FW is located at 0x0000, and sets the upperROM quite early in the reset sequence there is no risk of clash with any upper ROM."

Sorry I've taken this thread so far off-topic, I'll start an "Year 2020 re-designed" Speech Synth / Amdrum / ROM board thread... Also, I'll build the ROM expansion board and confirm the function of the pull-up resistors in hardware :)
« Last Edit: 08:15, 23 May 20 by RetroCPC »

Offline VintageAdvantage

  • CPC664
  • ***
  • Posts: 59
  • Country: us
  • Liked: 8
  • Likes Given: 12
Re: Help Required with Cheetah Amdrum
« Reply #29 on: 22:32, 22 May 20 »
Sorry I've taken this thread so far off-topic, I'll start an "Year 2020 re-designed" Speech Synth / Amdrum / ROM board thread... Also, I'll build the ROM expansion board and confirm the function of the pull-up resistors in hardware :)

I'd suggest to make this project a bit more compelling by putting all that old retro chip crap into an FPGA:
https://github.com/trcwm/Speech256

Btw the SP0256 is hard to come by for reasonable price these days.


I think we had a couple of speech synths already the last years including a new implementation of the DKtronics and Amdrum. 
« Last Edit: 05:04, 23 May 20 by VintageAdvantage »

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #30 on: 05:41, 23 May 20 »
This Project is primarily for myself - having some fun and take my mind of "Work"... If others are interested / benifit then great :)

I find that Re-looking at older tech with a fresh perspective is a great way to "re-open the mind"... think about different paths you would not normally consider...
« Last Edit: 08:18, 23 May 20 by RetroCPC »

Offline VintageAdvantage

  • CPC664
  • ***
  • Posts: 59
  • Country: us
  • Liked: 8
  • Likes Given: 12
Re: Help Required with Cheetah Amdrum
« Reply #31 on: 06:19, 23 May 20 »
Why do it just for yourself if others can also use it?
Having a new batch of DKtronics with SP0256 FPGA instead of the old chip and having Amdrum AT A REASONABLE PRICE (not more expensive than 50 $ unlike other speech synths we saw here!) would be very interesting to others.
Don't bother for the ROM. Any ROMBOARD will load the DKtronics ROM.

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #32 on: 07:58, 23 May 20 »
My Bad... What I wanted to say was in answer to your original question "Why" - because I just want too have some fun - within my own very limited capabilities :)

I'm not skilled in FPGA or even software (I'm just trying to learn C++ and coming from Basic and 8051 assembly language its a really REALLY steep learning curve).

I considered learning Python, its a higher language and almost Basic "like" - structured Basic that is... However, I need to work with MCU's, python is sill very much of an outliner in this area, so I had better "bite the bullet" and struggle on with C++ (REALLY very slowly).

My electronics talents are focused into a vary narrow field, but it could be fun to work with Retro computers which during my teenage years brought me a lot of fun... maybe I'm just romantically reminiscing :) Maybe I should just buy a Red Porsche convertible and be done with my apparent midlife crisis :D

Why - "for myself", but for sure its open for anyone to build - or if PCB's ever see the light of day, then I can build to "order" - this is never going to be about making money!!! that ship has sailed long ago :)

Talking about Retro "I just want to have fun...." was that not a song by Madonna or some such?

WRT the ROM board - true, others might already have them, but I dont!!! I currently don't even own a CPC - although a "Non Working CPC6128" is making its way to me from the UK care of EBay... Currently I only have a "poor mans" DK'tronics speech pack - the basic version without internal ROM, I intend to rectify this deficiency ASAP - the ROM, not the poverty!  :)
« Last Edit: 08:19, 23 May 20 by RetroCPC »

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.517
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4109
  • Likes Given: 428
Re: Help Required with Cheetah Amdrum
« Reply #33 on: 11:30, 23 May 20 »
Bryce,


Please consider for a moment these operating conditions:-

The worst case internal resistance values for the standard HC / HCT logic families @ 5V operation is VOL = 25 Ω and VOH = 50 Ω.

(Page 11)   http://www.ti.com/lit/an/scla007a/scla007a.pdf

1. That for some reason an output on the 74HCT137 is in an Active Low state on Power-up (not good as an external ROM would be selected) , This Active Low state translates to an output impedance to Ground for the sake of argument of 50Ω (double the rated worst case).

HCT / HC Logic operating @ 5V supply rails with 2K2 pullup resistor being actively pulled Low via an effective 50 Ohms "logic" output impedance:-

Vout Low = 0.111V or 111mV

2. Logic Low Vout Without the 2K2 pull up will be practically 0V.

So by adding the 2K2 pull-ups we increase Vout logic "Low" from 0V to 0.111V... I think we can all agree that this worst case of 111mV " V Low" is still Logic Low within the eyes of all applicable logic family's (we are not talking about PCEL / LVDS here)!

The Outputs of the HCT137 can only be either Low or High, adding the pull-ups does nothing to resolve an unintended Power-on Low state condition, a 111mV increase in VOL as a result of adding the 2K2 resistors helps nobody apart form the Demons of the Green environment movement...

Maybe things where different with LS logic, but with HC / HCT logic (as used on the ROM board design)  the 2K2 pull up resistors gain us nothing but extra power dissipation and 111mV extra VOL (Voltage Output Low).

As commented earlier by Gerald and myself, the internal schematic of the 74HCT137 shows that the power on state of its outputs is determined E1n & E2p and NOT by the state of the internal Latches (unless the output from these latches is enabled by E1n & E2p).

E2p is connected to A14 - and as has also been explained by Gerald:-

"
all 137 output are high unless A14 is high (0x4000-0x8FFF or 0xC000-0xFFFF), and actual ROM read is enabled by GA generated ROMEN (0x0000-0x3FFF or 0xC000-0xFFFF).Since the FW is located at 0x0000, and sets the upperROM quite early in the reset sequence there is no risk of clash with any upper ROM."

Sorry I've taken this thread so far off-topic, I'll start an "Year 2020 re-designed" Speech Synth / Amdrum / ROM board thread... Also, I'll build the ROM expansion board and confirm the function of the pull-up resistors in hardware :)

I accept everything you are saying, but... The values VOL and VOH you are speaking about refer to when the outputs are active. If you look at page No. 1 (page 7 of the pdf) that you linked to, it shows the actual internal circuitry in the CMOS chip. The ouput in this case is a pair complementary MOSFETs that can tie the output (with very low resistance) to either VCC or GND. But at start up it is possible that neither of these MOSFETs have switched on yet, hence the output is not yet tied to either GND or VCC. As soon as one of them is biased, yes, you will then have the VOL or VOH mentioned in the document. But before then the state is unknown. So although the chip isn't a tristate device, on startup the outputs can be High-Z.

This is the whole reason why computers have a reset delay circuitry, to allow all outputs to settle to their default state before the processor starts pulling/pushing data or addresses. The 74HCT137 has a propagation delay of 13ns after the voltage has risen to 5V. A typical PSU will take at least 10ns to rise to 5V, plus the time the capacitors need to charge, so in this case you could be looking at well over 20ns where the outputs are undefined. If the propagation of the EPROM is less than that, then the EPROM will have set it's outputs to something random for this time difference.

Eitherway, I suggest you build the circuit and try it out without the resistors. Add a longer flat cable between the CPC and the expansion and maybe some additional capacitance to the expansion (all possible if you had other expansions connected) and see what happens.


Bryce.
« Last Edit: 11:32, 23 May 20 by Bryce »

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #34 on: 13:03, 23 May 20 »
A typical PSU will take at least 10ns to rise to 5V, plus the time the capacitors need to charge, so in this case you could be looking at well over 20ns where the outputs are undefined.
I've never seen any PSU even remotely powerup within 10nS!!! if it where even possible (presuming zero PSU impedance) the Peak current requirements to charge up all the decoupling caps in the system to 5V in 10nS -20nS would be astronomical (Ignoring there internal ESR)!

Factoring a super ambitious 0.5 Ohm TOTAL PSU impedance (from PSU to IC)  its would take 120uS and 10Amps peak current to charge just the single 47uF PSU decoupling capacitor (99.2% charged) on the CPC464 mainboard to 5V. In realty the total PSU impedance is going to be much higher and the peak current capabilities of the PSU source much lower, so not a hope in hell to charge up the 5V PSU within 10nS!!!

During this powering up period the system is in Reset - I guess on the CPC the reset period must be in the order of 100's ms, and once the system is out of Reset A14 controls the output Enable pin on HCT137.

Before Reset is lifted, it does not matter to the system whats going - especially the first 10's of nS... in the first "10's of nS" nothings really happening as the power rails have hardly moved from zero.

No system would be stable having to worry about the first say 10nS 's of power-up!!! PSU rails take the order of 10's to 100's of milliseconds to stabilise. Thankfully in the good old days of "Single voltage rail" systems (such as the CPC) you dont need to worry about power rail sequencing like you do now (the 12V FDD rail is not important WRT system initialization)...

The goal is that Reset is lifted only once the PSU rails, BUS I/O and the Cloak have stabilized...

CMOS logic becomes functional / stable well before older LS TTL logic does during power-up - in fact, I suspect the designer might have intended this feature (as a design work around), hence the use of the 74HCT137 while the other IC's are 74LS TTL series logic which is more typical for the period .

A can appreciate the need for the pull-up resistors in TTL system - but not when using your typical actively driven CMOS...

But again, I've polluted this thread, so I will say no more on this Off topic subject :)
« Last Edit: 13:17, 23 May 20 by RetroCPC »

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.517
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4109
  • Likes Given: 428
Re: Help Required with Cheetah Amdrum
« Reply #35 on: 14:09, 23 May 20 »
I didn't mean the time needed for an entire PSU to ramp up from cold. I meant the rise time when the switch on the back of the CPC connects the 5V rail. This is only a few ns as the CPC only has one rather small electrolytic cap.

Anyway, as stated above, we can theorise all we want here. Build it and test it without the resistors and see what happens in reality. I have worked for more than 30 years in electronic design and real circuits rarely do exactly what the theory says. In fact one of our last projects had a race condition issue very similar to this despite the calculations saying it couldn't happen.


Bryce.

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 1.790
  • Country: de
  • Reincarnation of TFM
    • FutureOS - The quickest OS for the CPC and Plus
  • Liked: 785
  • Likes Given: 2040
Re: Help Required with Cheetah Amdrum
« Reply #36 on: Yesterday at 15:25 »
Be great a fun project to update the original design - improving its Audio performance maybe.

I've been toying with the idea of re-spinning SPO256 DKtronics Speech synthesizer - maybe combine it with the Amdrum... Only because its Retro :)

Maybe I'm being rather romantic in my old age, but computers where more fun back in the 80's...


That all has been done. And more. Look at the LambdaSpeak III project.
https://github.com/lambdamikel/LambdaSpeak

http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.08.07)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2019.08.14)

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #37 on: Today at 10:40 »
Good point - cleaning the connector is probably necessity given 35 years' use!


What do you recommend to use; is there anything that would benefit the connection?  Is their anything to avoid, bar the obvious things?!


Ian - Hopefully not to crazy...!

Did you get your Amdrum working?

If not I'd be happy to take a look at it for you - repair for free if needed...

Once I got it working I'd like to take some performance measurements to use as a comparison's to my respin of the Amdrum :)

Offline RetroCPC

  • CPC464
  • **
  • Posts: 21
  • Country: hk
  • Liked: 1
  • Likes Given: 3
Re: Help Required with Cheetah Amdrum
« Reply #38 on: Today at 10:49 »

That all has been done. And more. Look at the LambdaSpeak III project.
https://github.com/lambdamikel/LambdaSpeak


Interesting project :) , but its not what interests me - I'm interested in how far the audio performance of the 1980's technology can be pushed 35 years later...


To learn more about the SP0256's simple 7bit PWM modulator and the audio quality of 8bit PCM sampling (Amdrum) - just to "Refresh / Reset" my mind...

The engineering of these products is so "limited" - I'd like to know how far they can be improved while still retaining the SPO256 and Amdrums' 8bit sampling limitations... "Retro" but with a 2020 spin...
« Last Edit: Today at 10:55 by RetroCPC »