Jump to content

MIDIBox AY (YM) V2


lemonhorse
 Share

Recommended Posts

Yup.. All microchip i'm afraid ;(

on closer examination there are 3 distinct groups here, with different styles of printing on the surface.

about half of them are White microchip logo AY38912/P9032CEA with centered print, and nearly half are with thinner print offset downward, and there is a used pair of AY38912/P9043CEA with a black (reversed) microchip logo.

They all came from an amstrad/oric/msx service rack..

So they could all be useless? LOL.. easy come, easy go!!!

I got my parts for the midibox AY2 today, but i don't think i will get to build it till January to test them.. unless there is a fast way to test You know of?

Link to comment
Share on other sites

Hi mrspring!

So they could all be useless?

No, in worst case there is no "noise" (pseudo random square wave output) but Tone ABC.

They all came from an amstrad/oric/msx service rack..

This is a good sign...

...unless there is a fast way to test You know of?

There is no such method of quick and easy noise testing as far as I know.

I was confused by this noise problem by my self. There was no difference or notice about the "no noise" issue in the AY38910A Datasheet from Microchip.

If You want want me to, I can do some testing. (I just did a AY/YM chip interchange with IGI - because he had the AY "no noise" type from Microchip.)

In the end is good for all MBAY builder to know which chips are acceptable. So I'm very interested in the results.

Edited by lemonhorse
Link to comment
Share on other sites

OK, well they are all quite old, they were sorted by intended model, these were for oric and amstrad.

I remember th oric DID have a noise generator, it had sound effects commands in it's basic, and one of them was EXPLODE (or something) which made

a whitenoise burst with some sub square mixed in for a nice rumble.. IDK, i may be wrong.

and the 2 'used' chips are actually newer then the unused ones, and definately different - they have no 'taiwan' mark on them, while the 30+ all do..

I also found 3 x YM2149F in the Atari ST section.. So they should be OK even if the others are duds..

OK for a test, PM me Your mailing address and i will send You 2 of the 8912 - 1 of each style/batch - for a test..

Link to comment
Share on other sites

I also found 3 x YM2149F in the Atari ST section.. So they should be OK even if the others are duds..

Year right.

:)

OK for a test, PM me Your mailing address and i will send You 2 of the 8912 - 1 of each style/batch - for a test..

Great. I will do.

Edited by lemonhorse
Link to comment
Share on other sites

  • 1 month later...

This is where we are at..

Shot of it's guts, with DIN and AY board mounted on the walls, Core 3 with external pots for the LCD, classic ebay cheapo LCD etc..

ay-1.jpg

here's the CS as of now.. yes, it's not very neatly drilled, but that's because i am not a neat person... the 12 buttons on the left have LEDs built in,

which seemed like a good idea, but the quality is poor, despite them costing nearly 3euro each - they sometimes trigger without touching them :(

ay-2.jpg

I now have a working system.. was stumped with no audio out, until i grounded the AY board, now it's full of win..

this is 2 'stock' voices testing - check out about 5 mins in for lol chipsound glitchtime..

http://mrspring.net/3/B14h27m53s31jan2012m.mp3

to do: bankstick, led matrix, second audio board & switching for stereo out..

Thanks to Lemonhorse for the PM guidance and the project, oh and Mike for the boards ;)

Link to comment
Share on other sites

  • 1 year later...

Hello lemonhorse,

 

I’m building this prototype. Right now I have a working setup mounted on a breadboard.

 

The link for the firmware version V2.1B (BUILD 20120109) is not working and the latest version available in the repository is the version V2.1 (BUILD 20111128).

Can you upload it again?

 

I notice that you have assembled the LEDs F1…F8, but other people don’t. What are their purpose? Should I assemble them?

 

Thanks for sharing this great work.

Link to comment
Share on other sites

Hi johnmx!

 

The Firmware Link is fixed now.

The F1-F8 LED will lit up when a function is available.

 

For instance:

