ZX81 driving a SID 6581
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
I have not given up yet! The SID chips I have are out of nonworking 64 units. At this point they could both be bad or something is not right. I have LEDs on all the Address and Data lines and the /CS pin. I can see the data going in! I used a PAUSE after every entry. I have a working 64 coming. I will get that to sound using POKES. Then hopefully I can test these chips. Some 64 units have the SID in a socket. There are posts on the Internet to how fragile these chips are! I used all precautions.
Re: ZX81 driving a SID 6581
Could you tell me the address/data sequence you are sending to the SID?
You need to load the AD and SR registers of the voice you want to use, then load the high and low bytes of the corresponding frequency registers, also set the master volume for the 3 voices, then you can start the attack cycle with the same "poke" used to set the waveform. To test you could use triangle (16), to start the attack cycle then you would send a 16+1 value (bit 0 starts attack when set) to the control register, and once the attack and decay cycles are completed, you could start the release cycle sending a 16+0 (bit 0 starts release when reset). A few milliseconds later you are ready to start a new attack cycle.
You need to load the AD and SR registers of the voice you want to use, then load the high and low bytes of the corresponding frequency registers, also set the master volume for the 3 voices, then you can start the attack cycle with the same "poke" used to set the waveform. To test you could use triangle (16), to start the attack cycle then you would send a 16+1 value (bit 0 starts attack when set) to the control register, and once the attack and decay cycles are completed, you could start the release cycle sending a 16+0 (bit 0 starts release when reset). A few milliseconds later you are ready to start a new attack cycle.
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
I am going to wait for the Commodore 64. It is either the chips are bad or the sequence is wrong. A guy named Mike has been helping me. He has driven a SID with his micro. It may be something Mike and I have over looked or the SIDs pulled from nonworking 64s are bad. I might have even burnt the SID out! Once I see the POKES go into the 64 and make sound I will then test the two SIDs. I am hoping the 64 has sockets. One of the two 64s I bought had sockets. I have never had this much trouble with a electronics projects. I am betting the SIDs were bad from the beginning. The 64 should be here today or tomorrow.
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
I got the Commodore 64 but no monitor. I had to ring out cables and use my B&W monitor and my amp section on the proto board. Found out my AMP section is dead. I did a quick bypass. The SID produces a click and processor noise if you hit it with a POKE 54296,15 and then turn it off with a POKE 54296,0 That is Address 00100 and Data 00001111 with a /CS to the chip and a Address 00100 with Data of 00000000 /CS turns it off. Now to get the ZX81 to produce the click and then a tone. In the 64 I was able to get the Chip to make noise then hitting it with POKES at different addressed changed the frequency without it shutting off. I won't say I am almost there! Well at least all three SIDs still work!!!!!
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
The LM386 wanted 12Volts to work. Now I got it working at 5volts.(go figure) I got the ZX81 driving the SID using my Christmas tree light circuit. Poke 8192, something Does the Address Poke 10240, something does the Data and a Poke 12288, one then zero shifts /CS on and off shifting the address and data into the chip. The next step is to put the address of the ZX81 into the one latch so Poke 8192,0 is the Base address. After that works I add a one shot or gates so a simple Poke loads the chip. It can be done!
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
Getting the address lines to latch out during a Poke is harder than I thought. One circuit works until it heats up! The circuit has to latch out the address lines from 8192 to 8216. So a Poke 8192,8 would produce an address of 00000 and Data 00001000
I need a break! I just called and old friend and he does not remember me! He is 80 and he remembered me 5 years ago.
I need a break! I just called and old friend and he does not remember me! He is 80 and he remembered me 5 years ago.
Re: ZX81 driving a SID 6581
It gets like that sometimes :¬/
C
C
Re: ZX81 driving a SID 6581
If you are using the address/data buses instead I/O ports to connect to the SID, you don't need latches, since the SID is a chip designed for memory mapped I/O. You could connect directly the address and data buses to the SID, so when you poke to addresses between 8192 and 8223 you will write both to RAM and to one of the 32 SID registers. You have to be sure that the SID's CS pin is low only when you write to that RAM (8192...8223), and high when you read that RAM or access any other address. This way you can't read the SID registers, but it's easier to start with some tests. What you will read in that RAM are the values you previously poked to the SID, not the actual values in the SID registers.
-
- Posts: 163
- Joined: Thu Oct 20, 2011 12:53 am
Re: ZX81 driving a SID 6581
Pastbytes,
The SID needs some clock cycles in order to move data from the address and data lines into the SID. I wanted to make sure clean DATA was there to be clocked into the SID. The Commodore 64 SID runs off the system clock so it works. In this case I have a 2K clock into a flip flop giving me 1K. MY clock is not off the ZX81. If clean data is not on the SID during the clock in cycles it won't work or it will be hit and miss. A SID does not work like a Memory or other chip. At least this is what I have been told and understand.
John
The SID needs some clock cycles in order to move data from the address and data lines into the SID. I wanted to make sure clean DATA was there to be clocked into the SID. The Commodore 64 SID runs off the system clock so it works. In this case I have a 2K clock into a flip flop giving me 1K. MY clock is not off the ZX81. If clean data is not on the SID during the clock in cycles it won't work or it will be hit and miss. A SID does not work like a Memory or other chip. At least this is what I have been told and understand.
John
Re: ZX81 driving a SID 6581
I forgot about the differences of speed between the Z80 and the SID, but everything in a 6502 system works like memory, the SID, VIC, VIAs, CIAs, etc. By the way, I'm a C64 user and programmer, and I have a SID6581 that I want to use with a PIC microcontroller, but I don't know if it's working, I'll have to test it in the protoboard one of these days.