News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_crayzyian

Help Required with Cheetah Amdrum

Started by crayzyian, 14:17, 23 April 20

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gerald

#25
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.

RetroCPC

#26
Quote from: gerald on 16: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 (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!

Bryce

#27
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.

RetroCPC

#28
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 :)

VintageAdvantage

#29
Quote from: RetroCPC on 19:35, 22 May 20Sorry 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. 

RetroCPC

#30
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...

VintageAdvantage

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.

RetroCPC

#32
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!  :)

Bryce

#33
Quote from: RetroCPC on 19: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 :)

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.

RetroCPC

#34
Quote from: Bryce on 09:30, 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 :)

Bryce

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.

GUNHED

Quote from: RetroCPC on 03:41, 21 May 20
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 (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

RetroCPC

Quote from: crayzyian on 14:03, 24 April 20
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 :)

RetroCPC

#38
Quote from: GUNHED on 13:25, 24 May 20

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...

VintageAdvantage

#39
Quote from: RetroCPC on 08:49, 25 May 20

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...


Sure why not! Always good to try things DIY - it's a hobby!


From an audio perspective, look at all that stuff on LambdaSpeak 3. He has the SP0 connected to an audio opamp that mixes, has done something different from the reference design. The filter is different. Seems he played with the values to get the best audio quality possible from the SP0. And the Amdrum is emulated with the microcontroller. Not a real DAC. But also fed into the decent opamp for mixing. Guess that sounds even better than the original. There is a lot of expensive stuff on the LambdaSpeak 3 board. Don't think he made a lot of bucks from making it. Components on the board are too expensive. Cannot see how to make a better sounding device than that with the SP0256. Good luck in trying!


You think you can get the DAC? Or use a resistor ladder *oh sorry the CPC community calls a resistor ladder DAC the DIGI BLASTER*

Bryce

Quote from: VintageAdvantage on 18:36, 25 May 20

Sure why not! Always good to try things DIY - it's a hobby!


From an audio perspective, look at all that stuff on LambdaSpeak 3. He has the SP0 connected to an audio opamp that mixes, has done something different from the reference design. The filter is different. Seems he played with the values to get the best audio quality possible from the SP0. And the Amdrum is emulated with the microcontroller. Not a real DAC. But also fed into the decent opamp for mixing. Guess that sounds even better than the original. There is a lot of expensive stuff on the LambdaSpeak 3 board. Don't think he made a lot of bucks from making it. Components on the board are too expensive. Cannot see how to make a better sounding device than that with the SP0256. Good luck in trying!


You think you can get the DAC? Or use a resistor ladder *oh sorry the CPC community calls a resistor ladder DAC the DIGI BLASTER*

Why are you talking about yourself in the third person? That's a bit weird, to put it mildly.


Bryce.

VintageAdvantage

All in all, I like the idea of a new DKtronics with Amdrum. With SP0256-AL and no MCU for Amdrum. But it has to be affordable!
And this is where it gets complicated with the SP0256. It is not.

RetroCPC

#42
Quote from: VintageAdvantage on 18:36, 25 May 20
You think you can get the DAC? Or use a resistor ladder *oh sorry the CPC community calls a resistor ladder DAC the DIGI BLASTER*

Forget pricing on the SP0256, I've seen the ZN428E offered for over US$100!

Yes, I'll design a nice little Ladder DAC Array - 8bits should not be too challenging :)

GUNHED

That has been already been done. It's called Digiblaster.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

crayzyian

Quote from: RetroCPC on 08:40, 25 May 20

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 :)



In short - I'm not sure.  I now recall when I was a young whipper-snapper I changed the supplied phono/RCA (mono) output to a male 3.5mm jack to plug in to my parents stereo (via the microphone input) to get sound.  This could be the problem.  Therefore I need to switch back to the phono output supplied and test again!


However your offer is an attractive one - also I'd be happy to assist with your experiments.  Let me see how I go and I'll come back to you.
Crayzyian

RetroCPC

#45
Ian,

"whipper-snapper" - congers up all sorts of possible evil misdeeds! :D

Glad you got it working, I seem to recall many years ago how impressed I was with such a simple device :) but maybe everything is relative :)

Be great to measure real hardware once your done - in exchange I could send you a 2020 respin "IF" a new PCB see's the light of day :)

Powered by SMFPacks Menu Editor Mod