Unveiling my second project

  • I use the remaining D flip flop from the '74 responsible of halving the clock plus an additional '74 to use those inputs. It was a bit annoying to have that thing making loud tones without control. :D

    It's all under control now.:thumbup:

    I have heard some reduction on volume randomly... noise? I imagine that the amount of wiring to make it work is introducing it.

    Did you use the DAC08 ? They are a bit hard to master. Pullups or pulldowns are needed to make the H/L transition fast and reliable. The 74LS273 should be good for the input stage but there may be a situation where for a very short amount of time the 74LS273 is latched while the data-bus is not ready. As the DAC08 has a <100ns (>10mhz) setting time, even short digital blips can result in a recognizable reduction in output-voltage.


    As i said earlier: I like the TLC7226 Quad-DAC with MCU-Interface because it is easy to use and has a small decoder integrated :) it has a "slow" 5us setting time (200khz) which is more than good enough for audio. This may filter some of the potential blips in a computer system.


    -Jonas

  • Did you use the DAC08 ? They are a bit hard to master. Pullups or pulldowns are needed to make the H/L transition fast and reliable. The 74LS273 should be good for the input stage but there may be a situation where for a very short amount of time the 74LS273 is latched while the data-bus is not ready. As the DAC08 has a <100ns (>10mhz) setting time, even short digital blips can result in a recognizable reduction in output-voltage.


    As i said earlier: I like the TLC7226 Quad-DAC with MCU-Interface because it is easy to use and has a small decoder integrated :) it has a "slow" 5us setting time (200khz) which is more than good enough for audio. This may filter some of the potential blips in a computer system.


    -Jonas

    I still have no envelope generator, the output is similar to the one present in the original IBM PC; I have done only half the job. Prior to decide what I'm going to use I'd like to consolidate what I learnt from this frankenstein-monster-like board. Some parts of the design aren't useful and some even cause trouble. For instance I hardwired the port, I think I also wired it wrong and decoded to another, used one (floppy?). I must rewire every one of my prototypes from this batch as a result. In a Harting-96 connector it doesn't look that good. I also have a daughterboard containing the patch made... Had I known a little more back in September/October, this first batch would have been completely different. Only if I had placed a DIP switch there... :wand:



    The sound card is the top one, that one with a yellow LED. I had to install it because I couldn't introduce my probe there and needed to check if the tested channel was active.


    I have some DAC08, but I'd like to try other options, including that other one you propose (in preference over the former), before heading for a final design.


    Thank you very much,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • Don't beat yourself over the small stuff ;)

    You are going in the right direction by taken small steps to design one portion of the system at a time. You have proven your concept by accessing it over the intended system bus and you have even programmed some sequences.


    The important thing now is to document your results and possible problems you have spotted. Make a version numbering system to be able to identify reoccurring problems.

    ...


    Just some things I have spotted in your earlier design (schematics you have posted):

    -Your decoding circuit is overly complicated. Try to simplify circuits and reduce the needed components. Every component can be a point of failure and introduces more latency.

    - Try to use common parts, even if they result in unused logic circuits. the 4-bit register for example sets all 3 gates at the same time. setting a gate may have influence on another gate.

    - If you have no shortage of addresses, use them for switching of settings... Like a write to address #4 switches gate1 off and a read switches it on (you use 4 addresses on the ls138 for the gates anyway).


    could you post your current design/layout?


    -Jonas

  • I'm finishing the schematics of the current version (board nº 2), changes on the design were made on the fly and written in paper. Following, the board nº1, which is the minimal test.





    Red spots on the component side are the points where the daughterboard was soldered. As it was reused to patch board nº2 it is not in attached there anymore. On the pictures, the traces cannot be seen, but they can be easily spotted when working on the board. The white coating was chosen because I can use then my permanent markers on it to signal where I should solder a wire.


    Its current status will be made public in a while, while I gather the notes and modify the schematics.

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • I'm finishing the schematics of the current version (board nº 2), changes on the design were made on the fly and written in paper. Following, the board nº1, which is the minimal test.


    Red spots on the component side are the points where the daughterboard was soldered. As it was reused to patch board nº2 it is not in attached there anymore. On the pictures, the traces cannot be seen, but they can be easily spotted when working on the board. The white coating was chosen because I can use then my permanent markers on it to signal where I should solder a wire.


    Its current status will be made public in a while, while I gather the notes and modify the schematics.

    If you make a new revision of the card you could maybe add a prototyping area?

    What kind of bus are you using? Is it a common 96pin bus like the ECB?

    Are there any clock signals on the bus, that may be used to synchronise the address-decoding and may be used to replace the crystal?


    -Jonas

  • That's how things were left yesterday, with no change today, for board nº2.



    If you make a new revision of the card you could maybe add a prototyping area?

    What kind of bus are you using? Is it a common 96pin bus like the ECB?

    Are there any clock signals on the bus, that may be used to synchronise the address-decoding and may be used to replace the crystal?


    -Jonas


    Yes, I was thinking in adding a prototyping area to every available zone after optimizing this a little. I'm Using SKS's MC80 bus, present in the SKS KISS, Alphatronic P1, P2 (except P2L), P3, P4, P30, P40, HELL DS2038, DS2069.


    There is, according to docs, a clock signal of 3MHz but every peripheral card that requires clock uses its own crystal. I was thinking in keeping the current crystal but drop the D flip flop and allow the PIT to run twice the frequency for more precision.


    Regards,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • I revised the schematics for a new version of the board.


    The highest 5 bits of the port are not hardcoded anymore (farewell rewiring!), removed both '74 from the design, a single ic is used to control the channel's output. The DAC has been added, it's a 7226, as suggested. I also introduced the mixer between channels (which is also the speaker driver, was present in the patch board) and what I think would generate the audio signal using the output from the PIT and from the DAC (using transistors as switches).


    I revised the decoding logic, I know it's not elegant, but I haven't found a way to build it with less than three ICs (current design uses only two). It's not causing any trouble at this point, so I think it will be maintained.


    P2 - Shakuhachi Mk. III.pdf


    Regards,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

    Einmal editiert, zuletzt von jlopez ()

  • You don't have to decode A0 and A1 in this manner.


    The DAC and PIT can be accessed by decoding the A2 and A3 using a 74LS139. Further 4 addresses can be decoded by using the 2nd 2to4 decoder on the 139.


    Yo will need a lot of DACs for controlling analog circuits. You can use the additional (4 address wide) select lines for another DAC or another PIT for future development. You gain another 3 single byte wide addresses (sel2, sel3 and sel4) to use in the future.


    VSS on the TLC7226 should be 0V (negative voltage!) for a simple 0-5V range.

    VDD may be 12V (VDD should be bigger than the ref. voltage. But you can go with 5V)

    The VSS can be set to -5V if the analog subsystem needs negative control voltages.


    The range would be -5V to +5V:

    0-127=-5V to GND

    128-255= GND to +5V


    +5V for the reference may be generated from a 78L05 and -5V from a 79L05 from the +12V/-12V supply. This will reduce potential digital noise on the DAC (may be overkill).


    The decoder could look something like this:

  • :grübel: What about this?


    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • :grübel: What about this?


    You have 2x 2to4 decoders per 74ls139 IC. Why do you need all the other logic?


    ....

    EDIT:

    I think I know now what you want to do... you want to integrate 2 cards into one?

    Let's leave the 2nd PIT and DAC for later... just concentrate on a basic design for 1 PIT first.


    You don't have to loose the fourth DAC-output. It may be good to have separate voice (like noise) and the DAC will allow the control of that voice...


    digital noise:



    -Jonas

  • You have 2x 2to4 decoders per 74ls139 IC. Why do you need all the other logic?

    Using only the 2:4 decoders dring the issue that the DAC will always be selected when the mixer control register is selected. The nor circuits cuts the 4 bit range into 3 ports to the DAC and one for the register.


    I think I know now what you want to do... you want to integrate 2 cards into one?

    Only if IC count is low, it's not prioritary at this point. You proposed to use -A3, which increments range to 16 ports and that's why I tried to match. I would have preferred to use an 8 port range instead.


    You don't have to loose the fourth DAC-output. It may be good to have separate voice (like noise) and the DAC will allow the control of that voice...


    digital noise:

    I was thinking on adding noise, and that's the reason of choosing a 6-bit register instead of a 4-bit one to control the PIT's output.


    Thank you for the VCA circuit. I have no idea about audio, this is proving very interesting and useful. I'm learning a lot.


    Regards,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • You have 2x 2to4 decoders per 74ls139 IC. Why do you need all the other logic?

    Using only the 2:4 decoders dring the issue that the DAC will always be selected when the mixer control register is selected. The nor circuits cuts the 4 bit range into 3 ports to the DAC and one for the register.


    It is no problem if the DAC is selected as well, when the MIX-register is selected. The D-output of the day will just have a small voltage present. I have tested this and there is no problem with the circuit. Just leave the D-output open if you have the the mix-register on the same port.


    You don't really need the gate-inputs on the PIT for muting the sound. The DACs will make the sound inaudible when they are on 0V (value of 0x00h). The whole mix circuit is nice and all, but not really needed if you use the DACs. You will have to write a byte anyways if you want a single channel to be muted...


    -Jonas

  • It is no problem if the DAC is selected as well, when the MIX-register is selected. The D-output of the day will just have a small voltage present. I have tested this and there is no problem with the circuit. Just leave the D-output open if you have the the mix-register on the same port.


    You don't really need the gate-inputs on the PIT for muting the sound. The DACs will make the sound inaudible when they are on 0V (value of 0x00h). The whole mix circuit is nice and all, but not really needed if you use the DACs. You will have to write a byte anyways if you want a single channel to be muted...


    -Jonas

    Dropping the mixer control, then. Having two 4-bit ranges simplifies logic, being from the same length means that they could be selected using a single 2:4 decoder from the '139. :thumbup:

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • Is this better? P2 - Shakuhachi Mk. III.pdf


    I have never worked with opamps before. Searching for docs that seems to be configured as a non-inverting amplifier, right?

    Is there any recommended value for gain?


    Thank you again,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • The digital side looks good as far as i can see.


    On the analog side:

    Each output may need its own capacitor and OPAMP. You have to try this out. You should add jumpers at the junctions of the output circuit to be able to change the output circuit without many modifications later.


    Analog stuff is kinda evil and may need many revisions until it works like you want it to work. As you want to add additional analog circuitry in the future, it may be most helpful to move the analog part of the card onto a separate board. If you have a functioning digital part and all the respective outputs are working, you will have to experiment on the analog side.

    Making a full board for each iteration might be too expensive. (ignore the red circles...)

  • I'm glad that I haven't scrapped the first prototype (the one which couldn't stop playing). I have some prototyping boards, like the one used for the patch.


    After the revision , the components for a single-pit board is of 6 ICs (74 series and PIT). Being an eurocard-sized board i'm sure that once the VCA is tested it would fit without issues.


    Thank you again, for your help and your patience. :)

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol:

  • Greetings and sorry for the long wait.


    There were incidents at home that left me without the mood to continue in projects. Recently I have made some progress.


    Sometime ago I found some breadboards in a junk pile. They are tattered, two of them a bit melted and one lacks a row of contacts. Still, I found them to be reliable when used, I later saved some money and bought more of them and wires and have started prototyping as I should have from the beginning. It was expensive for my current budget but I was tired of not having a proper tool set. And so, I resumed development.


    My experiments with sound were halted in february and since then I learned much more. Still, I had preference on digital over analog electronics and as a result the first complex circuits I made with my new tools are digital.


    I compared what I had done whith one of the most common systems with sound (NES) and found my developing to be far behind. And so I challenged myself to get the closest I could. I think that, with the exception of the DCPM channel, I got near.


    I first built the noise generator. It consists of a 17-bit LFSR: Noise Test


    Then I made the pulse wave generator with variable duty cycle: Pulse Test (Failure)

    This circuit was inspired by the Hellschreiber as I was wondering how would its characters sound. Then I realized if the character ROM was replaced by another circuit whose function was creating a single character, I could easily implement the variable duty cycle. The character is exactly this one:


    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 1

    0 0 0 0 0 0 1 1

    0 0 0 0 0 1 1 1

    0 0 0 0 1 1 1 1

    0 0 0 1 1 1 1 1

    0 0 1 1 1 1 1 1

    0 1 1 1 1 1 1 1


    Then I resorted to video circuits, especially the one found in early PETs and the SKS KISS. The resulting circuit was designed by stripping them down. Still, it was a failure. Somehow it produced an awful noise when it shouldn't. After debugging it was found the only 74LS166 shift register I had was defective by failing to output high but it worked fine when outputing low. I patched the circuit with a 10k resistor from the 5v supply pin to the output and worked. Still, the circuit was so sensible that every time I approached my hand it started to generate noise: Pulse Test (Fixed)


    Finally, the sawtooth/triangle section. It just needed a synchronous counter, an XOR ic and some logic to control the invert operation. This means that with simple logic I could generate three different tones. And three tones is what I got. Unfortunately, I'm unable to discern an inverted sawtooth from a non-inverted one: Sawtooth-Triangle Test


    On the analog side, I found some operational amplifiers in my father's stocks of components and started to test them. I start to realize they aren't as complex as I thought and, whith some time may even domesticate them just a little.


    Regards,

    Jaume

    When I tried to list all retro systems I have at home, the "The message is too long, must be under 500 characters" error appears! :lol: