6522 микросхемасы: 6502 процессоры үшін әмбебап интерфейс адаптері
MOS Technology 6522
MOS Technology 6522 VIA микросхемасы – 6502 процессоры үшін I/O портын басқаратын интегралды схема. Тікелей параллель порттар, таймерлер, серийлі байланыс қамтамасыз етеді.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Микропроцессордың I/O порт контроллері IC
Microprocessor I/O port controller IC
MOS Technology 6522 Көпмақсатты интерфейс адаптері (VIA) – бұл MOS Technology компаниясы 6502 микропроцессорлар отбасысы үшін I/O порт контроллері ретінде жобалаған және өндірген интегралды схема. Ол екі бағытты 8 биттік параллель I/O порттарын, екі 16 биттік таймерді (олардың біреуі оқиға санағышы ретінде де жұмыс істей алады) және сериялық байланыс немесе сериялық және параллель форматтар арасындағы деректерді түрлендіру үшін 8 биттік ығысу тізілімін қамтамасыз етеді. Екі I/O портының әрбір битінің бағытын жеке-жеке бағдарламалауға болады. 6522 MOS Technology компаниясымен қатар Rockwell және Synertek сияқты басқа компаниялармен де өндірілді. 6522 1980-ші жылдардағы компьютерлерде, әсіресе Commodore машиналарында кеңінен қолданылды, сондай-ақ Apple III, Oric 1 және Oric Atmos, BBC Micro, Victor 9000/Sirius 1 және Apple Macintosh құрылымдарының маңызды бөлігі болды. Vectrex сияқты бейне ойын платформалары да 6522-ні пайдаланды, сондай-ақ 1984 жылдан 1989 жылға дейінгі Corvette цифрлық приборлар панелі де осы чипті қолданды. Жоғары жылдамдықты CMOS нұсқасы, W65C22, Western Design Center (WDC) компаниясымен шығарылады.
The MOS Technology 6522 Versatile Interface Adapter (VIA) is an integrated circuit that was designed and manufactured by MOS Technology as an I/O port controller for the 6502 family of microprocessors. It provides two bidirectional 8 bit parallel I/O ports, two 16 bit timers (one of which can also operate as an event counter), and an 8 bit shift register for serial communications or data conversion between serial and parallel forms. The direction of each bit of the two I/O ports can be individually programmed. In addition to being manufactured by MOS Technology, the 6522 was second sourced by other companies including Rockwell and Synertek. The 6522 was widely used in computers of the 1980s, particularly Commodore's machines, and was also a central part of the designs of the Apple III, Oric 1 and Oric Atmos, BBC Micro, Victor 9000/Sirius 1 and Apple Macintosh. Video game platforms such as the Vectrex also used the 6522, as did the 1984 through 1989 Corvette digital dash cluster. A high speed, CMOS version, the W65C22, is produced by the Western Design Center (WDC).
Кіріс/шығыс порттары
VIA 20 I/O желісін қамтиды, олар екі 8 биттік екі бағытты портқа (немесе 16 жалпы мақсаттағы I/O желісіне) және төрт басқару желісіне (қолдасу және үзіліс жасау үшін) ұйымдастырылған. Барлық 16 жалпы желінің (PA0-7, PB0-7) бағыттары жеке-жеке бағдарламалана алады. Басқару желілері белсенділенген кезде үзіліс тудыру (барлығы төртеуі), тиісті I/O портын құлыптау (CA1 және CB1), I/O порттарындағы құрылғылар үшін қолдасу сигналдарын автоматты түрде жасау, немесе қарапайым бағдарламамен басқарылатын шығыстар (CA2 және CB2) ретінде жұмыс істеу үшін бағдарламаланады. CB1 және CB2 сонымен қатар ықшам регистр үшін сағаттық кіріс және дерек желісі ретінде де қолданылады, ықшам регистр қосылғанда оларды басқа функциялар үшін пайдалану мүмкін емес.
The VIA contains 20 I/O lines, which are organised into two 8 bit bidirectional ports (or 16 general purpose I/O lines) and four control lines (for handshaking and interrupt generation). The directions for all 16 general lines (PA0 7, PB0 7) can be programmed independently. The control lines can be programmed to generate an interrupt when activated (all four), latch the corresponding I/O port (CA1 and CB1), automatically generate handshaking signals for devices on the I/O ports, or operate as plain program controlled outputs (CA2 and CB2). CB1 and CB2 are also used as the clock input and the data line for the shift register, precluding their use for other functions while the shift register is enabled.
Таймерлер
VIA екі 16 биттік таймер/санағышты ұсынады. Олардың әрқайсысын бір реттік (моностабильді) «интервалдық таймер» режимінде пайдалануға болады; 1-таймер «еркін жүріс» (бөлгіш / шаршы толқын) режимінде де қолданылуы мүмкін, онда таймер нөлге жеткен кезде бастапқы санаумен автоматты түрде қайта жүктеледі, ал 2-таймер «импульс санау» режимінде де қолданылуы мүмкін, онда таймер PB6 тірегінің (B портының параллель кіріс/шығыс 7-биті) жоғарыдан төменгі күйге өтуін санайды. Бір реттік режимде әр таймер еркін жүрісін жалғастырады, осылайша нөлге жеткен уақытты анықтауға болады, бірақ таймер қайта іске қосылғанша қосымша үзілім жіберілмейді. Әр таймер нөлге жеткенде үзілім тудырады, ал 1-таймер PB7 тірегінде (B портының 8-биті) импульстарды (интервалдық таймер режимінде) немесе шаршы толқындарды (еркін жүріс режимінде) шығара алады. 2-таймерді жылдамдық регистрі үшін сағаттық жиілікті беру үшін пайдалануға болады. Екінші жүріс режимінің пайдалы мүмкіндігі – 16 биттік санау құрылғысы санауды қайта жүктемей жаңа мәнді қабылдай алады, осылайша ол жаңа санауды тек ағымдағы санау нөлге жеткеннен кейін ғана жүктейді, шығыс жиілігін үздіріссіз өзгертеді. Осы мүмкіндігі және PB7 тірегіне шығару қабілетімен біріккен 1-таймер күрделі толқын формаларын, мысалы, импульс енін модуляциялау сигналдарын, жиілік өзгерісін немесе екі фазалық немесе FM кодталған тізбектік бит ағындарын жасау үшін қолданылуы мүмкін.
The VIA provides two 16 bit timer/counters. Each can be used in one shot (monostable) "interval timer" mode; timer 1 can also be used in "free running" (divider/square wave) mode, in which the timer is automatically reloaded with the initial count when it reaches zero, and timer 2 can also be used in "pulse counting" mode, in which the timer will count the high to low state transitions of pin PB6 (the 7th bit of parallel I/O port B). In the one shot mode, each timer continues free running so that the time since zero was reached can be determined, but no further interrupt is issued until the timer is restarted. Each timer can generate an interrupt when it reaches zero, and timer 1 can also output pulses (in the interval timer mode) or square waves (in the free running mode) on pin PB7 (the 8th bit of port B). Timer 2 can be used to provide the clock frequency for the shift register. A useful feature of the free running mode is that the 16 bit counter latch can be loaded with a new count without reloading the counter, so that it will load the new count only after the current count reaches zero, seamlessly changing the output frequency. This feature of timer 1, combined with its ability to output to pin PB7, can be used to generate complex waveforms, for example pulse width modulation signals, frequency sweeps, or bi phase or FM encoded serial bit streams.
Жылжымалы тіркеме
VIA-ның ауысу тізілімі екі бағытты, 8 бит енді және таймерден (2-таймерден) туындаған сағат сигналымен, процессор сағатымен немесе CB1 желісіндегі сыртқы көзден жұмыс істей алады. Тізбектік кіріс/шығыс желіде орналасқан, сондай-ақ сыртқы сағатты тізбектік құрылғылар үшін биттік сағатты шығару үшін бағдарламалана алады.
The VIA's shift register is bidirectional, 8 bits wide, and can run from either a timer generated clock (from timer 2), the CPU clock, or an external source on line CB1. The serial input/output is on line , and can also be programmed to output a bit clock for external clocked serial devices.
IRQ шығысы
NMOS 6522 ашық ағынды IRQ шығысына ие, оны сымдық немесе (OR) үзіліс схемаларында қолдануға болады. WDC W65C22S керісінше, тотемдік полюсті IRQ шығысына ие, оны сымдық (OR) схемасынан Schottky диоды арқылы оқшаулау қажет, себебі тотемдік полюстің шығысы W65C22S үзіліс бермей тұрғанда IRQ тірегін белсенді түрде жоғарылатады. Бұл мәселе WDC W65C22N-де ашық ағынды IRQ шығысымен жабдықталғандықтан шешілген.
The NMOS 6522 has an open drain IRQ output that may be used in wired OR interrupt circuits. The WDC W65C22S, in contrast, has a totem pole IRQ output that must be isolated from a wired OR circuit by a Schottky diode, due to the fact that the totem pole output actively drives the IRQ pin high when the W65C22S is not interrupting. This specific issue is resolved on the WDC W65C22N which is fitted with an open drain IRQ output.
Өртке қарсы
Дизайн ақаулығына байланысты, егер φ2 (фаза-2) сағатының төмендеу жиегіне бірнеше наносекунд ішінде жиек түсіп қалса, дерек жоғалып, кейінгі деректерде фрейм қателері пайда болады. Шешім ретінде, сыртқы сағаттық сигналды 74ACT74 флип-флопының кірісіне қосып, флип-флоптың шығысын 6522-нің тиісті ұясына қосып, флип-флопты φ0 немесе φ2 арқылы синхрондау қажет. Кезектік ауысу тізілімінің бұл қатесі California Micro Devices CMD G65SC22 және MOS 6526 құрылғыларында түзетілді, соңғы құрылғы Commodore 64-тен бастап 6522 орнына қолданылды. Аталған ауысу тізілімінің қатесінен басқа, 6522-ні 6502 шина архитектурасынан өзгеше микропроцессормен (мысалы, Motorola 68000) қолданатын жүйелерде ғана кездесетін регистрдің зақымдануы мүмкін болатын мәселе де болды. Чип таңдауы төмен (белсенді емес) күйде болғанда адрестік желілер өзгерсе, бірақ φ2 сағаттық кіріс жоғары (белсенді) болса, чип таңдалмаған жағдайда да регистрдің мазмұны өзгеруі мүмкін еді. Бұл мәселе CMOS нұсқаларының кейбіреулерінде, бірақ барлығында емес, түзетілді.
Due to a design defect, if the edge on falls within a few nanoseconds of the falling edge of the ϕ2 (phase–2) clock, the will be ignored, causing the loss of a bit and framing errors on subsequent data. A workaround is put the external clock signal into the input of a 74ACT74 flip flop, run the flop's output to the 6522's pin, and clock the flip flop with ϕ0 or ϕ2. The serial shift register bug was corrected in the California Micro Devices CMD G65SC22 and in the MOS 6526, the latter device which Commodore used in place of the 6522 from the Commodore 64 onwards. Aside from the aforementioned shift register bug, there was a potential register corruption problem that usually only occurred in systems using the 6522 with a microprocessor having a non 6502 bus architecture, such as a Motorola 68000. If the address lines changed while chip select was low (inactive) but the ϕ2 clock input was high (active), register contents could be changed despite the fact that the chip was not selected. This was fixed in some but not all of the CMOS versions.