@ Envelope Menu: all function-buttons (F1-F8) are available, so all LED's light up.

@ Volume Menu: just six LED's lit up.

 

More in detail here (Menu Shortcut Buttons): http://www.subfrequenz.net/midibox/mbayv2/MBAY2MenueLCD.pdf

 

Best regards,

- Lemonhorse

Link to comment
Share on other sites

When I press the “add noise†button, the respective LED lights up but the output sound doesn’t change. So I guess the noise generator of this IC doesn’t work.

 

I’m using the GI’s AY-3-8912A CBA produced on week 44 of 1984. This IC was removed from an old Timex TS2068.

You can see the picture

I thought that all IC’s from GI didn’t have any problem about the noise generator.

 

I spent more than 20 hours of work to assembly everything on a prototype board and now this f#%#$%# chip doesn’t work like it should :angry: :angry: :angry:

Edited by johnmx
Link to comment
Share on other sites

Hi johnmx,

this is sad, so I'll put the AY-3-8912A CBA GI on the "Chips with no Noise" List.

 

... Strange: according to the "TS2068 Technical Manual" the "Noise Generator" is enabled (Page 19, [2.1.6 Sound Generator]): http://www.1000bit.it/support/manuali/t2068/ts2068tm.pdf

Edited by lemonhorse
Link to comment
Share on other sites

Hi johnmx,

this is sad, so I'll put the AY-3-8912A CBA GI on the "Chips with no Noise" List.

 

... Strange: according to the "TS2068 Technical Manual" the "Noise Generator" is enabled (Page 19, [2.1.6 Sound Generator]): http://www.1000bit.it/support/manuali/t2068/ts2068tm.pdf

Hi lemonhorse,

 

This noise generator bug is very strange because I don’t find any info regarding it on the internet.

 

Well after reinstalling the chip in the Timex, I could confirm that the noise generator is working well. Please remove it from the black list :thumbsup:

So, the problem must be in the firmware. I’m going to debug the code.

Link to comment
Share on other sites

Hi lemonhorse,

 

I spent all day trying to figure out the problem but with no luck.
I found a couple of errors in the code that supposedly were the problem, but it didn’t solve the issue.
Both are in the function ‘LABEL_AY_SR_Write’:
    1- The bus control signals, BDIR and BC1, must change within 50 ns maximum.
        Setting both pins using the instruction ‘bsf’ (line 175 & 176) results in 100 ns which is the double of the maximum allowed.
        Solution:

            ;bsf AY_SR_LAT_BDIR, AY_SR_PIN_BDIR    ;; SET BDIR (AY Chip)
            ;bsf AY_SR_LAT_BC1, AY_SR_PIN_BC1    ;; SET BC1 (AY Chip)
            movlw 0x30
            iorwf LATC, F

        The same applies when resetting both control signals at the same time:

            ;bcf AY_SR_LAT_BDIR, AY_SR_PIN_BDIR    ;; CLEAR BDIR (AY Chip Control)
            ;bcf AY_SR_LAT_BC1, AY_SR_PIN_BC1    ;; CLEAR BC1  (AY Chip Control)
            movlw 0xCF
            andwf LATC, F

        Note: This solution doesn’t use the pin definitions!
    2- The minimum time in ‘Inactive State’ between writing the address and the data is not specified in the data sheet. The Timex computer uses a delay of 5.5 us and this program only a 100 ns delay (1 instruction cycle). This may lead to problems.
        One solution is to add some nop’s or simply set the control signals after updating the 74HC595 latch (don’t forget to keep the control signals stable for at least 500 ns).
        This last solution is not strictly necessary because the ‘Write Data Pulse Width’ is around 5us and it is inside the limits of 500 ns up to 10 us.

 

According to the data sheets, the Microchip version chip have different timings. I believe this is the reason why your code works with some chips and not with others.

