User Tools

Site Tools


mos6581

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mos6581 [2011/09/28 09:43] wadminmos6581 [2018/08/26 09:36] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +{{cnmos.JPG}}
 +
 +**UNDER CONSTRUCTION - FOR INFORMATION ONLY**
 +
 **Foreword :**  **Foreword :** 
-This ''datasheet'' is intended to recall the main characteristics of the chip. It combines :+This ''Datasheet'' is intended to recall the main characteristics of the chip. It combines :
   * Data extracted from 'brute' OCR on the scanned MOS datasheets.   * Data extracted from 'brute' OCR on the scanned MOS datasheets.
   * quotes from various Websites     * quotes from various Websites  
   * personnal SID experience/findings.   * personnal SID experience/findings.
  
-All the sources are listed in the last section of the Datasheet. +All the sources are listed in the last section of the Datasheet. It covers all chip versions from 6581 to 8580, the relevant information for each version are precised in the associated chapter when necessary.
- +
----- +
- +
- +
-**Once upon a time...**+
  
 +== Once upon a time... ==
 //In 1982, a young engineer named Bob Yannes was given the task of developing a soundchip for the Commodore company within a four month time frame. // //In 1982, a young engineer named Bob Yannes was given the task of developing a soundchip for the Commodore company within a four month time frame. //
  
Line 21: Line 21:
 //Until the SID enthusiasts took the flag...// //Until the SID enthusiasts took the flag...//
  
----- 
  
-===== MOS6581 Datasheet ===== 
  
  
-{{cnmos.JPG}} +===== MOS6581 SOUND INTERFACE DEVICE (SID) =====
- +
-==== Introduction ====+
 The 6581 Sound Interface Device (SID) is a single-chip, 3 voice electronic music synthesizer/sound effects generator compatible with the 65XX and similar microprocessor families. SID provides wide-range, high-resolution control of pitch (frequency), tone color (harmonic content) and dynamics (volume). Specialized control circuitry minimizes software overhead, facilitating use in arcade/home video games and low-cost musical instruments. The 6581 Sound Interface Device (SID) is a single-chip, 3 voice electronic music synthesizer/sound effects generator compatible with the 65XX and similar microprocessor families. SID provides wide-range, high-resolution control of pitch (frequency), tone color (harmonic content) and dynamics (volume). Specialized control circuitry minimizes software overhead, facilitating use in arcade/home video games and low-cost musical instruments.
  
  
-==== Features ====+===== Features =====
 {{ mos6581.png}} {{ mos6581.png}}
   * 3 Tone oscillators 3 Tone Oscillators, range 0-4 kHz    * 3 Tone oscillators 3 Tone Oscillators, range 0-4 kHz 
Line 59: Line 55:
   * External Audio Input    * External Audio Input 
    
-==== SID internal Diagram ====+===== SID internal Diagram =====
  
 {{SID_diagram.JPG?640x640 }} {{SID_diagram.JPG?640x640 }}
Line 70: Line 66:
  
  
-==== SID Control registers ====+===== SID Control registers =====
  
 There are 29 eight-bit registers in SID which control the generation of sound.  There are 29 eight-bit registers in SID which control the generation of sound. 
Line 107: Line 103:
  
  
-==== SID Registers Description ====+===== SID Registers Description =====
  
 Comprehensive description of the MOS6581 registers is given herebelow. Comprehensive description of the MOS6581 registers is given herebelow.
  
  
-=== 1 - Freq Low & Hi ===+==== 1 - Freq Low & Hi ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Voice X  |   **X**  |  0  |  0  |  0  |  0  |  0  |  ''00''  |  F7    |  F6    |  F5    |  F1    |  F3    |  F2    |  F1    |  F0    |  **FreqX Low**            |  W  | |  Voice X  |   **X**  |  0  |  0  |  0  |  0  |  0  |  ''00''  |  F7    |  F6    |  F5    |  F1    |  F3    |  F2    |  F1    |  F0    |  **FreqX Low**            |  W  |
Line 118: Line 114:
 Together these registers form a 16-bit number which linearly controls the Frequency of Oscillator 1. The frequency is determined by the following equation:  Together these registers form a 16-bit number which linearly controls the Frequency of Oscillator 1. The frequency is determined by the following equation: 
  
-Fout = (Fn * Fclk/16777216) Hz +<math>Fout = (Fn * Fclk/16777216) Hz </math>
  
 Where Fn is the 16-bit number in the Frequency registers and Fclk is the system clock applied to the Ø2 input (pin 6). For a standard 1.0 Mhz clock, the frequency is given by:  Where Fn is the 16-bit number in the Frequency registers and Fclk is the system clock applied to the Ø2 input (pin 6). For a standard 1.0 Mhz clock, the frequency is given by: 
Line 135: Line 131:
 **Note :** Those 16 bits are in fact the LSBs of the 24 bit phase accumulator of each Voices. **Note :** Those 16 bits are in fact the LSBs of the 24 bit phase accumulator of each Voices.
  
-=== 2 - PW Low & Hi ===+==== 2 - PW Low & Hi ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Voice X  |   **X**  |  0  |  0  |  0  |  1  |  0  |  ''02''  |  PW7    PW6    PW5    PW4    PW3    PW2    PW1    PW0    **PWX Low**              |  W  | |  Voice X  |   **X**  |  0  |  0  |  0  |  1  |  0  |  ''02''  |  PW7    PW6    PW5    PW4    PW3    PW2    PW1    PW0    **PWX Low**              |  W  |
Line 153: Line 149:
  
  
-=== 3 - Control Register ===+==== 3 - Control Register ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Voice X  |   **X**  |  0  |  0  |  1  |  0  |  0  |  ''04''  |  RAND  |  TRI    SAW    SQR    TEST  |  RING  |  SYNC  |  GATE  |  **Control X**            |  W  | |  Voice X  |   **X**  |  0  |  0  |  1  |  0  |  0  |  ''04''  |  RAND  |  TRI    SAW    SQR    TEST  |  RING  |  SYNC  |  GATE  |  **Control X**            |  W  |
Line 164: Line 160:
 |  3      |  ''12''            | |  3      |  ''12''            |
  
-== Gate (Bit 0)== +=== Gate (Bit 0)=== 
 The GATE bit controls the Envelope Generator for Voice X. When this bit is set to a one, the Envelope Generator is Gated (triggered) and the ATTACK/DECAY/SUSTAIN cycle is initiated. When the bit is reset to a zero, the RELEASE cycle begins. The Envelope Generator controls the amplitude of Oscillator X appearing at the audio output, therefore, the GATE bit must be set (along with suitable envelope parameters) for the selected output of Oscillator X to be audible. A detailed discussion of the Envelope Generator can be found further.  The GATE bit controls the Envelope Generator for Voice X. When this bit is set to a one, the Envelope Generator is Gated (triggered) and the ATTACK/DECAY/SUSTAIN cycle is initiated. When the bit is reset to a zero, the RELEASE cycle begins. The Envelope Generator controls the amplitude of Oscillator X appearing at the audio output, therefore, the GATE bit must be set (along with suitable envelope parameters) for the selected output of Oscillator X to be audible. A detailed discussion of the Envelope Generator can be found further. 
  
-== Sync (Bit 1) ==+=== Sync (Bit 1) ===
 The SYNC bit, when set to a one, Synchronizes the fundamental frequency of Oscillator X with the fundamental frequency of Oscillator Y, producing “Hard Sync” effects. Varying the frequency of Oscillator X with respect to Oscillator Y produces a wide range of complex harmonic structures from Voice X at the frequency of Oscillator Y. In order for sync to occur Oscillator Y must be set to some frequency other than zero but preferably lower than the frequency of Oscillator X. No other parameters of Voice Y have any effect on sync.  The SYNC bit, when set to a one, Synchronizes the fundamental frequency of Oscillator X with the fundamental frequency of Oscillator Y, producing “Hard Sync” effects. Varying the frequency of Oscillator X with respect to Oscillator Y produces a wide range of complex harmonic structures from Voice X at the frequency of Oscillator Y. In order for sync to occur Oscillator Y must be set to some frequency other than zero but preferably lower than the frequency of Oscillator X. No other parameters of Voice Y have any effect on sync. 
  
Line 174: Line 170:
   * ''Control3'' register syncs ''VOICE3'' with ''VOICE2''   * ''Control3'' register syncs ''VOICE3'' with ''VOICE2''
  
-== Ring Mod (Bit 2) == +=== Ring Mod (Bit 2) === 
 The RING MOD bit, when set to a one, replaces the Triangle waveform output of Oscillator X with a “Ring Modulated” combination of Oscillators X and X. Varying the frequency of Oscillator X with respect to Oscillator X produces a wide range of non-harmonic overtone structures for creating bell or gong sounds and for special effects.  The RING MOD bit, when set to a one, replaces the Triangle waveform output of Oscillator X with a “Ring Modulated” combination of Oscillators X and X. Varying the frequency of Oscillator X with respect to Oscillator X produces a wide range of non-harmonic overtone structures for creating bell or gong sounds and for special effects. 
 In order for ring modulation to be audible, __the Triangle waveform of Oscillator X must be selected__ and Oscillator Y must be set to some frequency other than zero. No other parameters of Voice Y have any effect on ring modulation.  In order for ring modulation to be audible, __the Triangle waveform of Oscillator X must be selected__ and Oscillator Y must be set to some frequency other than zero. No other parameters of Voice Y have any effect on ring modulation. 
Line 182: Line 178:
   * ''Control3'' register modulates ''VOICE3'' with ''VOICE2''   * ''Control3'' register modulates ''VOICE3'' with ''VOICE2''
  
-== Test (Bit 3) == +=== Test (Bit 3) === 
 The TEST bit, when set to a one, resets and locks Oscillator X at zero until the TEST bit is cleared. The Noise waveform output of Oscillator X is also reset and the Pulse waveform output is held at a DC level. Normally this bit is used for testing purposes, however, it can be used to synchronize Oscillator X to external events, allowing the generation of highly complex waveforms under real-time software control.  The TEST bit, when set to a one, resets and locks Oscillator X at zero until the TEST bit is cleared. The Noise waveform output of Oscillator X is also reset and the Pulse waveform output is held at a DC level. Normally this bit is used for testing purposes, however, it can be used to synchronize Oscillator X to external events, allowing the generation of highly complex waveforms under real-time software control. 
  
-== Triangle Wave (Bit 4) ==+=== Triangle Wave (Bit 4) ===
 When set to a one, the Triangle waveform output of Oscillator X is selected. The Triangle waveform is low in harmonics and has a mellow, flute-like quality.  When set to a one, the Triangle waveform output of Oscillator X is selected. The Triangle waveform is low in harmonics and has a mellow, flute-like quality. 
 The sound of the Triangle wave is 3dB lower than the other sources, the MSB of the internal phase accumulator is used to elaborate the waveform by storing the sign of the wave. The sound of the Triangle wave is 3dB lower than the other sources, the MSB of the internal phase accumulator is used to elaborate the waveform by storing the sign of the wave.
  
-== Sawtooth Wave (Bit 5) == +=== Sawtooth Wave (Bit 5) === 
 When set to a one, the Sawtooth waveform of Oscillator X is selected. The sawtooth waveform is rich in even and odd harmonics and has a bright, brassy quality.  When set to a one, the Sawtooth waveform of Oscillator X is selected. The sawtooth waveform is rich in even and odd harmonics and has a bright, brassy quality. 
  
-== Square Wave (Bit 6) == +=== Square Wave (Bit 6) === 
 When set to a one, the Pulse waveform output of Oscillator X is selected. The harmonic content of this waveform can be adjusted by the Pulse Width registers, producing tone Qualities ranging from a bright, hollow square wave to a nasal, reedy pulse. Sweeping the pulse width in real-time produces a dynamic “phasing” effect which adds a sense of motion to the sound. Rapidly jumping between different pulse widths can produce interesting harmonic sequences.  When set to a one, the Pulse waveform output of Oscillator X is selected. The harmonic content of this waveform can be adjusted by the Pulse Width registers, producing tone Qualities ranging from a bright, hollow square wave to a nasal, reedy pulse. Sweeping the pulse width in real-time produces a dynamic “phasing” effect which adds a sense of motion to the sound. Rapidly jumping between different pulse widths can produce interesting harmonic sequences. 
  
-== Noise (Bit 7) == +=== Noise (Bit 7) === 
 When set to a one, the Noise output waveform of Oscillator X is selected. This output is a random signal which changes at the frequency of Oscillator X. The sound quality can be varied from a low rumbling to hissing white noise via the Oscillator X Frequency registers. Noise is useful in creating explosions, gunshots, jet engines, wind, surf and other un-pitched sounds, as well as snare drums and cymbals. Sweeping the Oscillator frequency with Noise selected produces a dramatic rushing effect. One of the output waveforms must be selected for Oscillator X to be audible, however it is NOT necessary to deselect waveforms to silence the output of Voice X. The amplitude of Voice X at the final output is a function of the Envelope Generator only.  When set to a one, the Noise output waveform of Oscillator X is selected. This output is a random signal which changes at the frequency of Oscillator X. The sound quality can be varied from a low rumbling to hissing white noise via the Oscillator X Frequency registers. Noise is useful in creating explosions, gunshots, jet engines, wind, surf and other un-pitched sounds, as well as snare drums and cymbals. Sweeping the Oscillator frequency with Noise selected produces a dramatic rushing effect. One of the output waveforms must be selected for Oscillator X to be audible, however it is NOT necessary to deselect waveforms to silence the output of Voice X. The amplitude of Voice X at the final output is a function of the Envelope Generator only. 
  
 __NOTE:__ The oscillator output waveforms are NOT additive. If more than one output waveform is selected simultaneously, the result will be a logical ''ANDing'' of the waveforms. Although this technique can be used to generate additional waveforms beyond the four listed above, it must be used with care. If any other waveform is selected while Noise is on, the Noise output can “lock up”. If this occurs, the Noise output will remain silent until reset by the TEST bit or by bringing /RES (pin 5) low. __NOTE:__ The oscillator output waveforms are NOT additive. If more than one output waveform is selected simultaneously, the result will be a logical ''ANDing'' of the waveforms. Although this technique can be used to generate additional waveforms beyond the four listed above, it must be used with care. If any other waveform is selected while Noise is on, the Noise output can “lock up”. If this occurs, the Noise output will remain silent until reset by the TEST bit or by bringing /RES (pin 5) low.
  
-=== 4 - Attack / Decay / Sustain / Release ===+==== 4 - Attack / Decay / Sustain / Release ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Voice X  |   **X**  |  0  |  0  |  1  |  0  |  1  |  ''0X''  |  ATK3  |  ATK2  |  ATK1  |  ATK0  |  DEC3  |  DEC2  |  DEC1  | DEC0    **AttackX / DecayX**      W  | |  Voice X  |   **X**  |  0  |  0  |  1  |  0  |  1  |  ''0X''  |  ATK3  |  ATK2  |  ATK1  |  ATK0  |  DEC3  |  DEC2  |  DEC1  | DEC0    **AttackX / DecayX**      W  |
Line 243: Line 239:
 NOTE: Envelope rates are based on a 1.0 Mhz Ø2 clock. For other Ø2 frequencies, multiply the given rate by 1 Mhz / Ø2. The rates refer to the amount of time per cycle. For example, given an ATTACK value of 2, the ATTACK cycle would take 16 mS to rise from zero to peak amplitude. The DECAY/RELEASE rates refer to the amount of time these cycles would take to fall from peak amplitude to zero.  NOTE: Envelope rates are based on a 1.0 Mhz Ø2 clock. For other Ø2 frequencies, multiply the given rate by 1 Mhz / Ø2. The rates refer to the amount of time per cycle. For example, given an ATTACK value of 2, the ATTACK cycle would take 16 mS to rise from zero to peak amplitude. The DECAY/RELEASE rates refer to the amount of time these cycles would take to fall from peak amplitude to zero. 
  
-=== Filter Freq Low & High ===+==== 5 - Filter Freq Low & High ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Filter    **21**  |  1  |  0  |  1  |  0  |  1  |  ''15''  |      |      |      |      |      |  FC2    FC1    FC0    **Filter Cut Freq Low**  |  W  | |  Filter    **21**  |  1  |  0  |  1  |  0  |  1  |  ''15''  |      |      |      |      |      |  FC2    FC1    FC0    **Filter Cut Freq Low**  |  W  |
 |  :::      |  **22**  |  1  |  0  |  1  |  1  |  0  |  ''16''  |  FC10  |  FC9    F08    FC7    FC6    F05    FC4    F03    **Filter Cut Freq High**  |  W  | |  :::      |  **22**  |  1  |  0  |  1  |  1  |  0  |  ''16''  |  FC10  |  FC9    F08    FC7    FC6    F05    FC4    F03    **Filter Cut Freq High**  |  W  |
