Меню
Поиск



рефераты скачать Параллельный программатор для микроконтроллеров Atmel серии АТ89

После удаления фоторезиста производится травление медной фольги с металлизированным слоем суммарной толщиной 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

11

Нет

AT89C1051U

12

Нет

АТ89С2051

21

Нет

AT89C2051x2

22

Нет

АТ89С4051

41

Нет

АТ89С51

51

FF

АТ89С51-ХХХХ-5

51

05

AT89LV51

61

FF

АТ89С52

52

FF

АТ89С52-хххх-5

52

05

AT89LV52

62

FF

AT89S53

53

Нет

AT89LS53

63

Нет

АТ89С55

1E

55

FF

АТ89С55-ХХХХ-5

1E

55

05

AT89LV55

65

FF

AT89S8252

72

Нет

AT89LS8252

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(


          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':       // сравнивание содержимого чипа с файлом

Страницы: 1, 2, 3, 4, 5, 6




Новости
Мои настройки


   рефераты скачать  Наверх  рефераты скачать  

© 2009 Все права защищены.