As a last resort I ran the following basic program in the Timex:

    10 Sound 6,8;7,246;8,15
    15 Pause 1
    20 Sound 6,8;7,254;8,15
    25 Pause 1
    30 Go To 10

I can hear the noise being generated. So, the chip is OK.
I have measured all the signals (control and data BUS) with an oscilloscope and did a small program to replicate this commands. I put the new routine at the end of the function ‘USER_Init’. It was an infinite loop. I checked again with the scope and the signals were the same in terms of values and timings. But no noise generated…. :sad:

Link to comment
Share on other sites

Hi johnmx,

I ask myself: why do the other AY Chip functions (Tone ABC, Envelope, etc.) work?
Somehow, this doesn't look like a bus timing problem to me (just a guess).


How about a AY Chip exchange?

I would like to check Your AY-3-8912A CBA GI in my MBAY.

(Or we can do it the other way round - should I send You a checked AY38912 CDA GI Chip for testing?)

 

Best Regards,
- Lemonhorse

Link to comment
Share on other sites

Hi lemonhorse,

 

Thanks, but there is no need for that. I got it! The noise is finally working.

 

The chip is not properly self-initialized during power-up as it requires a hard reset (via reset pin). It doesn’t matter what values we write to the internal registers, the noise generator will never work.

I use the RD4 port of the PIC for that. I notice that you use this pin to generate a pulse on MIDI events. What is the purpose of that? Only for debugging? Anyway, I commented that part of your code and also the lines 62 and 80 of the file ‘mios_srio.inc’ from the MIOS project.

 

Since I don’t have more AY chips, I would like to ask if you can do this modification and test the Microchip chips.

 

I notice an odd thing. The output volume increases when I change my midi controller to channel 2 and even more to channel 3. After that it doesn’t matter if I change back to channel 1, the volume stays at that maximum.

Can you please test if this happens in your box? I'm using the default volume settings.

Please note that I didn’t implement the opamp mix board. I have all the three channels short-circuited.

 

Now let me say the major change I did to your hardware design. I could not find a crystal oscillator in my local stores and since they are very expensive, I simply removed it and used the PIC’s PWM as the clock source.

For that I use the RC2 port as the 2MHz clock source and RC3 for serial output.

The only disadvantage is that the PIC’s crystal it’s not temperature-compensated.

For anyone interested here is the code to initialize the PWM peripheral:

INIT_USER_PWM
;; JUMPED IN HERE FROM USER_Init

	;; Initialize PWM (2 MHz clock for AY)
	;; #########################
	;; This avoids using an external 2 MHz oscillator which is very expensive
	;; The period is 5xTcy and Duty cycle is 2.5xTcy
	movlw        0x04
	movwf        PR2
	movlw        B'00100000'
	movwf        CCP1CON
	movlw        0x04
	movwf        T2CON
	movlw        0x02
	movwf        CCPR1L
	movlw        B'00101100'
	movwf        CCP1CON
	
	;; EXIT HERE
	return

 

Link to comment
Share on other sites

The noise is finally working.

Great!

 

 

I notice that you use this pin to generate a pulse on MIDI events. What is the purpose of that?

[bUILD 20111128] Core8 J14 (RD4): MIDI NOTE ON GATE PIN (@TONE A MIDI CH » Note On/OFF (Note On = +5V / Note Off = 0V))

The MIDI Gate-Function was a user request.

 

 

Since I don’t have more AY chips, I would like to ask if you can do this modification and test the Microchip chips. ...

I notice an odd thing. The output volume increases when I change my midi controller to channel 2 and even more to channel 3. After that it doesn’t matter if I change back to channel 1, the volume stays at that maximum.

Can you please test if this happens in your box? I'm using the default volume settings.

 

It's on my todo-list now.

 

 

Best Regards,

- Lemonhorse

Link to comment
Share on other sites

Addendum:

 

I notice an odd thing. The output volume increases when I change my midi controller to channel 2 and even more to channel 3. After that it doesn’t matter if I change back to channel 1, the volume stays at that maximum.
Can you please test if this happens in your box? I'm using the default volume settings.

 