-Together these registers form an 11-bit number (bits 3-7 of FC LO are not used) which linearly controls the Cutoff (or Center) Frequency of the programmable Filter. The approximate Cutoff Frequency ranges between 30Hz and 10KHz with the recommended capacitor values of 2200pF for CAP1 and CAP2. The frequency range of the Filter can be altered to suit specific applications. Refer to the Pin Description section for more information. +Together these registers form an 11-bit number (bits 3-7 of FC LO are not used) which linearly controls the Cutoff (or Center) Frequency of the programmable Filter. The approximate Cutoff Frequency ranges between 30Hz and 10KHz with the recommended capacitor values for CAP1 and CAP2. The frequency range of the Filter can be altered to suit specific applications. Refer to the Pin Description section for more information. 
  
-=== Filter Res & Signal Source Routing ===+==== 6 - Filter Res & Signal Source Routing ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Filter    **23**  |  1  |  0  |  1  |  1  |  1  |  ''17''  |  RES3  |  RES2  |  RES1  |  RES0  |  EXT    FLT3  |  FLT2  |  FLT1  |  **Filter Res / Source **  |  W  | |  Filter    **23**  |  1  |  0  |  1  |  1  |  1  |  ''17''  |  RES3  |  RES2  |  RES1  |  RES0  |  EXT    FLT3  |  FLT2  |  FLT1  |  **Filter Res / Source **  |  W  |
Line 264: Line 260:
 |  Filter      1    |  1      1      1     |   |  Filter      1    |  1      1      1     |  
  
