Параллельный программатор для микроконтроллеров Atmel серии АТ89
Содержание.
Техническое Задание. Введение. 1. Разработка схемы электрической принципиальной программатора. 1.1. Описание работы программатора. 1.2. Модернизация схемы. 1.3. Параллельный интерфейс: LPT-порт. 1.4. Детали и конструкция. 1.5. Выбор серии интегральных микросхем. 2. Разработка конструкции программатора. 2.1. Выбор конструкции печатной платы и числа слоев. 2.2. Выбор материала печатной платы. 2.3. Конструкторско-технологический расчет элементов печатного монтажа. 2.3.1. Расчет элементов печатного монтажа по постоянному току. 2.3.2. Определение номинального значения монтажных отверстий. 2.3.3. Определение диаметра контактной площадки для двухсторонних ПП изготовленных комбинированным позитивным методом. 2.3.4. Определение ширины печатного проводника. 2.3.5. Определение минимального расстояния между элементами проводящего рисунка. 2.4. Электрический расчёт печатной платы. 2.4.1. Определение падения напряжения на печатных проводниках. 2.4.2. Определение мощности потерь. 2.4.3. Определение взаимной емкости параллельных проводников. 2.4.4. Определение взаимной индуктивности печатных проводников. |
3 6 7 7 11 13 17 18 20 20 22 23 23 24 24 25 25 26 26 26 26 26 28 |
2.5. Тепловой расчет печатной платы. 3. Проектирование печатного узла в САПР PCAD – 2001. 4. Расчёт показателей надёжности. 5. Технологические процессы при изготовлении печатной платы. 6. Программная поддержка программатора. 6.1. Программирование микроконтроллеров серии АТ89. 6.2. Исходный текст программы. 7. Моделирование схемы в САПР OrCAD 9.2 Выводы. Литература. |
29 32 34 42 42 44 63 66 67 |
Техническое Задание.
1) Основа для выполнения работы.
Основой для проведения расчетно-графической работы является задание, выданное преподавателем согласно приказа по кафедре и учебного плана на 8-й семестр.
2) Наименование и область применения.
Данное устройство предназначено для программирования микроконтроллеров серии АТ89С, выпускаемых фирмой Atmel. Также допускается возможность программирования низковольтных версий АТ89 LV.
3) Цель и назначение разработки.
Целью данной разработки является создание платы программатора микроконтроллеров серии АТ89. Данное устройство должно иметь ряд преимуществ по сравнению с другими аналогами и не содержать в своем составе микроконтроллеров.
4) Источник разработки.
Так как данный тип проекта проводится не впервые, в качестве источников разработки берутся ранее разработанные проекты. В качестве вспомогательного материала берется ряд напечатанных материалов различных авторов.
5) Основные этапы разработки.
Разработка конструкции имеет следующие основные этапы:
- изучение технического задания на изделие;
- выбор или обоснование типа печатной платы;
- выбор или обоснование класса точности;
- выбор габаритных размеров и конфигурации печатной платы;
- выбор материала основания печатной платы;
- размещение навесных элементов на печатной плате;
- трассировка проводников, размещение элементов проводящего рисунка на печатной плате, проверочные расчеты;
- разработка конструкторской документации.
6) Состав устройства.
Устройство состоит из печатного узла.
7) Технические требования.
7.1) Функциональные возможности устройства.
Данное устройство должно обеспечивать:
- программирование микроконтроллеров серий AT89C, AT89LV и AT89S;
- процесс программирования продолжительностью не более двух минут ;
- загрузка FLASH-памяти пордолжительностью 10…15 с.
Питание устройства осуществляется от автономных источников питания напряжением +12 В.
7.2) Требования к надежности устройства.
Среднее время наработки устройства на отказ составляет порядка 10000 часов.
7.3) Требования к уровню унификации и стандартизации.
При изготовлении устройства предусматривается максимальное использование стандартных и унифицированных деталей и изделий.
7.4) Требования к безопасности эксплуатации и обслуживания.
Руководствоваться общими требованиями к аппаратуре низкого напряжения по ГОСТ 12.2.007-75. Также производителем обеспечивается гарантийный ремонт изделия в случае выхода его из строя по вине производителя.
7.5) Требования к составным частям изделия, сырью, исходным и эксплуатационным материалам.
При изготовлении устройства используются материалы и электрорадиоэлементы отечественного производства.
7.6) Условия эксплуатации.
Климатическое исполнение и категория эксплуатации У2.0 по ГОСТ 15150-69.
7.7) Требования к транспортированию и хранению.
Группа условии хранения Л1 по ГОСТ 15150-69. Хранить в закрытых, отапливаемых и вентилируемых помещениях, в которых обеспечивается:
- Температура воздуха +1...+40°C.
- Относительная влажность воздуха 65% при температуре +20°С.
- Атмосферное давление 84... 106 кПа.
Транспортировать автомобильным и железнодорожным транспортом в транспортной таре.
8) Экономические показатели.
Экономические параметры не рассматриваются.
9) Этапы разработки:
Наименование этапа |
Сроки выполнения |
Результат |
Разработка технического задания |
Техническое задание |
|
Выполнение расчетов конструкции |
Расчет параметров. Выводы по функциональности платы |
|
Выполнение чертежа схемы электрической принципиальной |
Схема электрическая принципиальная |
|
Выполнение сборочного чертежа платы |
Сборочный чертеж печатной платы |
|
Выполнение чертежа печатной платы |
Чертеж печатной платы |
|
Разработка пояснительной записки |
Пояснительная записка |
Введение.
За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные (однокорпусные) микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все составные части «голой» микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой.
Использование микроконтроллеров в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости (во многих применениях система может состоять только из одной БИС микроконтроллера), что микроконтроллерам, видимо, нет разумной альтернативной элементной базы для построения управляющих или регулирующих систем.
Широкими возможностями при сравнительной дешевизне внимание радиолюбителей привлекают микроконтроллеры фирмы Atmel серии АТ89 с параллельным интерфейсом программирования. Микроконтроллеры серии АТ89 имеют полный набор команд (CISC) и полностью совместимы по ним с микроконтроллерами Intel 8051. К сожалению, многие распространенные сегодня программаторы для них непригодны. Нужен специализированный. В данном проекте описывается такой программатор, разработанный по рекомендациям фирмы Atmel, но на элементной базе, выпускаемой предприятиями СНГ.
1. Разработка схемы электрической принципиальной программатора.
1.1. Описание работы программатора.
Запись в регистры DD2–DD5 информации, поступающей от компьютера по линиям DATA1–DATA8, происходит по спадам импульсов отрицательной полярности на входах С, поступающих от дешифратора DD1. В регистре DD3 и части регистра DD4 хранят 13-разрядный адрес ячейки внутренней памяти микроконтроллера, в DD5 – байт данных, предназначенных для записи в эту ячейку, в DD2 и свободных от адреса разрядах DD4 – код управления. В таблице 1[1] приведены режимы работы контроллера и соответствующие напряжения на выводах, временные диаграммы на рис. 1, а значения временных параметров указаны в таблице 2[1].
Таблица 1.
|
Режим |
RST |
ALE/ |
PP |
Р2.6 |
Р2.7 |
Р3.6 |
Р3.7 |
||
|
Запись программы |
1 |
0 |
5 и 12В |
0 |
1 |
1 |
1 |
||
|
Чтение программы |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|
|
Стирание программы |
1 |
0 |
* |
5 и 12В |
1 |
0 |
0 |
0 |
|
|
Считывание кодов идентификации |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
|
*Для стирания программы длительность импульса должна быть не менее 10 мс |
|
|||||||||
Цепь R13-C1 при включении питания приводит регистр DD2 в исходное состояние, предотвращая случайное искажение содержимого памяти программируемого микроконтроллера.
Шинный формирователь DD6 служит для передачи данных с выходов микроконтроллера на линии DATA1–DATA8. Выходы микросхемы DD6 не должны быть активными, когда LPT-порт работает "на вывод". Это учтено в
программе, формирующей разрешающие сигналы на управляющих входах микросхем.
Таблица 2. |
||
Значение |
||
Параметр |
минимальное |
максимальное |
Fcl,MГц |
3 |
12 |
tcl, НС |
80 |
330 |
tAVGL |
48*tcl |
|
tGHAX |
48*tcl |
|
tDVGL |
48*tcl |
|
tGHDX |
48*tcl |
|
tehsh |
48*tcl |
|
tSHGL, мкс |
10 |
|
tGHSL, мкс |
10 |
|
tGLGH, мкс |
1 |
110 |
t |
48*tcl |
|
tELQV |
48*tc |
|
tehqz |
48*tcl |
|
tGHBL, мкс |
1 |
|
twc, мс |
2 |
Резисторы R1–R12 уменьшают "звон", сопровождающий перепады сигналов на линиях LPT-порта и защищают его от перегрузок. Когда выходы элементов компьютера, подключенные к линиям порта, и выходы некоторых элементов программатора, в том числе самой программируемой микросхемы, находятся в высокоимпедансном состоянии, резисторы наборов DR1–DR3 поддерживают в соответствующих цепях высокий логический уровень.
Программируемые микросхемы устанавливают в одну из двух панелей; АТ89С1051, АТ89С2051, АТ89С4051 в корпусе DIP-20 – в XS1; АТ89С51 и другие в корпусе DIP-40 – в XS2. Кварцевый резонатор 201 частотой 6 МГц с конденсаторами С4 и С5 необходим, чтобы во время программирования работал внутренний тактовый генератор микроконтроллера, установленного в панель XS2. Тем, которые устанавливают в панель XS1, резонатор не требуется. На контакт 5 этой панели поступают тактовые импульсы, сформированные программно.
Питающее напряжение на разъем Х1 программатора подают от внешнего источника. Им может быть, например, сетевой адаптер видеоприставки "SEGA Mega Drive-II". Хотя при номинальной нагрузке (1 А) его выходное напряжение не превышает 11В, при токе 70...90мА, потребляемом программатором, оно возрастает до 14...15 В.
Напряжение 5 В для питания микросхем (в том числе программируемой) получают с помощью интегрального стабилизатора DA1. Напряжение на выходе стабилизатора DA2 при низком логическом уровне на выводе 18 шинного формирователя DD7 – 12 В. Точное значение устанавливают подстроечным резистором R21. При высоком логическом уровне на выводе 18 открывшийся транзистор VT2 подключает параллельно R21 еще один подстроечный резистор R19, что уменьшает выходное напряжение стабилизатора DA2 до 5 В.
Скорость нарастания напряжения на выходе стабилизатора после смены высокого уровня на выводе 18 DD7 на низкий зависит от емкости конденсатора С14. При слишком большой его емкости и высокой скорости работы управляющего компьютера несколько младших ячеек FLASH-памяти микроконтроллера могут оказаться запрограммированными с ошибками.
Выходное напряжение стабилизатора DA2 поступает на вывод 31 (EA/VPP) панели XS2 непосредственно, а на вывод 1 панели XS1 (RST/VPP) – через ключ на транзисторе VT1. При напряжении 12 В ключ открыт независимо от логического уровня на выводе 16 регистра DD2. а при 5 В – только в случае, если этот уровень низкий.
Пониженная яркость свечения светодиода HL2 свидетельствует о напряжении 5 В на выходе DA2 и о том, что программируемая микросхема нахо-
дится в режиме считывания кодов из ее памяти. В режиме стирания и записи в память напряжение возрастает до 12 В, яркость светодиода заметно увеличивается. Это справедливо для всех микроконтроллеров, кроме тех, которым напряжение 12 В не требуется. При программировании двадцати выводных микроконтроллеров будет включен и светодиод HL1.
Вилку Х2 программатора соединяют с розеткой LPT-порта IBM-совместимого компьютера кабелем длиной до 2 м. В компьютере должен быть включен расширенный режим работы LPT-порта (ЕСР/ЕРР). В современных системных блоках он действует по умолчанию. Если это не так, режим порта можно изменить, запустив при начальной загрузке компьютера программу BIOS SETUP (пункты меню "Integrated Peripherals"– "Parallel Port Mode").
1.2. Модернизация схемы.
При питании от маломощного сетевого адаптера и пониженном сетевом напряжении на программатор может поступать всего 12...13 В. Для стабилизатора DA1 такая ситуация благоприятна (на нем рассеивается меньшая мощность). А вот стабилизатор DA2 может выйти из рабочего режима, в результате чего напряжение, подаваемое на программируемый микроконтроллер, упадет ниже допустимых 11,5 В. Опыт показывает, что микросхемы фирмы Atmel успешно программируются и при 10,5 В. Однако гарантировать этого нельзя.
Если применить в стабилизаторе микросхему КР1184ЕН2 или ее прототип LP2951CL фирмы National Semiconductor (имеется на многих материнских платах компьютеров), можно добиться надежной работы программатора при уменьшении напряжения питания до 11,8 В.
Стабилизатор собирают по схеме, изображенной на рис. 2, и подключают к показанным на рис. 1 точкам А, Б и В. Микросхема DA2, транзистор VT2, резисторы R18–R21 и конденсатор С14 из программатора должны быть исключены.
Диод VD1 (см. рис. 2) при высоком логическом уровне в точке А закрыт, и выходное напряжение 5±0,03 В задает прецизионный делитель напряжения, находящийся внутри микросхемы DA1. При низком уровне в точке А диод открыт, резисторы R1 и R2 шунтируют одно из плеч внутреннего делителя. Выходное напряжение возрастает до 12 В (его регулируют подстроечным резистором R2). Конденсатор С1 подавляет выбросы напряжения при переходных процессах. Его емкость (аналогично конденсатору С14 на рис. 1) не должна быть слишком большой.
Микросхема КР1184ЕН2 имеет внутренний детектор понижения выходного напряжения, который срабатывает при его уменьшении более чем на 5 % от установленного значения. В результате открывается транзистор VT1 и включается светодиод HL1. Нагрузочная способность выхода невелика, поэтому номинал резистора R4 уменьшать нельзя.
1.3. Параллельный интерфейс: LPT-порт.
Порт параллельного интерфейса был введен в PC для подключения принтера –LPT-порт (Line PrinTer – построчный принтер).
Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов. BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом – прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа, инициализацию интерфейса и принтера, а также опрос состояния принтера.
Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, на базе которого программно реализуется протокол обмена Centronics. Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания по импульсу на входе Аск#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом.
Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).
Data Register (DR) – регистр данных, адрес = BASE. Данные, записанные в этот порт, выводятся на выходные линии интерфейса (контакты разъема: 2 – 9). Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях.
Status Register (SR) – регистр состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес = BASE+1. Бит SR.7 инвертируется – низкому уровню сигнала соответствует единичное значение бита в регистре, и наоборот.
Назначение бит регистра состояния (в скобках даны номера контактов разъема):
SR.7 – Busy – инверсные отображения состояния линии Busy (11);
SR.6 – АСК (Acknowledge) – отображения состояния линии Аск# (10);
SR.5 – РЕ (Paper End) – отображения состояния линии Paper End (12);
SR.4 – Select – отображения состояния линии Select (13). Единичное значение соответствует сигналу о включении принтера;
SR.3–Error – отображения состояния линии Error (15);
SR.2 – PIRQ – флаг прерывания по сигналу Аск# (только для порта PS/2). Бит обнуляется, если сигнал Аск# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.
SR[1-0] – зарезервированы.
Control Register (CR) – регистр управления, адрес = ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип открытый коллектор. Это позволяет более корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются – единичному значению в регистре соответствует низкий уровень сигнала, и наоборот.
Назначение бит регистра управления: CR[7-6] – зарезервированы.
CR.5 – Direction – бит управления направлением передачи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода.
CR.4 – ACKINTEN (Ack Interrupt Enable) – единичное значение разрешает прерывание по спаду сигнала на линии Ackff – сигнал запроса следующего байта.
CR.3 – Select In – единичное значение бита соответствует низкому уровню на выходе Selecting (17) – сигналу, разрешающему работу принтера по интерфейсу Centronics.
CR.2 – Init – нулевое значение бита соответствует низкому уровню на выходе Imt# (16) – сигнал аппаратного сброса принтера.
CR.1 – Auto LF – единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) – сигналу на автоматический перевод строки (LF – Line Feed) по приему байта возврата каретки (CR – Carriage Return).
CR.0 –Strobe – единичное значение бита соответствует низкому уровню на выходе Strobeff (1) – сигналу стробирования выходных данных. Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Аск#) при установке CR.4 = 1. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта.
Стандартный порт сильно асимметричен – при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена – Nibble Mode. В этом режиме, называемым также и Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования.
В процессе начального тестирования BIOS проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0408h, 040Ah, 040Сh, 040Еh. Эти ячейки хранят адреса портов с логическими именами LPT1-LPT4. В ячейки 0:0478h, 0479h, 047Аh, 047Вh заносятся константы, задающие выдержку тайм-аута для этих портов.
Поиск портов обычно ведется по базовому адресу. Если считанный байт совпал с записанным, считается, что найден LPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес порта LPT4 BIOS самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются – записью в регистр управления формируется и снимается сигнал Initff, после чего записывается значение 00h, соответствующее исходному состоянию сигналов интерфейса. Программное прерывание BIOS INT 17h обеспечивает следующие функции поддержки LPT-порта:
00h – вывод символа из регистра AL по протоколу Centronics. Данные помещаются в выходной регистр и после готовности принтера формируется строб.
01h – инициализация интерфейса и принтера.
02h – опрос состояния принтера.
При вызове INT 17h номер функции задается в регистре АН, номер порта – в регистре DX (0 – LPT1, 1 – LPT2...). При возврате после любой функции регистр АН содержит код состояния – биты регистра состояния SR[7:3] (биты 6 и 3 инвертированы) и флаг тайм-аута в бите 0. Флаг тайм-аута устанавливается при неудачной попытке вывода символа. Недостатки стандартного порта частично устраняют новые типы портов, появившихся в компьютерах семейства PS/2.
Двунаправленный порт (Type 1 parallel port) – интерфейс, введенный с PS/2. Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит: при CR.5=0 буфер данных работает на вывод, при CR.5=1 – на ввод.
Порт с прямым доступом к памяти (Туре 3 DMA parallel port) применялся в PS/2 моделей 57, 90, 95. Этот тип был введен для повышения пропускной способности и разгрузки процессора при выводе на принтер. Программе, работающей с данным портом, требовалось только задать блок данных в памяти, подлежащих выводу, и вывод по протоколу Centronics производился без участия процессора.
1.4. Детали и конструкция.
Программатор собран на двусторонней печатной плате размерами 140x140 мм. Можно собрать программатор и на макетной плате навесным монтажом. Учтите, что конденсаторы С4, С5 и кварцевый резонатор ZQ1 должны быть расположены как можно ближе к контактам 18, 19 панели XS2. Свободные входы микросхем DD1 (выводы 13–15), DD2 (вывод 8) и DD7 (выводы 15, 17) необходимо соединить с их общим выводом или выводом питания. Это повысит помехоустойчивость прибора.
Все цифровые микросхемы можно заменять их функциональными аналогами серий К555, КР1533 или импортными. Транзисторы VT1, VT2 – любые маломощные соответствующей структуры, желательно с минимальным падением напряжения на участке коллектор–эмиттер открытого транзистора.
Подстроечные резисторы R19, R21 – СПЗ-19А. Наборы резисторов DR1–DR3 – НР1-4-9М могут быть заменены на НР1-4-8М, на зарубежные серии 9А или на соответствующее число обычных малогабаритных резисторов указанных на схеме номиналов. Резисторы R1–R12 можно разместить внутри корпуса вилки Х2.
Панели XS1 и ХS2 должны выдерживать многократную установку и изъятие микросхем. Лучше всего применить ZIF-панели (с нулевым усилием установки), предназначенные для микросхем с расстоянием между рядами контактов 7,5 мм (XS1) и 15 мм (XS2). Годятся и универсальные панели, допускающие установку как "узких", так и "широких" микросхем.
Учитывая, что ZIF-панели в несколько раз дороже всех остальных деталей программатора, вместе взятых, на плате предусмотрены контактные площадки для установки обычных, желательно с цанговыми контактами. Применять самые дешевые панели с плоскими контактами нежелательно. После многочисленных замен микросхемы такие контакты теряют надежность.
1.5. Выбор серии интегральных микросхем.
Выбор серии ИС для селектора выбора программ будем производить по матрице параметров. Выделим 3 наиболее подходящие серии: К155, К531 и К555. Качество серий будем оценивать по следующим параметрам: время задержки, потребляемый ток, коэффициент разветвления, коэффициент помехоустойчивости, условия эксплуатации (диапазон температур, вибрации, многократные удары) и стоимости. Определим коэффициенты значимости параметров и сведем все данные в таблицу 3.
Таблица 3. |
|
|||||||||
Серия |
Тип логики |
Параметры |
|
|||||||
tзад |
Iпотр |
Кразв. |
Кпом |
Условия эксплуатации |
Стоимость |
|
||||
DT |
Вибрации |
Удары |
|
|||||||
К155 |
ТТЛ |
30 |
60 |
10 |
0.3 |
80 |
10 |
20 |
1.2 |
|
К531 |
ТТЛШ |
9 |
70 |
10 |
0.4 |
80 |
5 |
15 |
1.5 |
|
К555 |
ДТЛШ |
20 |
14 |
20 |
0.5 |
100 |
5 |
15 |
2.1 |
S |
Весовой коэф. |
0.05 |
0.3 |
0.05 |
0.05 |
0.05 |
0.15 |
0.2 |
0.15 |
1.00 |
Составим матрицу параметров X:
Параметры матрицы Х должны быть приведены в таком виде, чтобы большему значению параметра соответствовало лучшее значение параметра серии интегральных схем. Параметры не удовлетворяющие этому условию пересчитываются по формуле (1.1) и записывается новая матрица Y:
Нормируем параметры матрицы Y по формуле (1.2) и запишем новую матрицу нормированных параметров А:
Определим значение оценочной функции для каждой серии ИС.
QK155=0.32; QK531=0.44; QK555=0.217
Лучшей серии интегральных микросхем соответствует меньшее значение оценочной функции Qi. Из данных расчетов следует, что стоит выбрать серию К555. Это объясняется в первую очередь малым током потребления, широким диапазоном температур и высокой прочностью, что очень важно для нашего программатора.
2. Разработка конструкции программатора.
2.1. Выбор конструкции печатной платы и числа слоев.
Выбор конструкции печатной платы (ПП) мы будем осуществлять по таким критериям:
ü габаритный;
ü критерий плотности рисунка печатных проводников;
ü материал основания;
ü число слоев;
ü технологичность конструкции.
Размеры ПП выбираются исходя из плотности компоновки размещения N (ИС/см2), которая зависит от размеров печатной платы, и исходя из требований к температурным диапазонам работы печатной платы, механической прочности, разрешающей способности фотолитографии, и др.
Геометрические размеры печатных проводников (ширина, расстояние между проводниками и др.) определяются классом плотности печатного монтажа. По этому критерию печатные платы делят на 5 классов. Исходя из всех основных требований к печатному узлу (быстродействие, минимальная стоимость и габариты, надежность) выбираем 3-ий класс плотности печатного монтажа:
ü плотность монтажа – средняя;
ü минимальная ширина проводника b, мм – 0,25;
ü расстояние между краями проводников S, мм – 0,25;
ü разрешающая способность RС, пр/мм – 2;
ü предельный размер печатной платы, мм – 200х200.
Оптимальным решением для данного устройства есть выбор двухсторонней печатной платы (ДПП) с металлизированными монтажными и переходными отверстиями. Этот тип плат характеризуется высокими коммутативными свойствами, повышенной прочностью соединения вывода навесного элемента с проводящим рисунком платы.
Применение ДПП позволяет значительно облегчить трассировку, оптимально разместить элементы навесного монтажа, уменьшить габариты платы, уменьшить расход материала, обеспечить надежность соединений.
2.2. Выбор материала печатной платы.
Материал ПП должен соответствовать ряду требований: высокие электроизоляционные свойства; механическая прочность; обрабатываемость; стабильность параметров под воздействием агрессивной среды; себестоимость.
Для изготовления ПП широкое распространение получили слоистые диэлектрики, состоящие из наполнителя и связующего вещества – гетинакс и стеклотекстолит.
В качестве материала основания был выбран двухсторонний фольгированный стеклотекстолит (СФ-2-35-1,5 ГОСТ 10316–78) толщина фольги – 35 мкм, толщина основы – 1,5 мм. Этот материал был выбран благодаря его высоким характеристикам: широкий диапазон рабочих температур (-60…+1500С), низкое водопоглощение (0,2%...0,8%), высоким объемным и поверхностным сопротивлением.
2.3. Конструкторско-технологический расчет элементов печатного монтажа.
2.3.1. Расчет элементов печатного монтажа по постоянному току.
1). Определение минимальной ширины печатного проводника по постоянному току:
bmin = (2.1)
jдоп = 48 A/мм2 – допустимая плотность тока с hф = 35 мкм, изготовленных комбинированным позитивным методом;
t – толщина проводника: t =hф + hхм + hгм (2.2)
hхм – (0,005мм толщина химически осаждённой меди;
hгм – (0,05мм толщина гальванически осаждённой меди;
t = 0,035 +0,0065 + 0,055 = 0,0965 мм
Imax – максимальный постоянный ток в проводнике определяем из анализа схемы:
Таблица 4. |
|||||
К555ИР35 |
К555ИР23 |
К555ИД14 |
К555АП3 |
К555АП5 |
|
кол-во |
1 |
3 |
1 |
1 |
1 |
I,mA |
13.5 |
13.5 |
13 |
15 |
15 |
×13,6 + 13 + 15 + 15 = 193,5 mA.
bmin = = 0,042 мм
2). Определение минимальной ширины печатного проводника исходя из допустимого падения напряжения на нём:
bmin = (2.3)
l – длина самого длинного проводника;
Епит; r = 0,0175 Ом×мм2/м
bmin = = 0,063 мм
2.3.2. Определение номинального значения монтажных отверстий.
d = (2.4)
;
;
r – разность между минимальным диаметром монтажного отверстия и максимальный диаметром вывода
Для ИС: d = 0,6+0,1+0,5 = 0,8
2.3.3. Определение диаметра контактной площадки для двухсторонних ПП изготовленных комбинированным позитивным методом.
Dmin = D1 min + 1.5hф + 0.03 (2.5)
D1 min – минимально эффективный диаметр площадки
D1 min = 2(bно + dmax/2 + dq + dp) (2.6)
dmax = d + Dd + (0.1 ¸ 0.15) – максимальный диаметр просверленного отверстия (1.4.4.3);
Dd = +0,05 для d 1 мм – допуск на отверстия;
dq, dp – допуски на расположение отверстий и контактных площадок;
dmax = 0,8 + 0,05 +0,15 = 1
D1 min = 2(0,1 + 1/2 + 0,015 +0,005) » 1,2
Dmin = 1,2 + 1,5×1,5 + 0,03 = 1 » 1,3
Dmax = Dmin + (0.02 ¸ 0.06) = 1.32
2.3.4. Определение ширины печатного проводника.
Минимальная ширина печатного проводника для ДПП изготовленных комбинированным позитивным методом:
bmin = ф +0.03 = 0,25 + 1,5×0,035 + 0,03 = 0,33
максимальная ширина:
bmax = bmin + (0.02 ¸ 0.06) = 0.33 + 0.02 = 0.35
2.3.5. Определение минимального расстояния между элементами проводящего рисунка.
а) минимальное расстояние между проводником и КП:
S1 min = L0 – (Dmax/2 + dp + bmax/2 + dсп) (2.7)
L0 = 1,25 мм – расстояние между линиями координатной сетки, на которых расположены проводники и центры контактных площадок
S1 min = 1,25 – (1,32/2 +0,05 +0,35/2 + 0,05) = 0,315
б) минимальное расстояние между КП:
S2 min = L1 – (Dmax + 2dp) (2.8)
L1 = 2,5 мм – расстояние между центрами контактных площадок, кратное шагу координатной сетки
S2 min = 2,5 – (1,32 +2×0,05) = 1,08
в) минимальное расстояние между проводниками:
S3 min = L0 – ( bmax + 2dсп) = 1,25 – (0,35 + 2×0,05) = 0,8
При максимальном диаметре контактной площадки и координатной сетке 1,25 мм между выводами ИС можно провести печатный проводник.
2.4. Электрический расчёт печатной платы.
2.4.1. Определение падения напряжения на печатных проводниках.
r = 0,0175 Ом×мм2/м – удельное сопротивление меди;
lпрмах – самый длинный проводник.
2.4.2. Определение мощности потерь.
×3,14××10-6×52×0,002=0,045 мВт
f =1(для шины питания);
Еп – напряжение питания; F – суммарная площадь металлизации;
hпп – толщина печатной платы.
2.4.3. Определение взаимной емкости параллельных проводников.
(2.9)
(S=0,8 мм – зазор между краями проводников, lп – длинна взаимного перекрытия проводников).
2.4.4. Определение взаимной индуктивности печатных проводников.
(lшп – суммарная длина ШП и ШЗ)
Lшп = 2×880(2.3×lg+ 0.2235×10-3 = 0,137 мкГн
Составленная схема печатных проводников удовлетворяет заданным условиям, так как полученные расчётные значения наиболее важных электрических параметров не превышает допустимых значений для данного типа печатной платы.
2.5. Тепловой расчет ПП
Компонентом с максимальной выделяющейся тепловой мощностью является микросхемный стабилизатор КР142ЕН5А.
Тепловая мощность, выделяемая микросхемой равна сумме мощностей, одна из которых собственно мощность, обусловленная начальным током стабилизации, другая - мощность равная произведению разности напряжений входа и выхода на ток потребления остальной части
РТЕПЛ = РСТАБ + РПОТР = UAK×ICTAБ + (UAKK - UПИТ) IИНД (2.11)
РТЕПЛ = 12×0,01 + 7×0,1935 = 1,4745 Вт.
Т.к. микросхема способна рассеивать тепловую мощность до 5 Вт, приходим к выводу о нецелесообразности применения радиатора. Но для улучшения теплового режима в качестве радиатора используем фольгу печатной платы.
3. Проектирование печатного узла в САПР PCAD – 2001.
Проектировщик узла ПП радиоэлектронных средств (РЭС) обычно вместе с техническим заданием на проектирование получает на бумажном носителе и исходную электрическую схему. При этом состав электронной библиотеки с условными схемными обозначениями элементов в проектном подразделении может быть либо неполным, либо вообще отсутствовать. В этом случае такая библиотека должна пополняться силами сотрудников самого подразделения. Поэтому проектировщик должен владеть всем арсеналом средств системы (от создания условных графических элементов схем до получения рисунка печатной платы) и уметь в нужный момент использовать тот или иной программный модуль.
В одном из вариантов использования модулей системы P-CAD 2001 при выполнении процедур проектирования узлов печатных плат порядок выполнения следующий.
1). Создание условных графических обозначений (УГО) отдельных элементов электрических схем с помощью редактора символов Р-CAD Symbol Editor.
Графический редактор P-CAD Symbol Editor содержит набор команд, позволяющих создавать символы электрорадиоэлементов (ЭРЭ). Symbol Editor работает с файлами отдельных символов (.sym) и библиотек (.lib).
2). Разработка посадочных мест для всех конструктивных электрорадиоэлементов электрической принципиальной схемы с помощью редактора корпусов P-CAD Pattern Editor.
Графический редактор P-CAD Pattern Editor имеет набор команд, позволяющих создавать и редактировать посадочные места для установки ЭРЭ на печатных платах. Программа работает с файлами отдельных посадочных мест (.pat) и библиотек (.lib).
Посадочное место (ПМ) — это комплект конструктивных элементов печатной платы, предназначенный для монтажа отдельного ЭРЭ. В него входят в различных сочетаниях контактные площадки (КП), металлизированные отверстия, печатные проводники на наружных слоях и гладкие крепежные отверстия. Кроме этого ПМ может включать в себя параметры защитной и паяльной масок, элементы маркировки и графические элементы сборочного чертежа.
3). Упаковка выводов конструктивных элементов (перенос схемы на ПП) средствами программы P-CAD Library Executive.
При проектировании печатных плат необходимы сведения о схемных образах ЭРЭ и посадочных местах для них. Программы размещения и трассировки должны иметь информацию о соответствии каждого конкретного вывода условного графического обозначения выводу в корпусе элемента. В версии P-CAD 2001 эта работа выполняется автоматически программой Library Executive (Администратор библиотек). Для этого соответствующие данные заносятся в так называемые упаковочные таблицы, указывающие основные характеристики используемых ЭРЭ. В программе предусмотрены эффективные приемы работы, аналогичные приемам программных продуктов Microsoft Office. Эта программа не является графическим редактором. Она лишь сводит введенную ранее графическую информацию в единую систему — библиотечный элемент, в котором сочетаются несколько образов представления элемента: образ на схеме, посадочное место и упаковочная информация.
4). Разработка схемы электрической принципиальной с помощью графического редактора P-CAD Schematic.
Графический редактор P-CAD Schematic предназначен для разработки электрических принципиальных схем с использованием условных графических обозначений элементов. При этом УГО ЭРЭ могут извлекаться из соответствующей библиотеки или создаваться средствами самой программы.
Если не разрабатывается узел печатной платы, то при вычерчивании схем берутся УГО элементов, не связанные с их конструктивной базой. Такая схема может использоваться как иллюстративный материал. При возникновении необходимости разработки ПП ее надо дополнить соответствующей конструкторско-техноло-гической информацией.
При выполнении проекта с разработкой узла ПП схема должна формироваться из библиотечных элементов, которые включают полную информацию о конструктивных особенностях ЭРЭ и их посадочных местах на ПП.
5). Формирование контура печатной платы и размещение конструктивных элементов на ней с помощью графического редактора печатных плат P-CAD PCB.
Графический редактор P-CAD РСВ предназначен для выполнения работ, связанных с технологией разработки и конструирования узлов печатных плат. Он позволяет упаковывать схемы на плату, задавать размеры ПП, ширину проводников и величину индивидуальных зазоров для разных проводников, задавать размеры контактных площадок и диаметры переходных отверстий, экранные слои. Редактор позволяет выполнять маркировку ЭРЭ, их размещения, неавтоматическую трассировку проводников и формировать управляющие файлы для технологического оборудования.
Запуск программы осуществляется через кнопку «Пуск» с последующим выполнением в выпадающем меню команд программы P-CAD 2001 и P-CAD РСВ. В том случае, если на компьютере запущена одна из программ P-CAD 2001, необходимо щелкнуть ЛК по команде Utils. Откроется выпадающее меню, в котором несколько пунктов начинаются с аббревиатуры P-CAD. Щелчок мыши по P-CAD РСВ запустит программу. При этом действующая программа не закроется, а только свернется, и к ней всегда можно будет вернуться.
6). Трассировка проводников печатных плат:
- в ручном и интерактивном режимах средствами графического редактора печатных плат P-CAD PCB;
- в автоматическом режиме программами модуля P-CAD Autorouters, вызываемым из управляющей оболочки Р-CAD РСВ.
4. Расчёт показателей надёжности.
Расчет надежности заключается в определении показателей надежности изделия по известным характеристикам надежности составляющих компонентов и условиям эксплуатации. Данные для расчета надежности сведены в таблице 5, приведенной ниже:
Таблица 5. Параметры надежности элементов схемы |
|
|||||||
Наименование элементов |
Ni |
λоэ, ч-1 |
КН |
at |
aЭ |
Nλ0KнataB |
|
|
Микросхемы К555 |
8 |
0,02·10-6 |
0,6 |
3 |
10 |
2,88·10-6 |
|
|
Микросхемы КР142 ЕН |
1 |
0,02·10-6 |
0,6 |
3 |
10 |
0,36·10-6 |
|
|
Резисторы С2-23 |
3 |
0,002·10-6 |
0,5 |
3 |
10 |
0,09·10-6 |
|
|
Конденсаторы керамические |
1 |
0,03·10-6 |
0,25 |
3 |
10 |
0,225·10-6 |
|
|
Двухсторонняя печатная плата |
1 |
0,2·10-6 |
1 |
3 |
10 |
6·10-6 |
|
|
Пайка выводов ЭРЭ |
208 |
0,01·10-6 |
1 |
3 |
10 |
62,4·10-6 |
|
|
Контакт разъема |
36 |
0,02·10-6 |
1 |
3 |
10 |
21,6·10-6 |
|
|
|
||||||||
Ni – количество элементов;
λоэ – интенсивность отказов в нормальном режиме работы;
КН – коэффициент нагрузки; at – температурный коэффициент;
аЭ – коэффициент, учитывающий условия эксплуатации;
Коэффициенты нагрузки электрорадиоэлементов находятся по формулам:
ü для микросхем (4.1), где Iвыхmax – максимальный выходной ток; Iвхi – входной ток микросхем; n – число нагруженных входов;
ü для конденсаторов (4.2), где U – напряжение на обкладках;
ü для резисторов (4.3), где P – рассеиваемая мощность.
1) Среднее время наработки на отказ:
2) Вероятность безотказной работы устройства в течение 1 года работы:
3) Вероятность безотказной работы устройства в течение 5 лет работы:
5. Технологические процессы при изготовлении печатной платы.
Электрические и механические свойства современных электронных узлов основываются на пространственной комбинации электропроводящих, полупроводниковых и изоляционных материалов определенного химического состава. Для производства ЭРЭ, электронных узлов и их соединений привлекаются все известные методы, которые обеспечивают возможность создания определенных материалов и их обработку при очень точном соблюдении геометрических размеров. Это связано с тем, что требования к физическому функционированию аппаратуры, определяемые техническим прогрессом, влекут за собой все уменьшающиеся допуски на геометрию этих элементов. В последние десятилетия методы травления, гальваники, печати, процессы легирования и диффузии, а также механическая обработка получили стремительное развитие. Так, например, в настоящее время с помощью травления получают металлические структуры с шириной линий в несколько микрон, а сверлильный автомат для ПП позволяет за одну минуту просверлить свыше 2000 отверстий диаметром в несколько десятых долей миллиметра.
Необходимость изготовления большого числа элементов требует применения групповых методов обработки с очень высокой надежностью. Поэтому большое значение имеют дальнейшая автоматизация, точность и исследование всех факторов, влияющих на ход технологических операций. Ниже рассматриваются отдельные операции технологического процесса изготовления ПП.
1). Механическая обработка.
При изготовлении ПП используются механические методы обработки для создания отверстий и внешнего контура, а также для очистки поверхности фольги и стенок отверстий. Речь идет о пробивке, резке, сверлении, фрезеровании, шлифовании и способах очистки. Выбор метода производится с учетом обрабатываемого диэлектрика, требований к качеству обрабатываемой поверхности, а также экономичности в зависимости от размера партии.
При резке необходимо учитывать быстрое изнашивание резца, в основном, при обработке материалов на основе стекловолокна. Так как некоторые связующие слоистых диэлектриков при низкой температуре становятся хрупкими, а материалы заготовок при обработке склонны к расслоению, то в большинстве случаев необходимо работать с нагретыми материалами. При этом нужно учитывать влияние их теплового расширения на допуск в размещении отверстий. Общепринято считать, что структуру слоистых диэлектриков с помощью механических или термических воздействий изменять нельзя, так как в результате этого при дальнейшей обработке могут возникать дефекты, например при металлизации отверстий.
Бесстружечная обработка отличается особенно низкими затратами при использовании специальных инструментов. Кроме того, при этом исключается нагрев слоистых диэлектриков.
2). Производство покрытий.
Производство ПП известными методами (субтрактивным, аддитивным, послойного наращивания), так же как и производство ИМ, не обходится без нанесения различных металлических и неметаллических покрытий. Видом покрытий, необходимой точностью, размерами основания и покрываемой поверхности определяется большое разнообразие существующих методов нанесения покрытий. Для производства ПП значение имеют только те из них, которые обеспечивают при массовом производстве нанесение покрытий толщиной от 1 до 70 мкм. Важнейшими методами получения металлических и неметаллических покрытий являются трафаретная печать и термовакуумное испарение. Для получения только металлических покрытий применяют химическую и гальваническую металлизацию, а для получения только неметаллических покрытий — метод фотопечати (с нанесением фоторезиста погружением, вальцеванием и центрифугированием) и офсетную печать.
Рассмотрим более подробно субтрактивную технологию изготовления ПП.
|
Третий вариант (рис.3) применяется, при получении слоев печатных плат путем вытравливания проводящего рисунка по металлорезисту, осажденному на поверхность медных проводников,сформированных в рельефе пленочного фоторезиста, и на стенки металлизированных отверстий. Как и во втором варианте, пленочный фоторезист наслаивается на заготовки фольгированного диэлектрика, прошедшие операции сверления отверстий и предварительной (5-7 мкм) металлизации медью стенок отверстий и всей поверхности фольги. В процессе фотолитографии резиста защитный рельеф получают на местах поверхности металлизированной фольги, подлежащей последующему удалению травлением.
Проводящий рисунок формируется последовательным осаждением меди и металлорезиста по рисунку освобождений в рельефе пленочного фоторезиста и на поверхность стенок отверстий. После удаления рельефа пленочного фоторезиста незащищенные слои меди вытравливаются. Профиль поперечного сечения проводников, сформированный травлением по защитному изображению в фоторезисте,имеет форму трапеции, расположенной большим основанием на поверхности диэлектрика.
Анализ замеров ширины линий после травления медной фольги по защитному изображению в пленочном фоторезисте показывает, что интервал разброса значений замеров увеличивается с увеличением толщины фольги. Например, при травлении фольги толщиной 5 мкм интервал разброса ширины порядка 7 мкм, при травлении фольги толщиной 20 мкм разброс составляет 30 мкм , а при травлении фольги толщиной 35 мкм разброс составляет около 50 мкм. Искажения ширины медных проводников по отношению к размерам ширины изображений последних в фоторезисте и на фотошаблоне - негативе смещаются в сторону заужения.
Подготовка поверхностей заготовок под наслаивание пленочного фоторезиста с целью удаления заусенцев сверленых отверстий и наростов гальванической меди производится механической зачисткой абразивными кругами с последующей химической обработкой в растворе персульфата аммония или механической зачисткой водной пемзовой суспензией. Такие варианты подготовки обеспечивают необходимую адгезию пленочного фоторезиста к медной поверхности подложки и химическую стойкость защитных изображений на операциях проявления и травления. Кроме того, механическая зачистка пемзой дает матовую однородную поверхность с низким отражением света, обеспечивающая более однородное экспонирование фоторезиста.
Для получения изображений используется пленочный фоторезист толщиной 15-50 мкм. Толщина фоторезиста в случае метода "тентинг" диктуется требованиями целостности защитных завесок над отверстиями на операциях проявления и травления, проводимых разбрызгиванием растворов под давлением 1,6- 2 атм и более. Фоторезисты толщиной менее 45 - 50 мкм на этих операциях над отверстиями разрушаются. Для обеспечения надежного "тентинга", диаметр контактной площадки должен быть в 1,4 раза больше диаметра отверстия.
Минимальный поясок изображения контактной площадки (ширина между краем контактной площадки и отверстием) должен быть не менее 0,1 мм.
Рис. 3 |
Из вышеизложенного следует, что субтрактивная технология имеет ограничения по разрешению, т.е. минимально воспроизводимая ширина проводников и зазоров порядка 50 мкм при толщине проводников 5-9 мкм , 100-125 мкм при толщине проводников 20 -35 мкм или 150 - 200 мкм при толщине проводников 50 мкм. Для получения логических слоев с металлизированными переходами с более плотным печатным рисунком, с шириной проводников 125 мкм и менее, например, 100 мкм, при их толщине 50 мкм, используется технологический процесс по субтрактивной технологии травлением по металлорезисту (3-й вариант субтрактивной технологии) с использованием диэлектрика с тонкомерной фольгой, толщиной 5 - 9 мкм. В этом случае предварительная металлизация стенок отверстий и поверхности фольги заготовок диэлектрика производится на минимально возможную толщину 8 - 10 мкм. Условия получения изображения в пленочном фоторезисте отличны от условий процесса "тентинга". А именно, для получения изображений используются тонкие пленочные фоторезисты с более высоким разрешением и гальваностойкостью. Подготовка поверхности подложки под наслаивание пленочного фоторезиста из-за небольшой толщины фольги и металлизированного слоя и во избежание их повреждения, проводится химическим способом.
Фоторезист наслаивается по специально подобранному режиму: при низкой скорости наслаивания 0,5 м/мин, при температуре нагрева валков 115 град.С +-5 град.С, на подогретые до температуры 60 - 80 град.С заготовки. При экспонировании изображения используются установки с точечным источником света, обеспечивющие высококоллимированный интенсивный световой поток на рабочую поверхность копировальной рамы с автоматическим дозированием и контролем световой энергии.
Фотошаблоны -позитивы должны иметь резкость края изображения 3 - 4 мкм вместо 7 - 8 мкм у фотошаблонов, применяемых при получении изображений с разрешением 200 - 250 мкм. Проявление изображений проводится в установках проявления - процессорах в стабилизированном трихлорэтане.
Для удаления следов органики с медной поверхности подложки в каналах освобождений в рельефе пленочного фоторезиста проводится обработка в окислителе - в 20% растворе серной кислоты в течение 2-х минут с последующей промывкой в воде и калориферной сушкой в конвейерной струйной установке , после чего для повышения гальваностойкости защитного изображения проводится световое дубление в светокопировальных рамах по режимам экспонирования. Проводящий рисунок формируется в рельефе пленочного фоторезиста последовательным гальваническим осаждением меди на толщину 20-40 мкм и олово/свинца(ПОС-61 ) на толщину 9 -12 мкм или никеля на толщину 3-5 мкм.
После удаления фоторезиста производится травление медной фольги с металлизированным слоем суммарной толщиной 10-15 мкм с пробельных мест схемы. Для этого применяется травильная установка с медноаммиачным травильным раствором. В варианте использования металлорезиста ПОС-61 последний удаляется в травильном растворе в струйной конвейерной установке. При применении в качестве металлорезиста никеля сложность процесса в том, что слой никеля остается на поверхности проводника и несколько шире его медной части. Поэтому применение металлорезиста сплава олово/свинец с последующим его удалением является более технологичным процессом.
Из изложенного выше можно сделать вывод: изготовление слоев по субтрактивной технологии с применением диэлектриков с тонкой медной фольгой толщиной 5 - 9 мкм обеспечивается получение проводящего рисунка с минимальной шириной проводников и зазоров между ними порядка 50 мкм при толщине проводников 5-9 мкм и 100 - 125 мкм при толщине проводников 40-50 мкм.
3). Травление.
Важнейшей технологической операцией в производстве электронных элементов и функциональных узлов является травление. Под этим понимают химическое разрушение материала под действием газообразных или жидких травителей. Продукты реакции в общем случае удаляются благодаря подвижности травителя. Травление применяется для:
- создания определенного рисунка металлических слоев, расположенных на нетравящем диэлектрике (например, для получения рисунка ПП при субтрактивном методе);
- создания мельчайших отверстий микрометрового диапазона в металлической фольге при изготовлении сетчатых трафаретов, масок и фильтров;
- изготовления сложных профильных деталей из тонкой жести и металлической фольги (профильное травление);
- создания металлически чистых поверхностей для последующего осаждения слоев или контактирования;
- создания определенного рельефа поверхности;
- удаления изоляционных слоев для частичного обнажения металлических слоев (подтравливание в МПП).
Наиболее часто техника травления применяется для создания рисунка ПП при субтрактивном методе. При этом до 90% металлической фольги, нанесенной на диэлектрик фольгированием или напылением, удаляется, а нужные участки защищаются металлическими или лаковыми слоями, устойчивыми при травлении. В основном подвергают травлению металлы, особенно Сu и ее сплавы, Ni, сплавы Ni и Cr, Al, Au, Ag, Pt, Pd, Та, Ti, Mo, а также сталь. Кроме того, в производстве электронных элементов необходимо травить полупроводниковые материалы (Si, Ge) и диэлектрические слои (как правило, SiO2). Удаления неметаллов стремятся избежать, так как они очень устойчивы при травлении. Имеется всего несколько исключений, например травление стекла и эпоксидной смолы в отверстиях МПП.
4). Прессование.
Многослойные печатные платы изготавливают прессованием диэлектрических фольгированных материалов (с одно- или двухсторонним расположением печатных проводников) и прокладочной стеклоткани. Процесс основан на клеящей способности последней при тепловом воздействии.
Процесс прессования определяется характером изменения давления и температуры. Качество прессованного соединения зависит от множества факторов, важнейшими из которых являются: свойства прокладочной стеклоткани и момент перехода от давления склеивания, когда связующее переводится в клеящее состояние, к давлению отверждения.
Прокладочная стеклоткань обеспечивает:
- прочное сцепление с поверхностью диэлектрических материалов;
- заполнение места вытравленного медного слоя;
- ликвидацию воздушных включений между слоями за счет растекания смолы;
- необходимые зазоры между слоями;
- заданную толщину МПП.
5). Очистка.
При формировании структуры слоев и контактировании металлических выводов детали (подложки, поверхности контактов) должны обладать определенным состоянием поверхности, если нежелательны серьезные помехи в процессе производства, высокий процент брака и снижение надежности. Применяемые для этих целей процессы очистки обеспечивают удаление крупных загрязнений (органических и неорганических отложений, крупных продуктов коррозии); тонких пленок масла и жира; тонких пленок окислов; органических и неорганических защитных покрытий (резисты трафаретной печати, фоторезисты).
Тесно связаны с процессами очистки такие химические и механические процессы, которые наряду с очисткой способствуют изменению состояния поверхности (выглаживание, придание шероховатости) или удалению заусенцев, образующихся при механической обработке. Кроме того, разработан ряд методов очистки, использующих особые физические эффекты в соединении с химическими средствами, например ультразвуковая очистка. Особое внимание необходимо уделить очистке, основанной на промывке, нейтрализации и сушке.
6. Программная поддержка программатора.
6.1. Программирование микроконтроллеров серии АТ89.
Таблица 6. |
|||
Байты сигнатуры |
|||
Микросхема |
(Hex) |
||
1 |
2 |
3 |
|
АТ89С1051 |
1Е |
11 |
Нет |
AT89C1051U |
1Е |
12 |
Нет |
АТ89С2051 |
1Е |
21 |
Нет |
AT89C2051x2 |
1Е |
22 |
Нет |
АТ89С4051 |
1Е |
41 |
Нет |
АТ89С51 |
1Е |
51 |
FF |
АТ89С51-ХХХХ-5 |
1Е |
51 |
05 |
AT89LV51 |
1Е |
61 |
FF |
АТ89С52 |
1Е |
52 |
FF |
АТ89С52-хххх-5 |
1Е |
52 |
05 |
AT89LV52 |
1Е |
62 |
FF |
AT89S53 |
1Е |
53 |
Нет |
AT89LS53 |
1Е |
63 |
Нет |
АТ89С55 |
1E |
55 |
FF |
АТ89С55-ХХХХ-5 |
1E |
55 |
05 |
AT89LV55 |
1Е |
65 |
FF |
AT89S8252 |
1Е |
72 |
Нет |
AT89LS8252 |
1Е |
82 |
Нет |
Программа автоматически определяет тип установленного в одну из панелей микроконтроллера, анализируя для этого его сигнатуру – два или три байта, специально записанные в постоянной памяти. Перечень сигнатур микроконтроллеров семейства АТ89 приведен в таблице 6. Если все байты сигнатуры равны 0FFH, отсутствует в панели или неисправен микроконтроллер, а возможно – не включено питание программатора.
Рекомендуемая операционная среда – MS DOS. Пользователям Windows следует запускать программу, предварительно перезагрузив компьютер в режиме MS DOS или установить такой режим в свойствах файла. Иначе программирование микросхем придется повторять по три-четыре раза подряд, пока не прекратятся сообщения об ошибках верификации.
Весь процесс программирования занимает не более одной-двух минут, а собственно загрузка FLASH-памяти – максимум 10...15 с. Команды, список которых выведен на экран монитора, подают, нажимая клавиши с буквами латинского алфавита. Регистр (верхний или нижний) не имеет значения.
Имя двоичного файла, данные из которого должны быть загружены в память микроконтроллера, вводят после подачи команды "Чтение файла". Содержимое этой памяти можно предварительно прочитать и сохранить в аналогичном файле (команда "Запись в файл"). При сверке содержимого памяти с данными из файла (команда "Сверка с файлом") возможно появление на экране сообщений, подобных такому:
В ячейке FLASH 039A = FF ?! 6В
Это означает, что а ячейке FLASH-памяти (памяти программ) микроконтроллера по адресу 39АН записан код 0FFH вместо 6ВН, указанного в файле.
6.2. Исходный текст программы.
Программа написана на языке программирования Borland C++
// Программа для AT89C51/C52/C1051/C1052 программатора.
#include <stdio.h>
#include <string.h>
#include <graph.h>
#include <dos.h>
#define FALSE 0
#define TRUE -1
//#define PBASE 0x378 // LPT1 базовый адрес
//#define PBASE 0x278 // LPT2 базовый адрес
//#define PDATA (PBASE+0)
//#define PSTAT (PBASE+1)
//#define PCTRL (PBASE+2)
#define CHIPSIZE 2048 // AT89C1052 размер FLASH-памяти
#define TCVT (1.19318) // постоянная преобразования времни
// частота порядка 1E6
// Коды четырехбитных функций (передача в P3.6; P3.5; P3.4; P3.3).
#define WRITE_DATA 0xe
#define READ_DATA 0xc
#define WRITE_LOCK_1 0xf
#define WRITE_LOCK_2 0x3
#define CHIP_ERASE 0x1
#define READ_SIGNATURE 0x0
typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef unsigned int BOOLEAN;
typedef unsigned long int BIGINT;
BOOLEAN load_data( char *, BYTE *, int * );
BOOLEAN save_data( char *, BYTE *, int );
void erase( BYTE * );
void program( BYTE *, BYTE *, int );
void xread( BYTE *, BYTE *, int );
BOOLEAN verify( BYTE *, BYTE *, int );
BOOLEAN blank( BYTE * );
void signature( BYTE * );
void lock( BYTE *, int );
void reset( BYTE * );
void set_function( BYTE );
void set_data( BYTE );
BYTE get_data( void );
void enable_address( BYTE * );
void disable_address( BYTE * );
void enable_data( BYTE * );
void disable_data( BYTE * );
void enable_RST( BYTE * );
void disable_RST( BYTE * );
void pulse_RST( BYTE*, int );
void pulse_XTAL1( BYTE*, int );
void pulse( BYTE *, int );
void delay( BIGINT );
extern void tinit( void );
extern void tend( void );
extern void tread( void );
extern void disable_traps( void );
extern void enable_traps( void );
WORD pctrl, pdata; // Адреса регистра данных и регистра управления //LPT-порта
BIGINT tcount = 0L; // счет таймера
main(argc, argv)
int argc;
char *argv[];
{
FILE *fptr;
int fsize;
BYTE pgmdata[CHIPSIZE], control = 0;
char *pch, fname[20];
WORD far *p_lpt1 = (WORD far *)0x00400008;
WORD far *p_lpt2 = (WORD far *)0x0040000a;
if ((argc > 1) && ((pch = strpbrk( argv[1], "12" )) != NULL)) {
switch (*pch) {
case '1': // LPT1
pdata = *p_lpt1;
pctrl = *p_lpt1 + 2;
break;
case '2': // LPT2
pdata = *p_lpt2;
pctrl = *p_lpt2 + 2;
break;
}
if (pdata == 0) { // порт неопределен
puts( "SPP параллельный порт не установлен." );
exit( 255 );
}
} else {
puts( "Параллельный порт 1 или 2 должен быть определен в командной строке." );
puts( " Использование: <fname> <LPT1 | LPT2>" );
exit( 255 );
}
tinit(); // запускаем таймер
disable_traps(); // запрещаем ctl-C и ctl-break
while (TRUE) {
_clearscreen( _GCLEARSCREEN );
puts( "Стирание чипа\t\tD\n" );
puts( "Программа из файла \tF" );
puts( "Сравнение данных на чипе с файлом\tG" );
puts( "Запись в файл\t\tH\n" );
puts( "Проверка: чистый чип или нет\t\tI\n" );
puts( "Чтение сигнатуры\t\tJ\n" );
puts( "Запись Lock Bit 1\tL" );
puts( "Запись Lock Bit 2\tN\n" );
puts( "Выход\t\t\tX\n\n" );
printf( "Ваш выбор: " );
gets( pch );
*pch |= 0x20; //конвертируем первый символ в нижний регистр
switch (*pch) {
case 'd': // стирание чипа
erase( &control );
break;
case 'f': // запись чипа из файла
printf( "Введите имя файла: " );
gets( fname );
fsize = CHIPSIZE;
if (load_data( fname, pgmdata, &fsize ))
program( &control, pgmdata, fsize );
else {
_clearscreen( _GCLEARSCREEN );
puts( "Ошибка открытия или чтения входного файла данных." );
puts( "\nНажмите Enter для продолжения..." );
gets( pch );
}
break;
case 'g': // сравнивание содержимого чипа с файлом
printf( " Введите имя файла: " );
gets( fname );
fsize = CHIPSIZE;
if (load_data( fname, pgmdata, &fsize )) {
if (!verify( &control, pgmdata, fsize )) {
puts( "\nНажмите Enter для продолжения..." );
gets( pch );
}
} else {
_clearscreen( _GCLEARSCREEN );
puts( " Ошибка открытия или чтения входного файла данных." );
puts( "\nНажмите Enter для продолжения..." );
gets( pch );
}
break;
case 'h': // запись содержимого чипа в файл
printf( " Введите имя файла: " );
gets( fname );
xread( &control, pgmdata, CHIPSIZE );
if (!save_data( fname, pgmdata, CHIPSIZE )) {
_clearscreen( _GCLEARSCREEN );
puts("Ошибка открытия или чтения выходного файла данных.");
puts( "\Нажмите Enter для продолжения..." );
gets( pch );
}
break;
case 'i': // проверка: пустой чип или нет
_clearscreen( _GCLEARSCREEN );
if (blank( &control ))
puts( "Устройство чистое" );
else
puts( " Устройство не чистое " );
puts( "\nНажмите Enter для продолжения..." );
gets( pch );
break;
case 'j': // чтение байтов сигнатуры
_clearscreen( _GCLEARSCREEN );
signature( &control );
puts( "\nНажмите Enter для продолжения..." );
gets( pch );
break;
case 'l': // запись Lock Bit 1
lock( &control, 1 );
break;
case 'n': // запись Lock Bit 2
lock( &control, 2 );
break;
case 'x': // выход из программы
default:
_clearscreen( _GCLEARSCREEN );
tend(); // выключаем таймер
enable_traps();
exit( 0 );
}
}
}
// Чтение данных из введенного файла в указанный массив. Если
// файл меньше чем указанное количество байт, читаем полный файл
// и изменяем количество байт, чтобы отразить меньший размер файла.
// Сталкиваясь с концом файла раньше, чем удовлетворено количество
// байт – не ошибка. Если файл больше чем указанное количество байт
// читаем только указанное количество байт.
BOOLEAN load_data( fname, store, sptr )
char fname[];
BYTE store[];
int *sptr;
{
FILE *fptr;
int nbytes;
if ((fptr = fopen( fname, "rb" )) == NULL)
return( FALSE ); // не удается открыть файл
nbytes = fread( store, 1, *sptr, fptr );
if (ferror( fptr ))
return( FALSE ); // не удается прочитать файл
if (feof( fptr )) // проверка на конец файла
*sptr = nbytes; // уменьшаем количество байт
fclose( fptr );
return( TRUE );
}
// Запись данных из указанного массива в обозначенный файл.
// Возвращает булево значение, обозначающее успех или неудачу.
BOOLEAN save_data( fname, store, bcount )
char fname[];
BYTE store[];
int bcount;
{
FILE *fptr;
if ((fptr = fopen( fname, "wb" )) == NULL)
return( FALSE ); // не удается открыть файл
if (fwrite( store, 1, bcount, fptr ) != bcount)
return( FALSE ); // не удается записать в файл
fclose( fptr );
return( TRUE );
}
// Полная очистка памяти предложенная перед программированием.
void erase( cptr )
BYTE *cptr;
{
reset( cptr ); // сброс по умолчанию
set_function( CHIP_ERASE ); // выбор функции
enable_address( cptr ); // разрешение func, PROG*
delay( (BIGINT)(10 * TCVT) ); // задержка 10мкс
enable_RST( cptr ); // RST=12v
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс фронт RST ->PROG*
pulse( cptr, 10000 ); // применение 10 мс импульса PROG*
delay( (BIGINT)(10 * TCVT) ); // задержка PROG*->adr/data
reset( cptr ); // сброс по умолчанию
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс для спада RST
}
// Программируем чип содержанием указанного массива данных.
// Указанное количество байт может быть меньше чем количество
// байт в массиве или чипе. Программирование всегда начинается с
// нулевого адреса.
void program( cptr, data, count )
BYTE *cptr, data[];
int count;
{
WORD addr;
reset( cptr ); // сброс по умолчанию
pulse_RST( cptr, 10 ); // сброс счетчика адресов
set_function( WRITE_DATA ); // выбор функции
enable_address( cptr ); // разрешение function, PROG*
enable_data( cptr ); // разрешение шины перед записью
delay( (BIGINT)(10 * TCVT) ); // задержка function->RST
enable_RST( cptr ); // RST=12v
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс фронт RST ->PROG*
for (addr=0; addr<count; addr++) {
set_data( data[addr] ); // применение data
delay( (BIGINT)(10 * TCVT) ); // задержка data->PROG*
pulse( cptr, 100 ); // применение 100 мкс импульса PROG*
delay( (BIGINT)(1500 * TCVT) ); // задержка 1.5 мс для записи
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
}
reset( cptr ); // сброс по умолчанию
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс для спада RST
}
// Чтение содержимого чипа в указанный массив данных
// Указанное количество байт может быть меньше чем количество
// байтов в чипе. Чтение всегда начинается с нулевого адреса.
void xread( cptr, data, count )
BYTE *cptr, data[];
int count;
{
BYTE tmp;
WORD addr;
reset( cptr ); // сброс по умолчанию
pulse_RST( cptr, 10 ); // сброс счетчика адресов
set_function( READ_DATA ); // выбор функции
enable_address( cptr ); // разрешение function, PROG*
for (addr=0; addr<count; addr++) {
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
data[addr] = get_data();
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
}
reset( cptr ); // сброс по умолчанию
}
// Сравнение содержания чипа с указанным массивом данных.
// Указанное количество байт может быть меньше количества
// байт в чипе. Сравнение всегда начинается с нулевого адреса.
// Различия отображаются адресом несовпадающих значений и
// два байта: один – из памяти микроконтроллера, другой – тем,
// что ожидали. Возвращенное булево значение показывает
// было ли успешным сравнение.
BOOLEAN verify( cptr, data, count )
BYTE *cptr, data[];
int count;
{
BYTE tmp;
BOOLEAN flag=TRUE;
WORD addr;
reset( cptr ); // сброс по умолчанию
pulse_RST( cptr, 10 ); // сброс счетчика адресов
set_function( READ_DATA ); // выбор функции
enable_address( cptr ); // разрешение function, PROG*
for (addr=0; addr<count; addr++) {
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
if ((tmp = get_data()) != data[addr]) {
if (flag) {
_clearscreen( _GCLEARSCREEN );
}
printf("Несовпадение в %.4X is %.2X sb %.2X\n", addr, tmp, data[addr] );
flag = FALSE;
}
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
}
reset( cptr ); // сброс по умолчанию
return( flag );
}
// Определяем, стерт ли чип. Расположение отказов не определяется.
// Возвращенное булево значение указывает чистый чип или нет.
BOOLEAN blank( cptr )
BYTE *cptr;
{
BYTE tmp;
BOOLEAN flag = TRUE; // значение по умолчанию – чистый
WORD addr;
reset( cptr ); // сброс по умолчанию
pulse_RST( cptr, 10 ); // сброс счетчика адресов
set_function( READ_DATA ); // выбор функции
enable_address( cptr ); // разрешаем function, PROG*
for (addr=0; addr<CHIPSIZE; addr++) {
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
if (get_data() != 0xff) // сравнение со стертым значением
flag = FALSE; // не чистый
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
}
reset( cptr ); // сброс по умолчанию
return( flag );
}
// Читаем байты сигнатуры.
// Первый байт в нулевом адресе, второй в первом. Когда установлены в
// 1Еh и 11h соответственно они идентифицируют АТ89С1051 контроллер.
// Третий байт во втором адресе указывает программирование 12 вольтами,
// когда установлен в FFh.
void signature( cptr )
BYTE *cptr;
{
BYTE tmp1, tmp2, tmp3;
reset( cptr ); // сброс по умолчанию
pulse_RST( cptr, 10 ); // сброс счетчика адресов
set_function( READ_SIGNATURE ); // выбор функции
enable_address( cptr ); // разрешаем func, PROG*
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
tmp1 = get_data(); // чтение первого байта
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
tmp2 = get_data(); // чтение второго байта
pulse_XTAL1( cptr, 10 ); // увеличиваем счетчик адресов
delay( (BIGINT)(10 * TCVT) ); // задержка address->data
tmp3 = get_data(); // чтение третьего байта
printf( "signature byte 1: %.2X\n", tmp1 );
printf( "signature byte 2: %.2X\n", tmp2 );
printf( "signature byte 3: %.2X\n", tmp3 );
reset( cptr ); // сброс по умолчанию
}
// Запись указанных Lock Bits.
void lock( cptr, lbit )
BYTE *cptr;
int lbit;
{
reset( cptr ); // сброс по умолчанию
switch (lbit) { // выбор функции
case 1:
set_function( WRITE_LOCK_1 );
break;
case 2:
set_function( WRITE_LOCK_2 );
break;
}
enable_address( cptr ); // разрешение function, PROG*
enable_RST( cptr ); // RST=12В
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс фронт RST ->PROG*
pulse( cptr, 100 ); // применение 100 мкс импульса PROG*
delay( (BIGINT)(10 * TCVT) ); // задержка PROG*->adr/data
reset( cptr ); // сброс по умолчанию
delay( (BIGINT)(15000 * TCVT) ); // задержка 15 мс для спада RST
}
// Возвращение программатора в пассивное состояние.
void reset( cptr )
BYTE *cptr;
{
outp( pdata, 0 ); // установка данных
outp( pctrl, 0x08 ); // выбираем control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x0c ); // выбираем нижний адрес latch
outp( pctrl, 0x0d ); // latch data
outp( pctrl, 0x0c );
outp( pctrl, 0x00 ); // выбираем верхний адрес latch
outp( pctrl, 0x01 ); // latch data
outp( pctrl, 0x00 );
outp( pdata, 0xff ); // установка данных
outp( pctrl, 0x04 ); // выбираем data latch
outp( pctrl, 0x05 ); // latch data
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
*cptr = 0; // запись значения control latch
}
// Подпрограмма выбора функции.
// Записывается только 3 младших значащих бита
void set_function( func )
BYTE func;
{
outp( pdata, ((func << 5) | 0x1f) );
// Установка 3-х младших бит функции
outp( pctrl, 0x00 ); // выбираем старший адрес latch
outp( pctrl, 0x01 ); // latch data
outp( pctrl, 0x00 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Запись указанного значения в программатор.
void set_data( outdata )
BYTE outdata;
{
outp( pdata, outdata ); // установка выходных данных
outp( pctrl, 0x04 ); // выбор data latch
outp( pctrl, 0x05 ); // latch data
outp( pctrl, 0x04 );
// outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Данные возврата подают на линии данных программатора.
// Сначала нельзя запретить latch выходных данных программатора.
// Некоторые платы параллельного интерфейса позволяют заблокировать
// буфер выходных данных устанавливая 5-й бит в регистре управления.
BYTE get_data( void )
{
BYTE tmp;
outp( pdata, 0xff ); // установка данных LPT порта в высокое состояние
outp( pctrl, 0x24 ); // запрещение передачи данных LPT порта
outp( pctrl, 0x26 ); // разрешение чтения буфера данных
delay( (BIGINT)(10 * TCVT) ); // задержка 10 мкс
tmp = inp( pdata ); // получение данных
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
return( tmp );
}
// Разрешение выводов программатора: address and function latches.
// PROG* (P3.2) также разрешен.
void enable_address( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr |= 0x10) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Запрещение выводов программатора: address and function latches.
// PROG* (P3.2) также запрещен.
void disable_address( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr &= ~0x10) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Разрешение вывода данных программатора.
void enable_data( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr |= 0x20) ); // set up data
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Запрещение вывода данных программатора.
void disable_data( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr &= ~0x20) ); // set up data
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Разрешение 12 вольт на RST.
// Обратите внимание, что RST не сможет мгновенно достигнуть
// указанного значения.
void enable_RST( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr |= 0x80) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Возвращение RST к 5 вольтам.
// Обратите внимание, что RST не сможет мгновенно достигнуть
// указанного значения.
void disable_RST( cptr )
BYTE *cptr;
{
outp( pdata, (*cptr &= ~0x80) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Генерируем низко идущий импульс на RST указанной продолжительности. // Время должно быть определено в микросекундах.
void pulse_RST( cptr, time )
BYTE *cptr;
int time;
{
outp( pdata, (*cptr |= 0x40) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
delay( (BIGINT)(time * TCVT) ); // ждем указанное количество
outp( pdata, (*cptr &= ~0x40) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Генерируем высоко идущий импульс на XTAL1 указанной
// продолжительности. Время должно быть определено в микросекундах.
void pulse_XTAL1( cptr, time )
BYTE *cptr;
int time;
{
outp( pdata, (*cptr |= 0x02) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
delay( (BIGINT)(time * TCVT) ); // ждем указанное количество
outp( pdata, (*cptr &= ~0x02) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Генерируем низко идущий импульс на PROG* указанной
// продолжительности. Время должно быть определено в микросекундах.
void pulse( cptr, time )
BYTE *cptr;
int time;
{
outp( pdata, (*cptr |= 0x04) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
delay( (BIGINT)(time * TCVT) ); // ждем указанное количество
outp( pdata, (*cptr &= ~0x04) ); // установка данных
outp( pctrl, 0x08 ); // выбор control latch
outp( pctrl, 0x09 ); // latch data
outp( pctrl, 0x08 );
outp( pctrl, 0x04 ); // сигналы управления неактивны
outp( pdata, 0 ); // очистка данных
}
// Задержка на указанную продолжительность. Каждый тик равен
// 1/1193180 секунды (0,838мкс)
void delay( xcount )
BIGINT xcount;
{
BIGINT count0;
// printf( "Счет таймера= %lu\n", xcount );
tread(); // чтение счета таймера
count0 = tcount; // установка начального значения
do // повторение пока дельта >= указанного значения
tread(); // чтение значения таймера
while (tcount - count0 < xcount);
}
7. Моделирование схемы в системе автоматизированного проектирования OrCAD
Рис 7.1. Схема электрическая принципиальная
Все элементы схемы были выбраны командой Place/Part. Для симуляции сигналов нужно создать правило с помощью команды Pspice/New Simulation Profile, далее настроив его можно приступать к симуляции процесса. Также нужно поставить маркеры напряжения, тока в том месте в котором хотелось бы видеть процесс. В данном случае на базу транзистора должен подаваться логический сигнал с микроконтроллера, который мы создали в редакторе сигналов Stimulus Editor. Для перехода в него нужно выделить элемент DigStim, нажать на правую кнопку и выбрать Edit Pspice Stimulus. При
Рис 7.3. Главное окно Pspice A/D
Создав этот сигнал можно переходить к симуляции нашего процесса, при нажатии Pspice/Run мы переходим в Pspice A/D (рис 4.3)
В данном окне видно изменение напряжения в том месте нашей схемы в которой мы поставили маркер. Для общей видимости зависимости сигнала на коллекторе транзистора от сигнала с микроконтроллера можно вывести сигнал последнего, нажатием на Trace/Add Trace… мы увидим цифровой сигнал который попадает на базу транзистора.
Выводы.
В работе рассмотрено создание программатора микроконтроллеров Atmel серии АТ89 с подключением к LPT-порту компьютера. Была разработана электрическая схема, печатная плата и сборочный чертеж, показывающие, что программатор микроконтроллеров Atmel серии АТ89 может быть спроектирован и после изготовлен на элементной базе, выпускаемой предприятиями СНГ.
Требования технического задания выполнены полностью.
Все выполненные расчеты подтверждают работоспособность конструкции и позволяют сделать вывод об успешном ее функционировании при воздействии на нее допустимых климатических и механических воздействий.
Графическая часть и приведенные в настоящем проекте результаты расчетов подтверждают, что задание на курсовое проектирование выполнено в полном объеме.
Литература.
1. Голубков А. Программатор МК Atmel серии АТ89. – Радио, 2003, №9, с. 24 – 25.
2. Рюмик С. “Параллельный” программатор для АТ89. – Радио, 2004, №2, с. 28 – 31.
3. Мактас М. Я. Восемь уроков по P-CAD - М.: солон-Пресс, 2003.-224с.:ил.
4. AT89 Series Programmer Interface <http://www.atmel.com/dyn/resources/ prod_documents/APCPGM.EXE >.
5. Ханке Х.-И., Фабиан Х. Технология производства радиоэлектронной аппаратуры: Пер. с нем./ Под ред. В. Н. Черняева. – М.: Энергия. 1980. – 464 с., ил.
6. Ванін В. В., Бліок А. В., Гнітецька Г. О. Оформлення конструкторської документації. Навчальний посібник. – К.: “Каравела”, 2003. – 160 с.
7. Партала О. Н. Радиокомпоненты и материалы: Справочник. – К.: Радіоаматор, М.: КУбК-а, 1998. – 720с.: ил.
ГОСТ 23751-86. Платы печатные. Основные параметры и размеры.