After Start up the default Volume of Tone ABC is the maximum (=15).
I can not confirm the described behavior with my MBAY.

Edited by lemonhorse
Link to comment
Share on other sites

Addendum 2:

 

Hi Johnmx,

That's magic. Your right. Some AY/YM Chips need a low-trigger @ the reset pin.

Suddenly NOISE is working @ AY38912A/P from Microchip.

There will be an MBAY 2 update.

 

Thanks johnmx!

Edited by lemonhorse
Link to comment
Share on other sites

MBAY V2.2 [bUILD 20130821]

AY38912A/P & AY38912A/P from Microchip with Noise enabled.

http://www.midibox.org/dokuwiki/doku.php?id=midibox_ay_ym_v2&#software

 

But it takes a little modification: do add a RESET line (see: CS-Button & LED Config / 4xDOUT pin 31)

http://www.midibox.org/dokuwiki/doku.php?id=midibox_ay_ym_v2&#hardware

 

Best Regards,
- Lemonhorse

 

 

Link to comment
Share on other sites

V2.3:
HW-Update [bUILD 20130825]→ CS: TONE ABC MIDI ACTIVITY LED added (LED TONE A=pin28, TONE B=pin29, TONE C=pin30 -> DOUTx4)

It's a kinda note on / note off monitor for Tone ABC (activity control for MIDI / Tone ABC)

http://www.midibox.org/dokuwiki/doku.php?id=midibox_ay_ym_v2

 

Best Regards,
- Lemonhorse

Link to comment
Share on other sites

Please update to MBAY V2.3B

[bUILD 20130829]→ corrected the FX TABle ENVelope Shape 1-8 function

[bUILD 20130831]→ corrected Note on ABC / FX ENVelope Time Coarse/Fine execution

 

http://www.midibox.o...idibox_ay_ym_v2

 

Best Regards,
- Lemonhorse

Edited by lemonhorse
Link to comment
Share on other sites

  • 8 months later...

Thanks for this project, always loved the ST sound!

 Finally getting around to building and have a question. What is the max bank stick count? The wiki doesn't list any under the 'Hardware' but does describe loading patches. Can I add up to the max (8) per MBSID?

  Also wondering if MBAY can reproduce some of the ST 'tricks'; SID sound or Mod playback?

Yogi

Link to comment
Share on other sites

Hello Yogi

 

What is the max bank stick count?

 

The MBAY supports just one Bankstick (127 Patches) and there is one internal Patch.

 

 

Also wondering if MBAY can reproduce some of the ST 'tricks'; SID sound or Mod playback?

 

Sorry, no Mod playback. But for more complex sound creation you can use the FX TABLE (with 32 steps in every patch):
http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=8912:midiboxay_v2_fx_tab_planer_a3.pdf

 

And here is a list with the MBAY MIDI Controller (CC):
http://www.subfrequenz.net/midibox/mbayv2/MBAY2MenueLCD.pdf

 

:-)

 

- Lemonhorse

Link to comment
Share on other sites

Hello Yogi

 

 

The MBAY supports just one Bankstick (127 Patches) and there is one internal Patch.

 

 

 

Sorry, no Mod playback. But for more complex sound creation you can use the FX TABLE (with 32 steps in every patch):

http://www.midibox.org/dokuwiki/lib/exe/fetch.php?media=8912:midiboxay_v2_fx_tab_planer_a3.pdf

 

And here is a list with the MBAY MIDI Controller (CC):

http://www.subfrequenz.net/midibox/mbayv2/MBAY2MenueLCD.pdf

 

:-)

 

- Lemonhorse

Thanks for the info; I already have two sockets for BS but not a big deal :)

 I kind of thought that would be the answer in regards to Mods, but I have been eyeing the FX tab (very cool feature!!). 

 Just about got the boards finished (except the FP) Can't wait!

Yogi

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...