-=== Mode & Volume Control ===+==== 7 - Mode & Volume Control ====
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Filter    **24**  |  1  |  1  |  0  |  0  |  0  |  ''18''  |  3OFF  |  HP    |  BP    |  LP    |  VOL3  |  VOL2  |  VOL1  |  VOL0  |  **Mode**  |  W  | |  Filter    **24**  |  1  |  1  |  0  |  0  |  0  |  ''18''  |  3OFF  |  HP    |  BP    |  LP    |  VOL3  |  VOL2  |  VOL1  |  VOL0  |  **Mode**  |  W  |
Line 286: Line 282:
  
 **Bits 0-3 : VOL0-VOL3** select 1 of 16 overall Volume levels for the final composite audio output. The output volume levels range from no output (0) to maximum volume (15 or #F) in 16 linear steps. This control can be used as a static volume control for balancing levels in multi-chip systems or for creating dynamic volume effects, such as Tremolo. Some Volume level other than zero must be selected in order for SID to produce any sound.  **Bits 0-3 : VOL0-VOL3** select 1 of 16 overall Volume levels for the final composite audio output. The output volume levels range from no output (0) to maximum volume (15 or #F) in 16 linear steps. This control can be used as a static volume control for balancing levels in multi-chip systems or for creating dynamic volume effects, such as Tremolo. Some Volume level other than zero must be selected in order for SID to produce any sound. 
 +
 +==== 8 - Miscelaneous Inputs ====
  
 === POTX / POTY === === POTX / POTY ===
 +
 ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^ ^  Zone  ^  Register  ^  A4  ^  A3  ^  A2  ^  A1  ^  A0      ^  Hex Address    D7    ^  D6    ^  D5    ^  D4    ^  D3    ^  D2    ^  D1    ^  D0  ^  Name  ^  Mode  ^
 |  Inputs    **25**  |  1  |  1  |  0  |  0  |  1  |  ''19''  |  PX7    PX6    PX5    PX4    PX3    PX2    PX1    PXO    **POTX**                  |  R  | |  Inputs    **25**  |  1  |  1  |  0  |  0  |  1  |  ''19''  |  PX7    PX6    PX5    PX4    PX3    PX2    PX1    PXO    **POTX**                  |  R  |
Line 303: Line 302:
 |  :::      |  **28**  |  1  |  1  |  1  |  0  |  0  |  ''1C''  |  E7    |  E6    |  E5    |  E4    |  E3    |  E2    |  E1    |  E0    |  **ENV3**  |  R  | |  :::      |  **28**  |  1  |  1  |  1  |  0  |  0  |  ''1C''  |  E7    |  E6    |  E5    |  E4    |  E3    |  E2    |  E1    |  E0    |  **ENV3**  |  R  |
 Same as OSC 3, but this register allows the microprocessor to read the output of the Voice 3 Envelope Generator. This output can be added to the Filler Frequency to produce harmonic envelopes, WAH WAH, and similar effects. “Phaser” sounds can be created by adding this output to the frequency control registers of an oscillator. The Voice 3 Envelope Generator must be gated in order to produce any output from this register. The OSC 3 register, however, always reflects the changing output of the oscillator and is not affected in any way by the Envelope Generator.  Same as OSC 3, but this register allows the microprocessor to read the output of the Voice 3 Envelope Generator. This output can be added to the Filler Frequency to produce harmonic envelopes, WAH WAH, and similar effects. “Phaser” sounds can be created by adding this output to the frequency control registers of an oscillator. The Voice 3 Envelope Generator must be gated in order to produce any output from this register. The OSC 3 register, however, always reflects the changing output of the oscillator and is not affected in any way by the Envelope Generator. 
 +
 +===== SID Pinout and Connection =====
 +
 +Pins decription can be found herebelow. Consider jumping to next section for maximum ratings.
 +{{ mos6581.png}}
 +
 +==== Power Supply ====
 +SID power consumption during normal operation is around 600mW. Expect a little more from a 6581 (around 650mW), and less from 6582 and 8580 (around 550W).
 +The SID shall heat a lot during operation. The design of the analog part of the chip has been improved from 6581 to 6582/8580, allowing to reduce the operating voltage of the chip, and at the same time lowering its consumed power.
 +
 +This also means that 6581 and 6582/8580 __are not compatible__. The power voltages listed below shall be respected, otherwise SID might be damaged.
 +
 +=== VCC - Pin 25 ===
 +This pin shall be powered by a 5V DC coupled power supply. 
 +About 70mA is drawn from VCC during normal operation. Coupling capacitor of at least 10uf and filtering capacitor of 100nf are recommended for proper operation.
 +
 +=== VDD - Pin 28 ===
 +This pin shall be connected to either 9V or 12V DC coupled power supply, according to your SID chip version:
 +
 +^  SID Model  ^  VDD Voltage  ^  Current   ^
 +|  6581  |  12V  |  25mA  |
 +|  6582  |  9V  |  :::  |
 +|  8580  |  :::  |  :::  |
 +
 +Filtering capacitor of 100nf is recommended.
 +
 +=== GND - Pin 14 ===
 +Signal Grounds. To lower the noise, the digital and analog ground shall be connected together on this pin and only at it. Keep in mind that the VDD is used only by the analog part of the chip, which includes it inside the analog section. This makes a basic ground plane domain for analog around pins 26, 27 and 28.
 +
 +
 +==== Filter Configuration ====
 +
 +=== CAP1A CAP1B CAP2A CAP2B - Pin 1-2 & Pin 3-4 ===
 +These pins are used to connect the two integrating capacitors required by the internal state variable filter to operate. Both caps shall be identical, and matched if the user intends to mix several MOS together. Since the design has been significantly updated from 6581 to 8580 versions, the basic values for the capacitor changes from one version to the other. The following cap values are given for a nominal 20Hz - 12kHz range:
 +^Version^Cap value^Max Freq^
 +|6581|1 to 2nF|10k, provided Fmax=0.000026/Cap|
 +|6582|6.8nF|12k, provided Fmax=0.000052/Cap|
 +|8580|6,8nF|:::|
 +//Note: Depending on the 6581 version, early units require 1nF as per 1986 datasheet. However there are few of those units out here.//
 +
 +Increasing the capacitor value shifts the maximum filter output frequency down, allowing more tuning control capability over the 11bit control range of the filter. Basic asumption of the maximum filter frequency is given column 3 of the table above. The filter control range covers 9 octaves below the Fmax frequency
 +
 +Both capacitors shall be implemented as close as possible to the chip. The signal flowing through them is analog.
 +
 +==== Digital Pins ====
 +
 +=== _RES - Pin 5 ===
 +This TTL-level input is the reset control for SID. When brought low for at least ten Ø2 cycles, all internal registers are reset to zero and the audio output is silenced. This pin is normally connected to the reset line of the microprocessor or a power-on-clear circuit. 
 +
 +=== Ø2 - Pin 6 === 
 +This TTL-level input is the master clock for SID. Ø2 controls both system data transfers between SID and the microprocessor and the DDS synth. 
 +
 +__System Clock :__ Data can only be transferred when Ø2 is high. Essentially, Ø2 acts as a high-active chip select as far as data transfers are concerned. This pin is normally connected to the system clock, with a nominal operating frequency of 1.0 MHz. The clock can be cristal based or generated by another component like a microprocessor timer.
 +
 +__DDS Synth :__ The 1Mhz clock also drives the phase accumulator counter that DDS synth uses. As a consequence, the accuracy of the Ø2 clock frequency is linked to the accurate tuning of the audio outputs, aside from a good configuration of the frequency registers. Hence, great care shall be given to the Ø2 clock source in terms of jitter and skew for accurate tuning. 
 +
 +=== R/_W - Pin 7 ===
 +This TTL-level input controls the direction of data transfers between SID and the microprocessor. If the chip select conditions have been met, a high on this line allows the microprocessor to Read data from the selected SID register and a low allows the microprocessor to Write data into the selected SID register. This pin is normally connected to the system Read/Write line. 
 +
 +=== _CS - Pin 8 ===
 +This TTL-level input is a low active Chip select which controls data transfers between SID and the microprocessor. /CS must be low for any transfer. 
 +^Action^_CS State^Ø2 State^R/_W State^
 +|**Read** | low | high | high |
 +|**Write**| low | high | low | 
 +
 +This pin is normally connected to address decoding circuitry, allowing SID to reside in the memory map of a system. 
 +
 +=== A0-A4 - Pins 9-13 ===
 +These TTL-level inputs are used to select one of the 29 SID registers. The remaining three register locations are not used. A Write to any of these three locations is ignored and a Read returns invalid data. 
 +
 +These pins are normally connected to the corresponding address lines of the microprocessor so that SID may be addressed in the same manner as memory. 
 +
 +=== D0-D7 - Pins 15-22 ===
 +These bidirectional lines are used to transfer data between SID and the microprocessor. They are TTL compatible in the output mode and capable of driving 2 TTL loads in the output mode. The data buffers are usually in the high-impedance off state. During a Write operation, the data buffers remain in the off (input) state and the microprocessor supplies data to SID over these lines. During a Read operation, the data buffers turn on and SID supplies data to the microprocessor over these lines. The pins are normally connected to the corresponding data lines of the microprocessor. 
 +
 +==== Analog Pins ====
 +
 +=== POTX & POTY - Pins 24 & 23 
 +These pins are inputs to the A/D converters used to digitize the position of potentiometers. The conversion process is based on the time constant of a capacitor tied from the POT pin to ground, charged by a potentiometer tied from the POT pin to +5 volts. The component values are determined by **RC = 4.7E-4 ** where R is the maximum resistance of the pot and C is the capacitor. The larger the capacitor, the smaller the POT value jitter. 
 +
 +**The recommended values for R and C are 470 KOhms and 1000 pF.** 
 +
 +=== Ext In - Pin 26 === 
 +This analog input allows external audio signals to be mixed with the audio output of SID or processed through the Filter. Typical sources include voice, guitar and organ. The input impedance of this pin is in the order of 100 KOhms. Any signal applied directly to the pin should ride at DC level of 6 volts and should not exceed 3 volts p-p. In order to prevent any interference caused by DC level differences, external signals should be AC-coupled to EXT IN by an electrolytic capacitor in the 1-10uF range. As the direct audio path (FILTEX = 0) has unity gain, EXT IN can be used to mix outputs of many SID chips by daisy-chaining. The number of chips that can be chained in this manner is determined by the amount of noise and distortion allowable at the final output. Note that the output Volume control will affect not only the three SID voices, but also any external inputs. 
 +
 +=== Audio Out - Pin 27 === 
 +This open-source buffer is the final audio output of SID, comprised of the three SID voices, the Filter and any external input. The output level is set by the output Volume control and reaches a maximum of approximately 3 volts p-p at a 6 volt DC level. A source resistor from AUDIO OUT to ground is required for proper operation. The recommended resistance is 1 KOhm for a standard output impedance. As the output of SID rides at a 6 volt DC level, it should be AC-coupled to any audio amplifier with an electrolytic capacitor in the 1-10uF range. 
 +
 +
 +
 +
  
  
mos6581.1317202982.txt.gz · Last modified: 2018/08/26 09:36 (external edit)