43804
Разрушительные процессы, происходящие в изоляции кабельных линий электропередач
Дипломная
Коммуникация, связь, радиоэлектроника и цифровые приборы
Токопроводящие жилы предназначены для прохождения электрического тока, они бывают основными и нулевыми. Основные жилы применяются для выполнения основной функции силового кабеля- передачи по ним электроэнергии. Нулевые жилы предназначены для протекания разности токов фаз (полюсов) при неравномерной их нагрузке.
Русский
2013-11-07
313.46 KB
27 чел.
Введение 4
1. Обзор существующих видов кабельной изоляции и их свойств 6
1.1 Назначение и конструкция силовых кабелей 6
1.1.1 Силовой кабель для напряжения от 1 до 10 кВ 7
1.1.2 Силовой кабель для напряжения до 30 кВ 8
1.1.3 Силовой кабель на напряжение 110 кВ и выше 8
1.2. Виды кабельной изоляции 9
1.2.1 Резиновая изоляция 11
1.2.2 Полиэтиленовая изоляция 13
1.2.3. Поливинилхлоридная изоляция 14
1.2.4 Изоляция из пропитанной бумаги 16
1.2.5. Изоляция из фторопласта (политетрафторэтилена) 17
1.2.6 Некоторые другие виды изоляционных материалов КЛЭП 18
1.2.6.1 Изоляция из опрессованной окиси магния 18
1.2.6.2 Эмалевая изоляция 20
1.2.6.3 Изоляция из волокнистых материалов 24
1.2.6.4 Изоляция из нагревостойких волокон 26
1.2.6.5 Изоляция из полистирола 28
1.2.6.6 Минеральная изоляция 29
2. Обзор существующих устройств и методов 32
2.1 Краткое описание методов электрических измерений сопротивления изоляции 32
2.2 Методика измерения сопротивление изоляции электроустановок 34
2.2.1 Измерения при снятом рабочем напряжении. 35
2.2.2 Измерения в сетях постоянного тока 37
2.2.2.1 Метод трех отсчетов вольтметра. 39
2.2.3 Измерение сопротивления изоляции мегаомметром 45
3. Разработка устройства 46
3.1 Разработка методики измерения процессов старения изоляции 46
3.2 Разработка структурной схемы устройства. 48
3.3 Разработка печатной платы и создание устройства 50
3.4 Разработка программного обеспечения для устройства 52
4. Проведение экспериментов 52
5. Заключение 53
6. Библиографический список 54
Приложение А. 57
Приложение Б. 58
Введение
Актуальность: На сегодняшний день для передачи и распределения электрической энергии часто используются кабельные линии электропередач. В связи с малым индуктивным сопротивлением и возможной близостью прокладки фаз кабели всё чаще и чаще используют в процессе электроснабжения. Кроме того, кабельные линии отлично вписываются в обстановку в городских условиях не портя эстетичности вида, особенно при прокладке под землёй. Но избежать повреждений кабельных линий, исключить аварийные ситуации при работе и увеличить срок их эксплуатации, даже при использовании известных на сегодняшний день средств контроля и защиты, пока что в полной мере не удаётся. Уменьшив число повреждений можно посредством методов современной диагностики и прогнозирования, увеличить срок эксплуатации кабельных линий, а так же добиться снижения времени перерыва электроснабжения, иметь значительную экономию капитала, затрачиваемого на ремонт оборудования, питающих линий или их замену. Отключая элемент сети, наиболее вероятно выйдущий из строя в ближайшее время до возникновения пробоя, аварии или другой ситуации можно получить ряд преимуществ, по сравнению с существующими видами защиты и контроля изоляции. Известно много случаев, когда ни работа квалифицированного персонала, ни защита и другое специальное оборудование не предотвращали аварий, выгорания кабелей, нарушения электроснабжения и других более серьезных последствий.
С каждым годом растёт число кабельных линий, выработавших нормативный срок службы в 30 лет, установленный заводом-изготовителем. Из-за старения изоляции и достаточно большой протяжённости городских кабельных сетей у обслуживающего персонала увеличивается объём работы, связанный с осмотром кабельных трасс, выездом на место повреждений, проведением высоковольтных испытаний и ремонтов. Это сказывается на условиях труда персонала и безопасности проживающего вблизи трасс населения.
На первый взгляд, решение этого вопроса заключается в замене старых кабелей новыми и современными, например, из сшитого полиэтилена. Замена таких кабелей займёт много времени, потребует больших физических и финансовых затрат, а воздействие на изоляцию факторов, которые сокращают срок службы кабеля, останется. В этом случае возникает проблема определения механизма воздействия на изоляцию факторов, характерных для конкретных участков городской сети, для которых прогноз повреждаемости изоляции кабельных линий будет достоверным.
Таким образом, работа по разработке устройства для измерения и контроля за процессами старения изоляции является актуальной и востребованной.
Цель: разработка методики контроля состояния изоляции, разработка структурной схемы устройства, разработка печатной платы, создание устройства, разработка программного обеспечения для устройства.
Объект и предмет исследования: разрушительные процессы, происходящие в изоляции кабельных линий электропередач являются объектом исследования, предмет исследования частичные разряды, количество и кажущийся заряд которых указывает на скорость развития этих процессов и место развивающейся аварии.
Научная новизна: новизна заключается в применении современной элементной базы для создания устройства, разработке нового метода контроля состояния изоляции и вычисления ее остаточного ресурса путем описания разрушающих процессов в изоляции характерной картиной частичных разрядов и учета влияния на изоляцию внешних факторов.
Теоретическая значимость и прикладная ценность: создание устройства позволит накопить статистику и построить зависимости времени старения изоляции от воздействия неблагоприятных факторов, что позволит, имея данные о воздействии этих факторов, рассчитывать остаточный ресурс изоляции.
1. Обзор существующих видов кабельной изоляции и их свойств
Силовые кабели предназначены для передачи по ним на расстояние электроэнергии, используемой для питания электрических установок. Они имеют одну или несколько изолированных жил, заключенных в металлическую или неметаллическую оболочку, поверх которой в зависимости от условий прокладки и эксплуатации может иметься соответствующий защитный покров и в необходимых случаях броня. Силовые кабели состоят из следующих основных элементов: токопроводящих жил, изоляции, оболочек и защитных покровов. Помимо основных элементов в конструкцию силовых кабелей могут входить экраны, нулевые жилы, жилы защитного заземления и заполнители.
Токопроводящие жилы предназначены для прохождения электрического тока, они бывают основными и нулевыми. Основные жилы применяются для выполнения основной функции силового кабеля- передачи по ним электроэнергии. Нулевые жилы предназначены для протекания разности токов фаз (полюсов) при неравномерной их нагрузке. Они присоединяются к нейтрали источника тока. Жилы защитного заземления являются вспомогательными жилами силового кабеля и предназначены для соединения не находящихся под рабочим напряжением металлических частей электроустановки, к которой подключен силовой кабель, с контуром защитного заземления источника тока. Изоляция служит для обеспечения необходимой электрической прочности токопроводящих жил силового кабеля по отношению друг к другу и к заземленной оболочке (земле). Экраны используются для защиты внешних цепей от влияния электромагнитных полей токов, протекающих по силовому кабелю, и для обеспечения симметрии электрического поля вокруг жил кабеля. Заполнители предназначены для устранения свободных промежутков между конструктивными элементами силового кабеля в целях герметизации, придания необходимой формы и механической устойчивости конструкции кабеля. Оболочки защищают внутренние элементы кабеля от увлажнения и других внешних воздействий. Защитные покровы предназначены для защиты оболочки силового кабеля от внешних воздействий. В зависимости от конструкции кабеля в защитные покровы входят подушка, бронепокров и наружный покров. [3]
1.1.1 Силовой кабель для напряжения от 1 до 10 кВ
Силовой кабель для напряжения от 1 до 10 кв изготавливается с секторными медными и алюминиевыми жилами, с бумажной изоляцией, пропитанной маслоканифольной смесью, в свинцовой или алюминиевой оболочке, поверх которой накладывается броня, защищающая оболочку кабеля от механических воздействий, и антикоррозионные покровы. Силовой кабель такой же конструкции с круглыми жилами, резиновой изоляцией и в резиновом шланге (без свинцовой оболочки) обладает большей гибкостью. Однако его нестойкость во времени (старение) и ухудшение электрических характеристик за счет влажности ограничивают срок службы; он применяется главным образом для прокладки внутри помещений. Во всех силовых кабелях с общей поясной изоляцией электрическое поле в изоляции имеет нерадиальный характер, что ведет к ослаблению электрической прочности изоляции; поэтому силовой кабель с нерадиальным полем применяется только для изготовления трехжильных кабелей на напряжение до 10 кв. Радиальное поле получается при экранировании слоя изоляции на каждой жиле наложением поверх изоляции металлической ленты (экрана) или металлической оболочки. Все кабели на напряжение выше 10 кв изготавливаются только с радиальным полем.
Силовые кабели среднего напряжения (до 30 кВ) с изоляцией из шитого полиэтилена (VPE) обладают очень хорошими элктрическими, механическими и теплофизическими свойствами. Этот материал идеальный по своим химическим свойствам при экстремальных снижениях температуры. Неизменность параметров в широком диапазоне рабочих температур плюс водостойкость и низкий коэффициент диалектических потерь. Силовые кабели среднего напряжения применяются для установки на подстанциях, в закрытых помещениях и в кабельных каналах, на открытом воздухе и в земле, в изделии, а также как для установки на кабельных лотках для промышленности, так и для коммутационных узлов и электростанций.
Силовой кабель на напряжение 110 кВ и выше изготавливаются в виде отдельных изолированных и освинцованных жил, которые прокладываются совместно в зависимости от условий эксплуатации. Бумажная изоляция в таких силовых кабелях пропитывается минеральным маслом малой вязкости и высокой степени очистки и дегазификации; масло в них всегда находился под некоторым избыточным давлением от 1 до 15 am (кабели маслонаполненные низкого и высокого давлений), что обеспечивает высокую надежность их работы и практическую возможность их изготовления до 600 кв переменного тока. Для напряжений до 275 кв применяются также силовые кабели с наполнением газом (азотом) под давлением 15 am (газонаполненный кабель). Основные характеристики силового кабеля: электрическая прочность; тепловые характеристики, определяющие нагрузочную способность; потери электроэнергии при передаче, старение изоляции и коррозионная стойкость защитных оболочек и покровов. Надежность работы силового кабеля под напряжением определяется величиной максимальной напряженности электрического поля.Для современных сверхвысоковольтных силовых кабелей рабочая напряженность поля доходит до 15 - 17 кВ/мм для переменного тока и до 20 - 25 кВ/мм - для постоянного.
1.2. Виды кабельной изоляции
По виду изоляционного материала все виды изоляции кабельных линий можно разделить на след. группы:
В зависимости от номинального напряжения и конструктивных особенностей кабельных изделий изоляция разделяется на следующие категории:
И-1 - для кабельных изделий в оболочке на номинальное переменное напряжение до 220 В (для систем 220/380 В) или постоянное напряжение до 700 В включительно;
И-2 - для кабельных изделий без оболочки на номинальное переменное напряжение до 220 В (для систем 220/380 В) или постоянное напряжение до 700 В включительно;
И-3 - для кабельных изделий в оболочке на номинальное переменное напряжение от 220 В (для систем 220/380 В) до 400 В (для систем 400/660 В) или постоянное напряжение от 700 В до 1000 В включительно;
И-4 - для кабельных изделий без оболочки на номинальное переменное напряжение от 220 В (для систем 220/380 В) до 400 В (для систем 400/660 В) или постоянное напряжение от 700 В до 1000 В включительно;
И-5 - для кабельных изделий на номинальное переменное напряжение от 400 В (для систем 400/660 В) до 1800 В (для систем 1800/3000 В) или постоянное напряжение от 1000 В до 6000 В включительно;
И-6 - для кабельных изделий на номинальное переменное напряжение от 3600 В (для систем 3600/6000 В).
Номинальное напряжение систем представлено сочетание двух значений: действующего значения напряжения между любым изолированным проводником и "землей" (металлической оболочкой кабеля или окружающей средой) действующим значением между любыми двумя фазными проводниками многожильного кабеля или системы одножильных кабелей.
При обозначении категории изоляции добавляют индексы: Р - для резиновой изоляции; П - для пластмассовой изоляции (полиэтиленовой или из поливинилхлоридного пластиката).
Если в технических условиях на кабельные изделия не оговорены толщины изоляции, то для резиновой и пластмассовой изоляции могут использоваться нормы, данные в ГОСТ 23286-78. Этот ГОСТ не распространяется на кабели связи, судовые, шахтные, геофизические, грузонесущие, беструбной прокладки во взрывоопасных помещениях и на кабели и провода с изоляцией на основе бутилкаучука.
Для кабелей и проводов применяют резиновую, пластмассовую, пропитанную бумажную, фторопластовую и другие виды изоляции.
Резиновая изоляция изготавливается на основе натуральных или синтетических (бутадиеновых, бутиловых и др.) каучуков. Используются следующие типы установленных ГОСТом изоляционных резин: РТИ-0, РТИ-1, РТИ-2, РНИ, классифицируемые в зависимости от содержания каучука. Ранее использовалась резина типа РТЭПИ-1, РТСИ-1(повышенной нагревостойкости), РТИШ (изоляция выполняет роль защиты кабелй и проводов, работающих в средних и легких условиях) и РТИШМ (то же, что и РТШИ, морозостойкая).
Резина типов РТИ-0, РТИ-1, РНИ, РТИШ и РТШИМ предназначены для изоляции токопроводящих жил, прололжительно работающих при температуре до +65оС, типа РТЭПИ-1 до +85оС, типа РТСИ-1 до +180оС. На основве каучука и кремнийорганических спиртов произфодится кремнийорганическая резина, обладающая более высокими электрофизическими свойствами, например она длительно устойчива к воздействию температур в диапазоне от -60оС до +200оС. В процессе эксплуатации с течением времени свойства резин ухудшаются - происходит "старение". [3]
Таблица 1 - Физико-механические свойства резин до старения
Типы резины |
Разрушающее напряжение при растяженииМПа, |
Относительное удлиннение при разрыве, %, |
Удельное объемное сопротивление, Ом м, |
не менее |
не менее |
не менее |
|
РТИ-0 |
5.88 |
350 |
11 012 |
РТИ-1 |
4.90 |
300 |
51 011 |
РНИ |
3.43 |
300 |
5 108 |
РТЭПИ-1 |
3.72 |
300 |
11 012 |
РТСИ-1 |
3.92 |
200 |
51 012 |
РТШИ и РТШМ |
5.88 |
300 |
51 011 |
Таблица 2 - Номинальные толщины резиновой изоляции указаны в таблице
Номинальное сечение жил, мм2 |
Номинальная толщина |
|||
Ир-1, Ир-2 |
Ир-3, Ир-4 |
Ир-5 |
Ир-6 |
|
0.35 |
0.6 |
- |
- |
- |
0.5 |
0.6 |
0.8 |
- |
- |
0.75 |
0.6 |
1.0 |
- |
- |
1.0 |
0.6 |
1.0 |
- |
- |
1.5 |
0.6 |
1.0 |
1.8 |
- |
2.5 |
0.8 |
1.0 |
1.8 |
- |
4.0 |
0.8 |
1.0 |
1.8 |
- |
6.0 |
0.8 |
1.0 |
1.8 |
- |
10 |
1.0 |
1.2 |
2.0 |
4.0 |
16 |
1.0 |
1.2 |
2.0 |
4.0 |
25 |
1.2 |
1.4 |
2.2 |
4.0 |
35 |
1.2 |
1.4 |
2.2 |
4.0 |
50 |
1.4 |
1.6 |
2.4 |
4.0 |
70 |
1.4 |
1.6 |
2.4 |
4.0 |
95 |
1.6 |
1.8 |
2.6 |
4.0 |
120 |
- |
1.8 |
2.6 |
4.0 |
150 |
- |
2.0 |
2.8 |
4.0 |
185 |
- |
2.2 |
3.0 |
- |
240 |
- |
2.4 |
3.2 |
- |
300 |
- |
2.6 |
3.4 |
- |
400 |
- |
2.8 |
3.6 |
- |
500 |
- |
3.0 |
3.8 |
- |
Полиэтиленовая изоляция изготавливается на основе полиэтиленов низкой плотности (ПЭНП) и полиэтиленов высокой плотности (ПЭВП) по ГОСТ 16336-77 со стабилизатороами и другими добавками. Маркировка композиций на основе ПЭНП включает трехзнаяные цифры, начинающиеся с единицы: 102, 107 и т.п. маркировка на основе ПЭВН - цифры, начинающиеся с двойки: 204, 206, 207 и т.п.
Электрическая прочнсть для полиэтиленовых изоляций толщиной 1 мм при частоте 50 Гц составляет 35-40 кВ/мм.
Полиэтилен (ПЭ) инертен к большей части агрессивных сред: при комнатной температуре не растворим ни в одном из известных растворителей. При 70оС и выше полиэтилен растворяется в четыреххлористом углероде, хлороформе, толуоле и ксилоле. Некоторые органические сильнополярные жидкости могут вызвать его растрескивание. Добавка бутилкаучука или полиизобутилена к полиэтилену повышает его стойкость к растрескиванию.
Введение в ПЭ органических перекисей с последующим нагревом или действием ионизирующих излучений (вулканизацией) приводит к образованию поперечных связей, переводящих его из термопластичного состояния в термореактивное. В этом состоянии ПЭ не плавится при повышении температуры и не растрескивается под влиянием различных сред. Вулканизированный ПЭ незначительно деформируется при температуре 150 оС.
Композицию ПЭ с полиизолбутиленом, ацетиленовой сажей и стеариновой кислотой используют в качестве электропроводящих экранов кабелей с полиэтиленовой изоляцией.
Введение в композицию ПЭ полиэтиленового концентрата марки П2-КП по ТУ 6-05-1565-77 или полиэтиленового суперконцентрата пигмета марки СКП по ТУ 6.05-05-149-81 придает ПЭ заданный цвет, необходимый для расцветки жил. При введении в композицию ПЭ концентрата пенообразующего марки 107-ОВАС или смеси ЧХЗ-57 с тальком в процессе наложения изоляции в экструзивном агрегате получается пористая ПЭ изоляция, которая используется для изоляции кабелей связи, коаксиальных и радиочастотных кабелей.
1.2.3. Поливинилхлоридная изоляция
Поливинилхлоридные (ПВХ) пластикаты - смесь поливинилхлоридной смолы с пластификаторами, стабилизаторами и другими добавками. Пластификаторы придают материалу пластичность и облегчают процесс его переработки, но уменьшают его химическую стойкость, нагревостойкость и электроизоляционные свойства. В изоляционные ПВХ пластикаты вводят антиоксиданты, обеспечивающие длительное сохранение высокого удельного электрического сопротивления, гибкости при низких температурах и нагревостойкости. Для получения цветного ПВХ пластиката в него вводят окрашивающие добавки, главным образом пигментные красители.
ПВХ пластикат изготавливается по ГОСТ 5960-72. В зависимости от свойств и назначения выпускаются следующие марки ПВХ пластикатов (ПВХП).
К ПВХП общего назначения относятся марки И40, И45, И50, И60. ПВХП пониженной горючести марки НГП 40-32 и НГП 30-32 выпускаются в соответствии с ТУ 2246-425-05761784-98, ПВХП марки ИМ 40-8, ИОМ 40-8 - в соответствии с ТУ 6-02-51-00. ПВХП повышенной тепло- и бензомаслостойкости - в соответствии с ТУ 16.К71-275-98.
ПВХ пластикат марок И40-13, И40-13А, И40-14 используются для изоляции проводов и кабелей в диапазоне температур от -40 до +70 оС. Для той же цели используются марки И50-13, И50-14 в диапазоне температур от от -50 до +70 оС, а И60-12 - в диапазоне температур от от -60 до +70 оС. Для изоляции и оболочки кабелей и проводов используется марка И45-12 в диапазоне температур от -45 до +70 оС.
Таблица 3 - Физические свойства и технические характериатики некоторых ПВХ пластификаторов приведены в таблице.
Параметры и единицы измерения |
И40-13 |
И40-14 |
ИО45-12 |
И50-13 |
И50-14 |
И60-12 |
Удельное объемное электическое сопротивление при 20 оС Ом см |
11 013 |
21 014 |
11 012 |
21 013 |
11 014 |
11 012 |
Удельное объемное электическое сопротивление при 20 оС Ом см |
11 013 |
21 014 |
11 012 |
21 013 |
11 014 |
11 012 |
Прочность при разрыве, не менее Мпа |
17.6 |
19.6 |
11.7 |
19.6 |
17.6 |
9.8 |
Относительное удлиннение при разрыве, % |
200 |
250 |
350 |
200 |
200 |
300 |
Температура хрупкости, не выше оС |
-40 |
-40 |
-45 |
-50 |
-50 |
-60 |
Таблица 4 - Номинальная толщина изоляции из ПВХ пластиката приведена в таблице
Номинальное сечение жил, мм |
Ип-1 |
Ип-2 |
Ип-3 |
Ип-4 |
Ип-5 |
Ип-6 |
До 0.35 |
0.4 |
0.5 |
0.5 |
0.6 |
- |
- |
0.35 |
0.5 |
0.6 |
0.6 |
0.7 |
- |
- |
0.5 |
0.5 |
0.6 |
0.6 |
0.8 |
- |
- |
0.75 |
0.5 |
0.6 |
0.6 |
0.8 |
- |
- |
1.0 |
0.6 |
0.7 |
0.7 |
0.8 |
- |
- |
1.5 |
0.6 |
0.7 |
0.7 |
1.0 |
- |
- |
2.5 |
0.6 |
0.7 |
0.7 |
1.0 |
- |
- |
4.0 |
0.7 |
0.8 |
0.8 |
1.0 |
2.2 |
- |
6.0 |
0.7 |
0.8 |
0.8 |
1.0 |
2.2 |
- |
10 |
0.8 |
1.0 |
1.0 |
1.2 |
2.2 |
3.4 |
16 |
0.8 |
1.0 |
1.0 |
1.2 |
2.2 |
3.4 |
25 |
1.0 |
1.2 |
1.2 |
1.4 |
2.2 |
3.4 |
35 |
1.0 |
1.2 |
1.2 |
1.4 |
2.2 |
3.4 |
50 |
1.2 |
1.4 |
1.4 |
1.6 |
2.2 |
3.4 |
70 |
1.2 |
1.4 |
1.4 |
1.6 |
2.2 |
3.4 |
95 |
1.2 |
1.6 |
1.6 |
1.8 |
2.2 |
3.4 |
120 |
- |
- |
1.6 |
1.8 |
2.2 |
3.4 |
150 |
- |
- |
1.8 |
2.0 |
2.2 |
3.4 |
185 |
- |
- |
2.0 |
2.2 |
2.4 |
3.4 |
240 |
- |
- |
2.2 |
2.4 |
2.6 |
3.4 |
300 |
- |
- |
2.4 |
2.6 |
2.6 |
3.4 |
400 |
- |
- |
2.6 |
2.8 |
2.8 |
3.4 |
500 |
- |
- |
3.0 |
3.0 |
3.0 |
3.4 |
1.2.4 Изоляция из пропитанной бумаги
Кабельная бумага по ГОСТ 23436-83 для изоляции силовых кабелей на напряжение до 35 кВ марок К и КМП изготавливается цвета натурального волокна или окрашенной в красный, зеленый и синий цвета, а марки КМ - только цвета натурального волокна.
Кабельная бумага по ГОСТ 645-79 для изоляции кабелей на напряжение от 110 до 500 кВ марок КВМ (многослойная), КВМС (многослойная стабилизированная) и КВМСУ (многослойная стабилизироанная уплотненная) изготовляется из специальной сульфатной небеленой целлюлозы.
Бумажную изоляцию силовых кабелей пропитывают маслоканифольным составом. Кабели на напряжение 20 - 35 кВ пропитывают составом марки МП-2, содержащим 25% канифоли (остальное количество - нефтяное масло). Кабели на напряжение 1 - 10 кВ пропитывают составом МП-3, содержащим 7.5% канифоли, 3% полиэтиленового воска (остальное количество - нефтяное масло), а кабели с нестекающей изоляцией - составом МП-5, состоящим из 3 - 2% канифоли, 18% полиэтиленового воска (остальное количество - нефтяное масло). Нефтяное масло для пропиточного состава применяют марки КМ-25 по ТУ 38-101-449-84 селективной очистки фенолом или дуосол-очистки парным растворителем с последующей гидро- или контактной очисткой. Канифоль для пропиточных составов применяют марки А первого сорта по ГОСТ 19113-84 или модифицированную кабельную канифоль по ТУ 13-05-25-82.
1.2.5. Изоляция из фторопласта (политетрафторэтилена)
Изоляция из фторопласта (политетрафторэтилена), сокращенно Ф-4, обладает высокими механическими и диэлектрическими свойствами. Ф-4 используется в диапазоне температур от -90 до + 250 оС. Ф-4 исключительно стоек к большинству химических веществ.
Политетрафторэтилен выпускается по ТУ 6-05-1246-76, именуемый Ф-4 (фторопласт-4, фторлон-4) , и имеет сополимеры Ф-4Д, Ф-4М, Ф-40Ш и др. При температуре 19оС Ф-4 увеличивается в объеме на 1%, а при температуре 327оС - на 25% (происходит переход из кристаллического состояния в аморфное). При температуре выше 425оС Ф-4 разлагается с выделением токсичных газообразных веществ.
Изоляция из фторопласта может быть наложена на жилы кабелей и проводов сплошным слоем, получаемым экструзией, или методом обмотки лентами и нитью. Ленточную изоляцию для получения ее монолитности подвергают нагреву (запечка).
Толщину изоляции принимают равной 0.25 мм при напряжении до 600 В и 0.4 мм - при напряжении 1000 В.
Для изоляции кабелей и проводов используется также прессованная окись магния, изоляционные лаки, шелк натуральный и синтетический, хлопчатобумажная пряжа, полистирольная и триацетатные ленты.
Предварительно обработанную окись магния засыпают в медную, алюминиевую или стальную (из нержавеющей стали) трубу с размещенными в ней медными стержнями или стержнями из других металлов и сплавов или заранее спрессованные из окиси магния шашки вставляют в трубу, а в отверстия шашек вставляют стержни токопроводящие жилы кабелей. Подготовленную заготовку кабеля подвергают многократному волочению, в результате которого происходит обжатие оболочки, уплотнение окиси магния с передачей давления на жилы. В готовом виде кабель отжигают для снятия напряжений в металле, получившихся в процессе волочения.
Сопротивление изоляции кабелей с магнезиальной изоляцией зависит от содержания в ней влаги. В нормальных условиях (содержание влаги не более 0,4%) сопротивление изоляции находится в пределах 9004550 Мом*км и зависит от числа жил в кабеле и их сечения. Сопротивление изоляции кабеля с магнезиальной изоляцией в среде с относительной влажностью 95 ±3% уменьшается и через 34 ч становится стабильным, равным 2 Мом*км. При относительной влажности 80±5% сопротивление изоляции, равное 2 Мом*км, устанавливается примерно через 24 ч.
В нормальном состоянии пробивное напряжение кабеля с магнезиальной изоляцией составляет 6 кв/мм, а в изогнутом состоянии 3 кв/м. Импульсная прочность магнезиальной изоляции 612 кв/мм. Пробивное напряжение при повышении температуры до 250 С изменяется незначительно. Дальнейшее повышение температуры приводит к резкому снижению пробивного напряжения.
Магнезиальная изоляция при температуре 20° С имеет tgδ в пределах 0,0010,004, при температуре 250° С tgδ = 0,01 и при температуре 800° С tgδ =0,08. При увлажнении изоляции до 1,52,0 % tgδ = 0,04. При плотности магнезиальной изоляции, равной 1,9 2 г/смг ε =3,8/4,5. При повышении температуры до 250° С и частоты до 400 Мгц ε возрастает незначительно. При влажности 1,52% ε увеличивается до 5,2.
При помещении открытого конца кабеля с магнезиальной изоляцией в воду влага в течение 6 мес. проникает не более чем на 200 мм. За 30 ч пребывания в атмосфере с относительной влажностью 95±3% влага проникает на глубину 4060 мм. Подогрев концов кабеля обеспечивает испарение всей поглощенной изоляцией влаги.
Прессованную окись магния применяют для изоляции силовых, контрольных и термоэлектродных кабелей
Эмалевая изоляция проводов многослойное покрытие эмальлаками с последующей их сушкой и полимеризацией.
Эмальлак на поливинилацетатной основе винифлекс (ВЛ-931) состоит из смолы винифлекс и раствора термореактивной фенольно-формальдегидной (резольной) смолы в этилцеллозольве. В качестве растворителя лака применяют смесь этилцеллозольва и хлорбензола (растворитель РВЛ). Лак винифлекс содержит 2325% лаковой основы.
Эмальлак металвин (ВЛ-941) представляет собой раствор поливинилформаля, резольной смолы и стабилизатора в метапарокрезоле с разбавлением последнего сольвентнафтой. Готовый лак содержит 15,816,2 лаковой основы.
Эмалированные провода с изоляцией из лаков винифлекс и металвин предназначены для длительной работы при 105°С (класс А). По электроизоляционным свойствам, механической прочности, эластичности и нагревостойкости эмалированные провода винифлекс и металвин равноценны. По бензолостойкости провода с изоляцией металвин превосходят провода винифлекс. Стойкость изоляции на основе этих лаков к спирто-толуоловой смеси почти равноценна. Провода с изоляцией винифлекс и металвин выпускают диаметром 0,062,44 мм двух типов по толщине изоляции: ПЭВ-1 и ПЭМ-1 с максимальной двойной толщиной изоляции (Dd) 0,0250,10 мм и минимальной 0,010,05 мм ПЭВ-2 и ПЭМ-2 с максимальной толщиной изоляции (Dd) 0,030,13 мм и минимальной 0,0120,07 мм.
Дополнительное покрытие провода ПЭВ поливинилацеталевым лаком или лаком на основе поливинилбутираля создает термопластичное покрытие, расплавляющееся при температуре 120150° С и цементирующее витки намотанных катушек без применения пропитывающих лаков (провода ПЭВД диаметром 0,060,44 мм). Дополнительное покрытие проводов ПЭВ из термореактивного материала на основе эпоксидной смолы Э-15 с добавкой лака винифлекс и фталевого ангидрида (провода марки ПЭВТР) пригодно для изготовления катушек, не размягчающихся при нагревании.
Эмальлак на основе полиэфирных смол (ПЭ-943, ПЭ-939) изготовляют из терефталевой кислоты, этиленгликоля и глицерина. Растворителем полиэтилентерефталатных лаков является трикрезол с добавкой сольвент-нафты. Сухой остаток лака 4045%. Провод марки ПЭТВ выпускают диаметром 0,062,44 мм с двойной толщиной изоляции (Dd) 0,030,13 мм при минимальных значениях 0,010,07 мм. Эти провода обладают высокой механической прочностью, химической стойкостью и нагревостойкостью до 130° С (класс В).
В качестве гидроксилолсодержащих продуктов полиуретановых лаков (УЛ-1) используют соединения глицерина, гексан-триола и пентаэритрита. Для изготовления эмальлаков применяют стабилизированные динзоционаты (получаемые при реакциях с фенолами, крезолами и др.). Растворителем этого эмальлака является циклогексанон или смесь циклогексанона, ксилола и бутилацетата. Полиуретановая изоляция эмалированных проводов обладает высокими электроизоляционными свойствами и длительной нагревостойкостью до 120° С (класс Е). Эти провода подвергаются лужению без зачистки изоляции. При температурах выше 160° С полиуретановая изоляция размягчается и становится ограниченно пригодной для обмоток электрических машин. Провода марки ПЭВТЛ выпускают диаметром 0,061,56 мм двух толщин изоляции: ПЭВТЛ-1 0,0120,062 мм (минимальные значения 0,010,06 мм) и ПЭВТЛ-2 0,030,11 мм (минимальные значения 0,0120,06 мм).
Эмальлак на основе полиимидных смол (ПАК-1) получают в результате химической реакции диангидрида пиромелитовой кислоты с диаминами. Эти соединения имеют высокую нагревостойкость и нерастворимы в обычно применяемых растворителях. В отличие от других эмальлаков образование пленок на основе полиимидов происходит в результате внутримолекулярной реакции. Благодаря линейно-кольцевой структуре полиимидная изоляция обладает высокой стойкостью против тепловых ударов. По нагревостойкости полиимидная изоляция относится к классу не ниже С (выше 180°С), т. е. превосходит все другие существующие виды эмалевой изоляции. Пробивное напряжение изоляции 26 кв. Провода с полиимидной изоляцией ПНЭТ-имид изготовляют в опытном порядке диаметром 0,101,40 мм с толщиной изоляции 0,030,05 мм.
Однако наложение полиимидной изоляции представляет технологические трудности. Поэтому представляют большой интерес эмалированные провода с пол и эфир ими дно й изоляцией марки
ПЭТ-155, предназначенные для работы при температуре до 155° С (класс F). По диапазону диаметров проводов и толщине изоляции эти провода аналогичны с проводами ПЭТВ (с полиэфирной изоляцией).
Кремний орган и чески й лак (К-62) обеспечивает нагревостойкость эмалированных проводов до 180° С (класс Н), но их изоляция обладает повышенной термопластичностью и пониженной механической прочностью. Поэтому кремнийорганические лаки применяют в случае наличия поверх слоя эмали стекловолокна (провода ПЭТСО и др.).
Полиамидно-резольный лак (ПЛ-2) представляет собой раствор полиамидной смолы № 54 и резольной смолы в смеси этилцеллозольва, воды и остатков фенолов. Содержание сухого остатка в этом лаке 3747%. Изоляция имеет пониженные электроизоляционные характеристики в условиях повышенной влажности, а также при повышенных температурах. Провод с полиамидно-резольной изоляцией марки ПЭЛР предназначен для длительной работы при температурах до 105°С (класс А).
Масляные эмальлаки на основе полимеризованных натуральных тунгового и льняного масел, ксиленольного копала, резината кальция (получаемого из канифоли), гидрохинона или неозона Д с растворителем (керосин) имеют сухой остаток 5572%. Эти лаки образуют изоляцию, обладающую высокими электроизоляционными свойствами, но низкой механической прочностью и недостаточной стойкостью к растворителям. Эмалированные провода на масляных лаках предназначены для длительной работы при 105° С (класс А). Провода с масляной изоляцией (ПЭЛ) выпускают диаметром 0,052,44 мм с максимальной толщиной изоляции 0,065 0,10 мм.
Типовая зависимость среднего срока службы эмалированных проводов различных классов нагревостойкости от температуры (по МЭК) приведена на рис. 4. [3]
Рисунок 4 Типовая зависимость среднего срока службы различных эмалированных проводов от температуры по методике МЭК.
Хлопчатобумажную пряжу для изоляции обмоточных проводов применяют однониточную номеров 170, 134, 100, 85, 54 и 40 высшего и первого сортов по ГОСТ 111954, толщина которых по ГОСТ 1087864 соответствует 5,9, 7,5, 10, 11,8, 18,5 и 25 текс (г/км). Допускаемые отклонения от номинального номера пряжи +2 и 1,5%, неровность по разрывной прочности одиночной нити не более 10,516% в зависимости от сорта пряжи, ее номера, величины крутки и рода прочеса. Хлопчатобумажная пряжа обладает высокой гигроскопичностью, поэтому катушки из проводов с этим видом изоляции пропитывают лаками.
Натуральный шелк получают размоткой коконов червя-шелкопряда, живущего на листьях тутового дерева. Для изоляции проводов применяют шелк однониточный, скрученный из шелка-сырца, отваренный в белом или крашеном виде. Средние номера шелка 818, 529 и 391, толщина которых по ГОСТ 1087864 соответствует 1,2, 1,9 и 2,6 текс, с неровнотой по номеру 11,314,5%, разрывная длина 2728,8 км, удлинение при разрыве 1012%, среднее число кручений на 1 м 200, 190 и 120 соответственно номеру, нормальная влажность шелка 9,5%. Значительная гигроскопичность шелка, особенно при повышенной влажности, вызывает необходимость пропитки катушек электрических машин и аппаратов.
Триацетатное волокно обладает высокими электроизоляционными свойствами, оно имеет механическую прочность 16,4 21,8 кгс/мм2. Кроме того, триацетатное волокно обладает значительной склонностью к электризации, что усложняет процесс наложения на провод.
Хлопчатобумажную пряжу, натуральный шелк, искусственные и синтетические волокна по нагревостойкости относят к классу У (90°С). Эти материалы, пропитанные масляно-смоляными и подобными лаками или погруженные в минеральное масло или синтетические жидкие диэлектрики, относят по нагревостойкости к классу А (105°С).
Капрон и анид полиамидные волокна, получаемые из одноименной смолы. Волокна вытягивают в 34 раза, при этом предел их прочности повышается до 4060 кгс/мм2, а удлинение снижается до 1525%. Волокно выпускают метрическими номерами 150, 200 и 300. Предел прочности и эластичность полиамидных волокон выше, чем натурального и искусственного волокон. Полиамидные волокна обладают малой гигроскопичностью (влажность 3,8%)> стойки против воздействия щелочей, органических кислот, спиртов, бензина и т. п., но растворяются в крезоле, муравьиной и карболовой кислотах. Нагревостойкость полиамидных волокон выше, чем шелка, хлопка или синтетических волокон. При наложении обмотки с большой скоростью волокно капрон растягивается на 18% (против 4% у натурального шелка) это приводит к повышению упругости проводов. Тепловая обработка проводов переводит упругие деформации в остаточные. Нагревостойкость проводов с изоляцией из полиамидных волокон - 105° С. При 200° С и выше волокно капрон размягчается. Капроновое волокно обладает значительной гигроскопичностью, но по стойкости к истирающим усилиям превосходит натуральный шелк и волокно лавсан.
Полиэтилентерефталатные волокна (лавсан) получают путем выдавливания расплава полимера через фильеры, вытяжки, крутки, фиксации крутки и перемотки. Плотность волокна лавсан 1,4 г/см3, предел прочности до 70 кгс/мм2, удлинение при разрыве 1822%, температура плавления 256°С, а размягчения 240°С, влажность 0,51%. Волокно лавсан более нагревостойко и светостойко, чем полиамидное волокно. По стойкости к истиранию волокно лавсан уступает капрону, но превосходит натуральный шелк. Провода с лавсановой изоляцией по нагревостойкости отнесены к классу В (130°С).
С целью повышения электрической и механической прочности обмоточных проводов применяют комбинированную изоляцию, состоящую из слоя масляных, а для более ответственных типов оборудования - поливинилацеталевую или полиэфирную изоляцию, и слоя (редко двух слоев) натурального шелка, волокна капрон и лавсан или хлопчатобумажной пряжи. Толщина изоляции круглых проводов диаметром 0,05 - 2,02 мм с эмалево-шелковой изоляцией (по ГОСТ 6324-52) равна 0,058 - 0,085 мм, с эмалево-хлопчатобумажной изоляцией диаметром 0,41 - 5,2 мм равна 0,135 - 0,14 мм.
Стеклянное волокно неорганический изоляционный материал, получаемый путем вытяжки из расплава стекла специального состава (бесщелочное стекловолокно алюмоборосиликатного состава). Для облегчения разматывания волокон их выпускают покрытыми замасливателем, который, кроме того, способствует соединению отдельных нитей в прядь. Стекловолокно выпускают скрученным в два сложения (из двух предварительно скрученных прядей). Для изоляции обмоточных проводов применяют стекловолокно НС-150/2 (6,7 X2 текс) и НС-170/2 (5,9 X2 текс) диаметром волокон 6 мкм, НС-300/2 (3,3 X2 текс) диаметром волокон 4 мкм и НС-500/2 (1,8 Х Х2 текс) диаметром волокон 3 мкм. Плотность стекловолокна 2,203 г/см3. Предел прочности стекловолокна около 100 кгс/мм2. Температура эксплуатации от 250 до +1 200° С. Электрические характеристики: tgδ = 0,0015, ε =3/4(f=l Мгц при температуре 0 700° С).
Изоляция из стекловолокна состоит из одного, двух и реже трех слоев с подклейкой, пропиткой и покрытием глифталевым, полиэфирным или кремнийорганическим лаком. При применении глифталевого и полиэфирного лаков провода пригодны для длительной работы при 130° С (класс В), а кремнийорганического лака до 180° С (класс Н). Толщина двухслойной изоляции круглых проводов марки ПСД диаметром 0,31 - 5,2 мм составляет 0,23 - 0,33 мм.
Недостатками стекловолокна являются повышенная упругость, малая стойкость к истиранию и малое относительное удлинение при разрыве (2 - 3%). С целью повышения электрической прочности изоляции при малой ее толщине применяют обмотку стекловолокном поверх слоя эмали (кремнийорганической, полиэфирной и др.), подклеенных, пропитанных и покрытых глифталевым, полиэфирным или кремнийорганическим лаком. Такие провода предназначены для работы при 155180° С.
Асбест - природное волокно различной длины. Для изоляции обмоточных проводов применяют главным образом асбестовую ровницу, представляющую собой рыхлую ленточку из асбестового волокна с добавлением к нему для повышения механических свойств хлопчатобумажной пряжи (до 15%). Плотность хризотилового асбеста 2,5 г/см3. Удельное объемное сопротивление асбеста 1010 1012 ом*см. Асбест обладает высокой нагревостойкостью. При температуре 400500° С асбест теряет связанную воду, входящую в состав его молекул, и становится хрупким. При температуре 1000° С асбест плавится.
Дельта-асбестовая изоляция обмоточных проводов состоит из асбестовых волокон, подклеенных к медной жиле и пропитанных глифталевым, полиэфирным или кремнийорганическим лаком. Для повышения электрической прочности и влагостойкости изоляцию кабелей и проводов выполняют с прослойкой из полиэтилентерефталатной пленки (лавсан) или политетрафторэтилена (фторлон-4).
Полистирол - полимер стирола, получаемого из ксилольно-стирольной фракции, выделяемой при пиролизе или крекинге-нефти. Полимеризацию стирола производят блочным методом в присутствии перекиси бензолила. Предел прочности полистирола 300500 кгс/см2, ρ =1016/1017 ом*см, ε = 2,2/2,8, tgδ = (2/3) 104 (f= 1 Мгц). Значения ε и tgδ мало зависят от температуры и частоты. Размягчение полистирола происходит при температуре 8090°С, а деполимеризация 250300° С.
В кабельной промышленности применяют полистироловые колпачки, нанизываемые на внутренний проводник радиочастотного кабеля. В зависимости от мощности радиочастотного кабеля диаметр колпачка выполняют различным. Наиболее распространены полистироловые колпачки диаметром 10 и 18 мм. Нанизывание колпачков на внутренний проводник производят вручную, поэтому с целью повышения производительности труда этот вид изоляции стремятся заменить спиральной изоляцией кабеля.
Полистироловые кордель и нить, растянутые в 5 - 10 раз для повышения механической прочности, называют стирофлексом. Нитью (корделем) обматывают жилы симметричных кабелей связи с шагом 5 - 10 мм и поверх спирали накладывают лепту из полистирола (рис. 1 - 11,в). Для расцветки жил кабеля применяют кордель или ленту окрашенными. При температуре 68° С ориентированный полистирол (стирофлекс) переходит из гибкого состояния в хрупкое. [3]
Окислы алюминия А12Оз, бериллия ВеО и магния MgO обладают высокой нагревостойкостью и применяются в качестве изоляции закрытых нагревательных элементов. Для изоляции жаростойких кабелей наибольшее распространение получила окись магния. Предварительно обработанную окись магния засыпают в медную, алюминиевую или стальную (из нержавеющей стали) трубу с размещенными в ней медными стержнями или стержнями из других металлов или сплавов. Другой способ изготовления жаростойких кабелей основан на применении заранее спрессованных из окиси магния шашек, вставляемых в медную или из другого металла трубу. а в отверстия шашек вставляются стержни из меди или других металлов. Подготовленная заготовка подвергается многократному волочению и отжигу, в результате которых происходит обжатие оболочки и уплотнение окиси магния с передачей давления на токопроводящие жилы. После уплотнения окиси магния изменение заготовки кабеля происходит так же, как при волочении стержня из сплошного металла.
Сопротивление изоляции кабелей с магнезиальной изоляцией зависит от содержания влаги в изоляции, числа жил в кабеле и их сечения. Кривая зависимости сопротивления изоляции от температуры приведена на рис. 5 Британским стандартом нормируются минимальные сопротивления изоляции кабелей на напряжение 660 в от 4550 до 900 Мом-км, а для кабелей 440 в -от 3650 до 2 740 Мо∙км в зависимости от числа жил и их сечения.
|
Рисунок 5 - Зависимость сопротивления изоляции кабеля с магнезиальной изоляцией от температуры.
Сопротивление изоляции кабеля с магнезиальной изоляцией в среде с относительной влажностью 95 ±3% в течение первых 30 мин резко уменьшается, затем замедляется и через 3-4 ч становится стабильным и равным примерно 2 Мом o км.
Пробивное напряжение кабелей с магнезиальной изоляцией зависит от плотности изоляции. В изогнутом состоянии плотность изоляции уменьшается, возможно образование трещин, которые снижают пробивное напряжение. При пробое кабеля напряженность электрического поля в магнезиальной изоляции при нормальном ее состоянии равна примерно 6 кв/мм, а при изогнутом состоянии изоляции эта напряженность уменьшается до 3 кв/мм. Электрическая прочность магнезиальной изоляции при постоянном токе в 1,5-2 раза выше, чем при переменном. Импульсная прочность магнезиальной изоляции равна 6-12 кв/мм.
Величина tg δ θзоляции кабеля из прессованной магнезии при 20 °С находится в пределах 0,001-0,004; при 250° С она возрастает до 0,01, а при 800°С - до 0,08. Начало ионизации в изоляции кабеля наблюдается при напряжении около 6 кв. При увлажнении изоляции до 1,5-12,0% tg δ βозрастает до 0,04.
При плотности изоляции из окиси магния, равной 1,9-2,0 г/см 3 , ε = 3,8 - 4,5. Οри уменьшении плотности изоляции е снижается. При повышении температуры до 200-250° С в возрастает незначительно, а при температурах 500-800° С наблюдается резкий рост ε. При частотах от 60 гц до 400 Мгц е практически не зависит от частоты. При влажности 1,5-2,0 % е увеличивается до 5,2.
Легкоплавкие компоненты (флюсы) и связывающие их тугоплавкие компоненты (кварц и др.) в процессе наложения изоляции спекаются. Провода с гибкой неорганической (керамической) изоляцией пригодны для работы. При температурах до 300-600° С.
Керамическая изоляция пригодна для длительной работы при температурах не выше 300° С. При дальнейшем повышении температуры происходит резкое снижение удельного объемного сопротивления. Керамическая изоляция наносится на провод из суспензий малой вязкости с последующей термообработкой в печах при температуре 400-1200°С (в зависимости от состава изоляции). Применение электрофореза повышает скорость наложения слоя изоляции, но при этом способе возможно образование шероховатости поверхности.
Изготовление микропровода со сплошной стеклянной изоляцией по методу проф. А. В. Улитовского производится путем вытяжки его из расплава металла. Кусок металла в стеклянной ампуле или трубке, помещенный в контур высокочастотного генератора, расплавляется, а стекло становится мягким, тягучим. С помощью стеклянной палочки вытягивается стеклянная нить, внутри которой находится проволока малого диаметра из расплавленного металла. Затем микропровод со стеклянной изоляцией подвергается быстрому охлаждению струей воды и наматывается на приемный барабан. Таким способом изготовляют микропровода с токопроводящими жилами из меди, манганина, чугуна и других металлов. Регулированием температуры нагрева и скорости вытяжки можно получить провода со сплошной стеклянной изоляцией диаметром 3-200 мкм. Поверхность изоляции гладкая и блестящая. Хрупкость изоляции этих проводов увеличивается с увеличением диаметра провода. Провода диаметром до 10-12 мкм обладают достаточной эластичностью для намотки на катушки обычным способом, а провода больших диаметров наматывают при температурах 400-600°С, при которых стекло становится пластичным ("горячая" намотка). Сплошная стеклянная изоляция выдерживает навивание на стержень диаметром 200 D. Пробивное напряжение этих проводов при комнатной температуре составляет 2000-4500 в и при 500° С не менее 350 в.
2. Обзор существующих устройств и методов
2.1 Краткое описание методов электрических измерений сопротивления изоляции
В настоящее время тенденция развития методов измерения сопротивления изоляции на объектах промышленности такова, что все разработчики стремятся создать универсальные приборы для этого, которые бы имели функцию измерения и контроля сопротивления изоляции при непосредственном нахождении испытуемого объекта в рабочем состоянии, то есть при нахождении его под рабочим напряжением. Преимущество отдаётся устройствам, которые обладают такой возможностью, при этом могут измерять искомую величину сопротивления изоляции с большой точностью и малой погрешностью как на постоянном, так и на переменном токе.
Методы измерений можно подразделить прямые, при помощи которых непосредственно измеряется нужная величина и косвенные, значение сопротивления при которых может вычисляться исходя из результатов снятых прибором или группой приборов по известным электротехническим соотношениям.
По признаку способа сравнения с мерой методы разделяют на метод непосредственной оценки и метод сравнения.
Для точных измерений используют мосты, потенциометры и цифровые приборы. При этом сопротивление измеряют прямым или косвенным путём.
Измерение больших сопротивлений (для изоляционных материалов) часто производят при помощи обыкновенного или баллистического гальванометров. Баллистическим гальванометром удаётся измерять сопротивления большие, чем обычным.
Для измерения поверхностного сопротивления используют схему с особым подключением к поверхности изоляционного материала, так же, используются и цифровые электронные омметры для измерения сопротивления порядка гига- и тераом или очень малых миллиомы.
Применение нашли и осциллографы, которые предназначены для измерения полных и реактивных сопротивлений.
Часто используются мосты для измерения сопротивлений на постоянном токе. Для измерения малых сопротивлений используют двойные мосты. Наряду с этим используют потенциометры, поочерёдно изменяя падение напряжения на измеряемом и эталонном сопротивлении.
Используются и автоматические мосты, автоматические потенциометры постоянного тока для измерения косвенными методами, автоматические потенциометры переменного тока.
Широко распространено применение вольтметров переменного тока, амплитудных вольтметров, омметров либо с использованием мостовой схемы, либо с использованием преобразователя. [4]
Сопротивления изоляции распределены по сети. Обычно оперируют значениями эквивалентных величин. Вследствие этого линии связи между токоведущими частями и корпусом, показанные в упомянутой статье на схемах замещения (рис. 8), и соответствующие им подключения элементов к фазам (полюсам) сети и земле в природе отсутствуют. Поэтому измерить значение сопротивления изоляции непосредственным подключением какого-либо прибора к схемным линиям связи не представляется возможным. По этой причине обычно используют косвенные методы измерений - активные (с применением вспомогательного источника напряжения) или пассивные (с использованием рабочего напряжения сети в качестве оперативного напряжения).
В сетях с заземленной нейтралью выполняют периодический контроль при снятом рабочем напряжении, а в сетях, изолированных от земли, согласно п. 1.6.12 Правил устройства электроустановок - автоматический контроль под рабочим напряжением. [1]
Представление о значении сопротивления изоляции дает лишь сила тока в измерительной цепи в установившемся режиме, так как в первые моменты после приложения измерительного напряжения, а также при каждом изменении структуры и состава сети (например, при подключении новых электроприемников) в измерительной цепи протекают токи переходных режимов, обусловленные перезарядом емкости полюсов сети относительно корпуса или зарядом емкости подключаемого участка сети. Кроме того, на результат измерений оказывает влияние рабочее напряжение электроустановки.
Правильный результат может быть получен лишь при соответствии принятого метода измерений параметрам контролируемой сети. Без соблюдения этого условия в одной и той же сети при измерении различными средствами могут быть получены данные, противоречащие одни другим.
При снятом рабочем напряжении применяют метод наложения постоянного напряжения. Измерительный прибор - переносной либо щитовой мегаомметр И- содержит источник постоянного напряжения Е и миллиамперметр А (рис. 8).
Рисунок 2.1. Измерение при снятом рабочем напряжении
Один полюс прибора (обычно положительный) подключается к токоведущей части (например, к клемме 1), а второй полюс - к корпусу проверяемого электротехнического изделия.В установившемся режиме после заряда емкостей С1 и С2 относительно корпуса ток Iизм, протекающий под действием источника Е, на полюсе 1 разветвляется: его часть Iизм протекает через эквивалентное сопротивление изоляции R1 полюса 1, а другая часть Iизм через сопротивление нагрузки RН и эквивалентное сопротивление изоляции R2 полюса 2. Далее ток протекает по корпусу и суммируется в цепи миллиамперметра А.
Силу тока Iизм определяет выражение:
Iизм=E/(Rвн+R) |
( |
где Rвн внутреннее сопротивление мегаомметра (миллиамперметра, источника измерительного напряжения и добавочного сопротивления Rд), R эквивалентное сопротивление изоляции. Строго говоря, в последнем следовало бы учесть сопротивление Rн, но обычно Rн << R2 поэтому его влиянием допустимо пренебрегать (в тех случаях, когда внутреннее сопротивление контролируемого изделия соизмеримо с величиной сопротивления изоляции, такое допущение может приводить к ошибочным результатам, завышенным против фактических).
При Rвн = const и Е = const сила тока в измерительной цепи зависит только от величины R, поэтому миллиамперметр градуируют непосредственно в единицах сопротивления. На практике обычно применяют переносные мегаомметры с питанием от сети переменного тока (типа Ml27) или с автономным источником (типа М4100). В качестве последнего используют индукторный генератор с ручным приводом (скорость вращения рукоятки около 2 об/с). Чтобы уменьшить погрешность измерений из-за непостоянства скорости вращения рукоятки, в таких мегаомметрах в качестве измерительного прибора используют не миллиамперметр, а логометр, одна рамка которого подключена непосредственно к источнику напряжения, а вторая, жестко связанная с ней, включена в измерительную цепь.
Для повышения достоверности измерений измерительное напряжение выбирают близким к рабочему напряжению контролируемой цепи. Для электрооборудования напряжением от 100 В до 400 В применяют мегаомметры напряжением 500 В. Безопасность измерений при этом достигается за счет ограничения силы тока в измерительной цепи до величины 1 мА добавочным сопротивлением Rд = 0,5 МОм.
Норвежская фирма Autronica создала автоматизированную систему контроля сопротивления изоляции System AJ-1 с генератором оперативного напряжения частотой 5 Гц. Фирма Merlin Gerin (Франция) выпускает приборы Vigilohm System XM-200 с оперативным источником частотой 2,5 Гц.В ряде случаев вместо источника напряжения непромышленной частоты используют вспомогательный источник постоянного напряжения переменной полярности. Так, фирма Bender (Германия), выпускает прибор IRDH 265-4. Метод уравновешенного моста.
Рисунок 2.2 - Измерение сопротивления изоляции сети постоянного тока методом уравновешенного моста.
На этом методе, как правило, основана работа отечественных щитовых мегаомметров в сетях постоянного тока. Схема измерений этим методом приведена на рис. 9, где использованы следующие обозначения: А - миллиамперметр; Rд добавочное сопротивление; П переключатель; Е источник измерительного напряжения (до 150 В); Rп- потенциометр. Плечами моста являются сопротивления изоляции R1 и R2 и сопротивления r1 и r2 плеч потенциометра Rп. Измерительный прибор и ограничительное сопротивление Rд включены в диагональ моста. Сила тока Iизм в диагонали моста определяется выражением:
|
( |
где R эквивалентное сопротивление изоляции сети. Измерение производится в два этапа. На первом этапе переключатель П устанавливают в положение 1 и перемещением движка потенциометра балансируют мост добиваются отсутствия тока в диагонали моста. На втором этапе переключатель устанавливают в положение 2, подключая в диагональ моста источник измерительного напряжения Е. После окончания процессов перезаряда емкостей снимают показание миллиамперметра. В сбалансированном мосте составляющая тока, определяемая вторым слагаемым, отсутствует. Поэтому при Е = const, Rд = const и при условии r1r2/Rп << R сила тока Iизм однозначно определяется сопротивлением изоляции R (приборы типа Ml54, M1508, M1608, M1428, M1628). Обычно при работе с сетями постоянного тока применяют методы измерений, основанные на использовании рабочего напряжения сети в качестве оперативного напряжения. Рассмотрим один из них.
Рисунок 2.3 - Измерение сопротивления изоляции сети постоянного тока вольтметрами: а) по методу двух вольтметров; б) и в) по методу трех отсчетов вольтметра.
Этот метод заключается в последовательном измерении вольтметром с известным сопротивлением r трех напряжений: U рабочего; U1 между положительным полюсом сети и землей; U2 между отрицательным полюсом и землей. Расчет искомой величины сопротивления изоляции сети производится по формуле:
|
Рассмотрим физические основания этого метода.
На рисунке 3,а показана эквивалентная схема сети постоянного тока с сопротивлениями изоляции полюсов R1, R2 и рабочим напряжением U. Напряжения между полюсами сети и корпусом U и U, пропорциональны соответствующим сопротивлениям изоляции, то есть всегда выполняются следующие соотношения:
Если для измерения этих напряжений между полюсами сети и корпусом включить вольтметры V1 и V2 c равными внутренними сопротивлениями r, то получим:
|
При r>>R выражение (4) будет совпадать с предыдущим. Такой способ контроля (с использованием двух вольтметров) ранее применялся для индикации однополюсных снижений сопротивления изоляции и однополюсных замыканий на землю. Вольтметр, соответствующий полюсу с меньшим сопротивлением изоляции, имеет меньшее показание (зачастую вместо вольтметров включали две лампы накаливания). Пользуясь результатами измерения напряжений U и U, определить величины сопротивлений R1 и R2, соответственно и значение эквивалентного сопротивления изоляции сети R, не представляется возможным, так как система уравнений неполная: эквивалентная схема состоит из трех контуров, в то время как сама система содержит только два уравнения. Чтобы ее все-таки можно было разрешить, в сеть вносят нормированные искажения.
При включении вольтметра V по схеме рис. 3,б меняется эквивалентное сопротивление между положительным полюсом сети и землей (за счет шунтирования сопротивления изоляции R1 внутренним сопротивлением вольтметра r). Оно становится равным:
Так как при этом сопротивление между отрицательным полюсом сети и корпусом не изменится, то уменьшается напряжение между положительным полюсом и землей: U1 < U(соответственно U2>U). При измерении по схеме рис. 3,в аналогично получаем: U2 < U. С условием того, что U+U =U, при измерении методом трех отсчетов всегда справедливо неравенство
U1+ U2 < U
Следует еще раз подчеркнуть, что оно образуется за счет намеренного поочередного уменьшения сопротивлений между полюсами сети и землей путем шунтирования сопротивлений изоляции R1 и R2 известным сопротивлением r. Теперь система уравнений, составленных для напряжений U1 и U2, оказывается разрешимой, так как она содержит известные величины U, U1, U2, r и две неизвестные величины: R1 и R2. Решая систему относительно последних, получаем выражение для эквивалентного сопротивления изоляции сети.
Соотношение величин напряжений U и U1+U2, определяющее точность измерений при данном сопротивлении изоляции сети, зависит от величины сопротивления вольтметра r. Если r>>R (например, при измерении ламповым, цифровым или электростатическим вольтметром), то при подключении вольтметра в сеть вносятся несущественные искажения, так как сопротивления между полюсами сети и землей практически не изменяются. Как следствие этого получаем U1+U2 =U. Соответственно нулевыми будут результаты при расчетах по формуле (3). Наибольшая точность измерений достигается при выполнении следующего соотношения: r =0,8R, при котором U1+U2= 0,44U. Обычно рекомендуется выбирать вольтметр с внутренним сопротивлением, приблизительно равным измеряемому сопротивлению изоляции. Изложенное справедливо не только для силовых сетей, но и для низковольтных систем автоматики. В последних опасно выполнять контроль сопротивления изоляции с использованием щитовых мегаомметров, содержащих источник измерительного напряжения 100-150 В. Под действием этого источника при определенных условиях могут выйти из строя комплектующие систему полупроводниковые приборы и микросхемы.
Этот метод прост в выполнении и доступен, так как не требует применения специальной аппаратуры. Однако он имеет и ряд недостатков, связанных с необходимостью выполнения вычислений. Опыт показывает, что целесообразна подмена расчетов работой с соответствующими номограммами. В качестве примера на рис. 2.4 приведена номограмма, предназначенная для определения значения сопротивления изоляции сетей постоянного тока напряжением от 150 до 600 В. Номограмма имеет три шкалы рабочего напряжения U, суммы напряжений полюсов сети относительно корпуса U1+U2 и искомого значения сопротивления изоляции R. Порядок работы с номограммой таков: к точкам шкал U и U1+U2, соответствующим полученным результатам измерений, прикладывается линейка; искомое значение считывается по шкале R. В практической деятельности не всегда имеется в наличии вольтметр с предусмотренным номо-граммой значением внутреннего сопротивления. Поэтому на рис. 2.5 приведена номограмма, пригодная для работы с различными типами вольтметров. Она состоит из двух параллельных шкал (U1 + U2 и R) и бинарного поля с координатами «напряжение сети внутреннее сопротивление вольтметра». Работа с такой номограммой также не составляет труда.
Рисунок 2.4 - Номограмма для определения сопротивления изоляции сетей постоянного тока напряжением от 150 В до 600 В при измерении вольтметром с внутренним сопротивлением 100 кОм |
|
Существует пять основных элементов, имеющих влияние на деградацию изоляции: повреждения электрические и механические, химическая агрессия, повреждения термические, а также загрязнение среды. По причине их воздействия во время нормальной работы электроустановок и электрических устройств изоляция стареет.
Факторами, влияющими на измерение параметров, характеризующих сопротивление изоляции, являются:
Сопротивление изоляции это параллельное подключение внутреннего сопротивления, зависящего от материала изоляции, и поверхностного сопротивления, зависящего от чистоты поверхности.
Ток утечки изоляции это малый ток, протекающий между зажимами измерительных проводов, который можно разделить на две составляющие: ток, протекающий через изоляционный материал, и ток, протекающий по поверхности изоляционного материала. Этот ток быстро нарастает до постоянной величины и остаётся неизменным для выбранного измерительного напряжения. Увеличение тока утечки может стать в дальнейшем источником повреждений. Ток утечки должен быть измерен тогда, когда конденсатор, представляющий собой ёмкость изоляции, заряжен, а явление абсорбции установилось.
Ток абсорбции, имеющий сначала значительную величину, через определённое время (большее, чем время заряда ёмкости изоляционного материала) стремится к нулю.
С представлением абсорбции связан ток диэлектрического поглощения. Этот ток является результатом перемещения заряженных частиц и диполей в изоляции под воздействием электрического поля. Диполи устанавливаются параллельно линиям внутреннего электрического поля.
2.2.3 Измерение сопротивления изоляции мегаомметром
Количество замеров сопротивления изоляции зависит от количества проводов в линии (в общем, от 4 до 15 замеров на линию). По итогам проверки изоляции принимается решение заменить или починить неисправную изоляцию или оставить ее как есть, если она в хорошем состоянии и соответствует всем нормам.
Специально для выполнения замеров сопротивления изоляции кабелей и проводов был создан прибор мегомметр (мегаомметр) в отличие от омметра он используется при высоких напряжениях (1000-2500 В).
Перед замерами проводится визуальный осмотр всех кабелей и проводки, осмотр электрооборудования и распределительных коробок, особенное внимание следует уделить местам, где изоляция имеет оплавленные концы (это значит, что в этих местах кабель или провод перегревается, что является также неполадкой и подлежит устранению). После визуального осмотра проводятся замеры сопротивления изоляции. Для этого необходимо отключить от всех измеряемых кабелей и проводов все оборудование, сами кабели отключить от электропитания, снять все лампы в энергосистеме, проверить, чтобы все выключатели были включены. Только после выполнения всех этих условий можно проводить измерения сопротивления изоляции. Последним, но тоже важным условием можно назвать проверку приборов на актуальность мегомметры ежегодно должны проходить испытания, без которых они не допускаются к работе.
Измерения сопротивления изоляции (контура заземления, проводки, контрольного кабеля) проводятся с помощью трех основных, наиболее часто используемых, показателей: коэффициентов абсорбции и поляризации изоляции (которые дают наиболее достоверные и качественные результаты), а также сопротивления изоляции постоянному току (этот метод распространен, но менее эффективен). Измерения с помощью этих способов позволяют определить наличие повреждений и загрязнений изоляции, ее увлажнение или старение. Измерение сопротивления изоляции контрольного кабеля проводится не во всех, а только в самых важных электрических цепях.
3. Разработка устройства
3.1 Разработка методики измерения процессов старения изоляции
Анализ работ Кучинского Г.С., Мостового С.Е., Федорова Г.С. Показал, что контроль частичных разрядов перспективный и удобный метод контроля состояния изоляции.
Частичными разрядами (ЧР) называют разрядные процессы в изоляции, которые развиваются под действием приложенного напряжения и распространяются лишь на часть изоляционного промежутка.
Частичные разряды могут возникать в ослабленных местах изоляции, например, в газовых включениях, или в местах резкого усиления электрического поля, в частности, у острых краев электродов. Наибольшую опасность представляют ЧР в газовых включениях, так как в этом случае ЧР возникают при меньших напряжениях, чем в жидких или твердых компонентах внутренней изоляции.
Согласно работам Кучинского Г.С., можно утверждать, что темпы электрического старения и срок службы изоляции, зависят от средней мощности Рч.р и энергии Wч.р. Поэтому Рч.р и Wч.р являются важнейшими характеристиками ЧР. Однако непосредственное измерение Рч.р и Wч.р в большинстве случаев практически невозможно, так как они очень малы. В связи с этим в качестве мер интенсивности ЧР применяют другие величины, пропорциональные Рч.р и Wч.р, но поддающиеся прямому измерению.
Чтобы пояснить физический смысл используемых мер интенсивности ЧР, рассмотрим кратко основы электрического метода измерения характеристик ЧР. В этом методе используется одно из внешних проявлений ЧР снижение при каждом ЧР напряжения на испытуемой изоляции скачком (точнее, за время 10-7…10-8 с) на величину ΔU.
Скачок напряжения ΔU объясняется тем, что в канале ЧР рассеивается часть энергии, запасенной в электрическом поле изоляции.
При таком методе измерения характеристик ЧР, получившем наибольшее распространение из-за высокой чувствительности, в качестве меры интенсивности единичного ЧР принимают величину q = ΔUxCx, которую называют кажущимся зарядом ЧР.
Опытным путем установлено, что в различных видах внутренней изоляции, в зависимости от качества изоляции и значения приложенного напряжения, ЧР могут иметь кажущиеся заряды от 10-14 до 10-16 Кл. При ЧР с кажущимися зарядами 10-14 …10-16 Кл происходит относительно медленное старение изоляции. В ряде случаев такие ЧР допустимы при рабочем напряжении, так как обусловленное ими старение оказывается настолько медленным, что обеспечивается необходимый срок службы (около 20 лет и более). При ЧР с q=10-9…10-6 Кл за короткое время происходит значительное разрушение изоляции; такие ЧР недопустимы даже при кратковременных перенапряжениях и, следовательно, при испытательных напряжениях.
Согласно [3], было решено использовать метод регистрации высокочастотных колебаний, возникающих при ЧР в изоляции, так как этот метод позволяет надежно и точно измерять основные характеристики ЧР и обеспечивает чувствительность порядка 10-14 10-15 Кл. Согласно метода, между жилой и землей включается резистивный делитель напряжения, к одному из резисторов которого подключается вход АЦП.
3.2 Разработка структурной схемы устройства.
Устройство создано для измерения характеристик ЧР, но, при этом разработано несколько методов контроля состояния изоляции накопление статистических данных о процессах в изоляции и их влияние на картину ЧР и сравнение динамики значений снимаемых характеристик ЧР с экспериментально полученной динамикой этих характеристик при искусственном состаривании изоляции.
Суть первого метода заключается в контроле сопротивления изоляции и контроле параметров ЧР в изоляции кабелей с различным возрастом и измерение зависимостей параметров ЧР от сопротивления изоляции, что позволит контролировать сопротивление изоляции любой кабельной линии не выводя ее из работы и не разрушая изоляцию повышенным напряжением и рассчитывать примерный остаточный срок службы кабельной линии. Второй метод заключается в том, что зная картины ЧР при развитии повреждений и старении, этот метод позволит определить
Упрощенный алгоритм действия разрабатываемой системы показан на рис. 3.1.
Рис. 3.1. Упрощенный алгоритм работы системы прогнозирующей защиты.
Алгоритм работы прибора будет пояснен на основе блок-схемы, представленной на рис. 3.2.
Рисунок 3.2 Блок-схема устройства.
Вывод: разработана структурная и блок-схема устройства, обладающего необходимыми для достижения поставленных задач характеристиками с возможностью дальнейшего наращивания возможностей и улучшения эксплуатационных характеристик за счет блочной структуры.
3.3 Разработка печатной платы и создание устройства
Прибор создан на основе микроконтроллера АТ Mega 32, на котором, при помощи ассемблера, реализована многозадачная операционная система, многозадачность которой реализована на прерываниях. Это позволило постепенно наращивать возможности устройства и запускать измененные алгоритмы анализа либо расчетов не прибегая к перепрограммированию микроконтроллера, а просто записав их на Micro SD карту. Прибор имеет внешний SD контроллер, внешний АЦП, буфер СОМ интерфейса программирования, внешний USB контроллер, буфер LAN. Таким образом, обеспечена полная развязка между программатором, сервером, прибором и измерительной аппаратурой, все контроллеры связаны друг с другом по протоколу I2C. Прибор имеет графический дисплей, СОМ порт для программирования, USB и LAN для связи с сервером, Micro SD для сохранения настроек и архивных данных при отсутствии возможности работы с сервером онлайн, разъём для подключения измерительной аппаратуры к внешнему либо внутреннему АЦП, разъем основного питания, часы и календарь с питанием от перезаряжаемого аккумулятора, разъем для управления внешним оборудованием (через электромагнитные реле с цепью управления рассчитанной на +5 Вольт), термодатчиком для ведения статистики износа изоляции.
Прибор в режиме анализа, при помощи внешнего, либо внутреннего АЦП анализирует форму сигнала на делителе напряжения и передает ее на сервер по интерфейсу USB (виртуальный COM до 1 Мбит/с), либо по LAN (до 100 Мбит/с), либо записывает на SD карту используя GZIP алгоритм компрессии для дальнейшего анализа. Контроль состояния изоляции осуществляется при помощи измерения частоты и кажущегося заряда частичных разрядов в исследуемом кабеле. Любое изменение характеристик изоляции сказывается на количестве и кажущемся заряде частичных разрядов, таким образом, можно экспериментально установить характерные картины развития пробоя и сравнивать с ними снимаемые показания. Соответствие снимаемых показаний с одной из картин развития пробоя считается началом развития аварии.
Внешний вид печатной платы показан в приложении А.
Вывод: созданный прибор соответствует поставленной задаче и позволяет наращивать свои возможности для увеличения точности расчета времени до конца срока службы, времени до аварии (пробоя), реализации алгоритма расчета мест наиболее вероятных повреждений.
3.4 Разработка программного обеспечения для устройства
Программное обеспечение устройства написано на Ассемблере и представляет собой многозадачную операционную систему на прерываниях, что позволяет не останавливая измерений производить оценку ситуации. Реализована возможность запуска предварительно скомпилированной программы, записанной на Micro SD карту начиная с нулевого сектора, все настройки хранятся на Micro SD карте в бинарном виде, таблицы по которым описывается опасная динамика характеристик хранятся в текстовом виде без сжатия, снимаемые осциллограммы записываются в виде текстовых таблиц с GZIP компрессией для экономии места, снимаемые характеристики ЧР записываются в виде текста с разделителями.
Исходные тексты операционной системы и подпрограмм с комментариями приведены в приложении Б.
Вывод: разработана многозадачная операционная система, способная удовлетворить все требования, предъявляемые поставленной задачей реализовать одновременный сбор, анализ, вывод данных и управление внешними устройствами. Операционная система построена по архитектуре микроядра, основной системы и драйверов устройств, что позволяет гибко изменять состав и количество внешних устройств.
4. Проведение экспериментов
Для получения необходимых характерных картин изменения параметров ЧР при пробое, накопления статистики о характеристиках ЧР в изоляции при ее старении, были поставлены эксперименты. Согласно [1], было решено использовать метод регистрации высокочастотных колебаний, возникающих при ЧР в изоляции, так как этот метод позволяет надежно и точно измерять основные характеристики ЧР. Осциллограф и АЦП устройства подключались на резистивный делитель напряжения, включенный параллельно образцу исследуемой изоляции. По результатам экспериментов можно сказать, что существует проблема различения ЧР и помех в линии, проблема различения
ЧР в образце и в масле повышающего трансформатора испытательного стенда,
проблема быстродействия и разрядности АЦП, что практически не влияет на собранную статистику, хотя и увеличивает погрешность измерений.
5. Заключение
Разработана методика контроля состояния изоляции, основанная на предложенной в Кучинским Г.С. зависимости частоты следования и кажущегося заряда ЧР от времени службы изоляции, разработана структурная схема и алгоритм работы устройства, разработана печатная плата, создано устройство, разработано программное обеспечение для устройства.
1. Правила устройства электроустановок. Раздел 1. Общие правила. Седьмое издание. СПБ.: издательство ДЕАН, 2004.-176с.
2. Беркович М.А. Автоматика энергосистем: Учеб. для техникумов / М.А. Беркович, В.А. Гладышев, В.А. Семенов. // 3-е изд., перераб. и доп. М.: Энергоатомиздат, 1991. - 240с.
3. Ресурсы интернет сайта http://www.mitsar.ru
4 Электрические измерения. Средства и методы измерений. Под ред. Е.Г. Шрамкова . М., “Высшая школа ”, 1972.
5. Справочник электромонтажника. Е. Г. Пантелеев. Монтаж и ремонт кабельных линий.
3. Нормы приемо-сдаточных испытаний силовых кабельных линий - Испытание кабелей
6. Как правильно измерить сопротивление изоляции электроустановок. Е. Иванов. Новости электротехники - №1(13)2002 С. 58-61.
7. Беркович М.А. Автоматика энергосистем: Учеб. для техникумов / М.А. Беркович, В.А. Гладышев, В.А. Семенов. // 3-е изд., перераб. и доп. М.: Энергоатомиздат, 1991. - 240с.
8. Никитин К.И. Возможные направления совершенствования релейной защиты / К.И. Никитин, А.А., Вырва, М.М. Сарычев // Омский научный вестник, 2009, № 1 (77), С130-133.
9. Никитин К.И. Прогнозирование отказов кабельных линий электропередачи (статья) / К.И. Никитин, Б.Н Коврижин, П.С Рыбин // Энергетика на рубеже веков. Сборник материалов научно-практической конференции, посвященной 60-летию ОАО АК «Омскэнерго» и Омского механико-технологического техникума. Омск, ОмГТУ, 2003 . с. 134-135.
10. Фризен А.Н., Петров А.В., Свойства изоляции нефтепогружных кабелей и возможность их прогнозирования в условиях эксплуатации, Кабели и провода, 2007, № 4.
11. Петров А.В., Фризен А.Н., Полтарыхина В.Н., Влияние старения в агрессивной среде на температурную зависимость электропроводности изоляции кабелей.// Материалы всероссийской научной конференции молодых ученых «Наука, технологии, инновации» Новосибирск, 2004, ч.2, с. 179-181.
12. Аникеенко В.М., Петров А.В., Фризен А.Н., Электрические свойства изоляции нефтепогружных кабелей, Материалы международной научно-технической конференции «Электромеханические преобразователи энергии», Россия, Томск, 20-22 октября 2005 г., с. 399-400.
13. Фризен А.Н., Аникеенко В.М., Баклыков А.С., Влияние защитных покрытий на электрические свойства изоляции кабелей.// Материалы всероссийской научной конференции молодых ученых «Наука, технологии, инновации» Новосибирск, 2004, ч.2, с. 195-196;
14. ГОСТ 2990 - 78 Кабели провода и шнуры. Методы испытания напряжением.
15. РД16 14.640 - 88 Кабели провода и шнуры. Испытание напряжением на проход. Типовой технологический процесс.
16. Сельницин А.А., Сидоров А.И., Бендяк Н.А. Способ определения сопротивления изоляции сетей с изолированной нейтралью напряжением 6 35 кВ // Контроль изоляции в распределительных сетях: тезисы докладов научнопрактической конференции. Челябинск. С. 13.1992.
17. Лапченков К.В. Управление состоянием изоляции в распределенных электрических сетях. Челябинск, 1998. 116 с.
18. Юрченко Е.Ю., Оценка состояния изоляции городских кабельных линий напряжением 6-10кВ с разработкой рекомендаций по улучшению условий электробезопасности, диссертация, Челябинск 2009.
19. Патент (51) МПК G01R31/02 (2006.01) (19)RU(11) 2348939(13)C1 Бородянский Илья Михайлович (RU), Бородянский Михаил Ефимович (RU), Самойлов Леонид Константинович (RU), Косторниченко Владимир Григорьевич (RU)
20. Патент (51) МПК G01R31/02 (2006.01) (19)RU(11)2313799(13)C1 Толочек Сергей Александрович (RU), Грудцинов Григорий Михайлович (RU), Замешин Александр Петрович
21. Патент (51) МПК G01R27/18 (2006.01) 19)RU(11)2275645(13)C2 Галка Виктор Леонидович (RU), Лазаревский Николай Алексеевич (RU), Александров Валентин Петрович (RU), Калашников Николай Семенович (RU), Плазовская Татьяна Николаевна (RU)
22. Патент МПК G01R27/18 (2006.01), G01R31/02 (2006.01) (19)RU(11)22756452(13)C2 Кислов Евгений Александрович (RU), Леонтьев Игорь Викторович (RU), Левичев Юрий Дмитриевич (RU), Кудрин Иван Александрович (RU)
23. Патент МПК G01R27/18 (19)RU(11)2149414(13)C1 Белов В.А.
24. Патент МПК G01R27/08, G01R27/18 (19)RU(11)2092862(13)C1 Григорьев Эдуард Николаевич, Мельников Евгений Георгиевич, Новоторцев Павел Николаевич
25. Патент МПК Н02Н3/17 (19)RU(11)2027271(13)C1 Покрашенко А.И., Котов К.В., Селиванов М.И.
26. Кудрявцев Д.М. Совершенствование локационных методов дистанционного контроля изоляции линий электропередачи 110-750 кВ. - дис. ... кандидата технических наук : 05.14.02 / Кудрявцев Дмитрий Михайлович; [Место защиты: Иван. гос. энергет. ун-т, Иваново, 2007]
27. Ресурсы интернет сайта www.electronpribor.ru
28. Кучинский Г.С. Частичные разряды в высоковольтных конструкциях. Л.: Энергия, 1979.224 с., ил.
Приложение А.
Печатная плата:
Приложение Б.
Исходный код программного обеспечения с комментариями:
Ядро операционной системы:
;=============================================================================
; Процедура очистки очереди
;=============================================================================
ClearTaskQueue:
push ZL
push ZH
ldi ZL, low(TaskQueue)
ldi ZH, high(TaskQueue)
ldi OSRG, $FF ;
ldi Counter, TaskQueueSize
CEQL01: st Z+, OSRG ;
dec Counter ;
brne CEQL01 ; Loop
pop ZH
pop ZL
ret
;=============================================================================
; Процедура очистки таймеров
;=============================================================================
ClearTimers:
push ZL
push ZH
ldi ZL, low(TimersPool)
ldi ZH, high(TimersPool)
ldi Counter, TimersPoolSize
ldi OSRG, $FF ; Empty
ldi Tmp2, $00
CTL01: st Z+, OSRG ; Event
st Z+, Tmp2 ; Counter Lo
st Z+, Tmp2 ; Counter Hi
dec Counter ;
brne CTL01 ; Loop
pop ZH
pop ZL
ret
;=============================================================================
; Процедура обработки очереди задач
;=============================================================================
ProcessTaskQueue:
ldi ZL, low(TaskQueue)
ldi ZH, high(TaskQueue)
ld OSRG, Z ; For Event
cpi OSRG, $FF ; No Event or Addr out of Range
breq PTQL02 ; No Action
clr ZH
lsl OSRG
mov ZL, OSRG
subi ZL, low(-TaskProcs*2)
sbci ZH, high(-TaskProcs*2) ; Add
lpm ; mov r0 <- CODE[Z]
mov OSRG, r0
ld r0, Z+ ; inc Z
lpm
mov ZL, OSRG ; Get Addr
mov ZH, r0
push ZL
push ZH
; Advance Queue
ldi Counter, TaskQueueSize-1
ldi ZL, low(TaskQueue)
ldi ZH, high(TaskQueue)
cli
PTQL01: ldd OSRG, Z+1 ; Shift Queues
st Z+, OSRG ;
; cpi OSRG, $FF ;
; breq PTQL02 ; For Long Queues
dec Counter ;
brne PTQL01 ; Loop
ldi OSRG, $FF ;
st Z+, OSRG ;
sei
pop ZH
pop ZL
ijmp ; Minimize Stack Usage
PTQL02: ret
;-------------------------------------------------------------------------
; OSRG - Event
SendTask:
push ZL
push ZH
push Tmp2
push Counter
ldi ZL, low(TaskQueue)
ldi ZH, high(TaskQueue)
ldi Counter, TaskQueueSize
SEQL01: ld Tmp2, Z+
cpi Tmp2, $FF
breq SEQL02
dec Counter ;
breq SEQL03 ; Loop
rjmp SEQL01
SEQL02: st -Z, OSRG ; Store EVENT
SEQL03: ; EXIT
pop Counter
pop Tmp2
pop ZH
pop ZL
ret
;------------------------------------------------------------------------
; OSRG - Timer Event
; X - Counter
SetTimer:
push ZL
push ZH
push Tmp2
push Counter
ldi ZL, low(TimersPool)
ldi ZH, high(TimersPool)
ldi Counter, TimersPoolSize
STL01: ld Tmp2, Z ; Value / Counter
cp Tmp2, OSRG ; Search for Event
breq STL02
subi ZL, Low(-3) ; Skip Counter
sbci ZH, High(-3) ; Z+=2
dec Counter ;
breq STL03 ; Loop
rjmp STL01
STL02: ;cli
std Z+1, XL ; Critical Section
std Z+2, XH ; Update Counter
;sei ; leave Critical Section
rjmp STL06 ; Exit
STL03:
ldi ZL, low(TimersPool)
ldi ZH, high(TimersPool)
ldi Counter, TimersPoolSize
STL04: ld Tmp2, Z ; Value / Counter
cpi Tmp2, $FF ; Search for Empty Timer
breq STL05
subi ZL, Low(-3) ; Skip Counter
sbci ZH, High(-3) ; Z+=2
dec Counter ;
breq STL06 ; No Empty Timer
rjmp STL04
STL05: cli
st Z, OSRG ; Set Event
std Z+1, XL
std Z+2, XH
sei
STL06:
pop Counter
pop Tmp2
pop ZH
pop ZL
ret
;=============================================================================
; Процедура подсчета CRC8 области памяти
;=============================================================================
; Counter - количество байт
; ZL - начало адресного пространства
CRC8:
push tmp4
push tmp3
push tmp2
ldi tmp3,0x18 ; загрузка полинома
mov tmp4,tmp3 ; в регистр HiCRC
clr OSRG ; обнуление CRC регистра
CRC8_Loop:
ldi tmp2,8 ; указываем 8 бит для подсчета ;
ld tmp3,Z+ ; берем байт из буфера
CRC8_Bit_Loop:
push tmp3 ; сохранение байта в стеке
eor tmp3,OSRG ; xor байта и регистра CRC
lsr tmp3 ; сдвигаем младший бит получившегося байта в перенос
brcc CRC8_Zero_0 ; проверяем младший разряд байта
eor OSRG,tmp4 ; если там 1, то CRC xor полином
CRC8_Zero_0:
ror OSRG ; если там 0, то просто сдвиг CRC регистра
pop tmp3 ; возвращаем байт на место
lsr tmp3 ; и сдвигаем его
dec tmp2 ;
brne CRC8_Bit_Loop ; переход на цикл проверки слеующего бита
dec Counter ;
brne CRC8_Loop ; переход на следующий байт буфера
pop tmp2
pop tmp3
pop tmp4
ret
Wait255:
push Counter
ser Counter
Wait255_loop:
nop
nop
nop
nop
nop
dec Counter
cpi Counter, 0x00
brne Wait255_loop
pop Counter
ret
=================================================================================
Подпрограмма управления LCD дисплеем:
;===========LCDDefine=============================================================
.equ DATA_PORT = PORTB ; LCD Data Port
.equ DATA_PIN = PINB
.equ DATA_DDR = DDRB
.equ CMD_PORT = PORTB ; LCD Control Port
.equ CMD_PIN = PINB
.equ CMD_DDR = DDRB
.equ E = 3
.equ RW = 2
.equ RS = 1
.equ SPEED = 14 ; 14 для XTAL=16MHz, 10 для XTAL=8MHz, 6 для XTAL=4MHz
==================================================================================
; LCD Init
.equ LCD_CLR = 0 ; DB0: clear display
.equ LCD_HOME = 1 ; DB1: return to home position
.equ LCD_ENTRY_MODE = 2 ; DB2: set entry mode
.equ LCD_ENTRY_INC = 1 ; DB1: increment
.equ LCD_ENTRY_SHIFT = 0 ; DB2: shift
.equ LCD_ON = 3 ; DB3: turn lcd/cursor on
.equ LCD_ON_DISPLAY = 2 ; DB2: turn display on
.equ LCD_ON_CURSOR = 1 ; DB1: turn cursor on
.equ LCD_ON_BLINK = 0 ; DB0: blinking cursor
.equ LCD_MOVE = 4 ; DB4: move cursor/display
.equ LCD_MOVE_DISP = 3 ; DB3: move display (0-> move cursor)
.equ LCD_MOVE_RIGHT = 2 ; DB2: move right (0-> left)
.equ LCD_F = 5 ; DB5: function set
.equ LCD_F_8B = 4 ; DB4: set 8BIT mode (0->4BIT mode)
.equ LCD_F_2L = 3 ; DB3: two lines (0->one line)
.equ LCD_F_10D = 2 ; DB2: 5x10 font (0->5x7 font)
.equ LCD_CGRAM = 6 ; DB6: set CG RAM address
.equ LCD_DDRAM = 7 ; DB7: set DD RAM address
.equ SCR_L = 0b00011000 ; Сдвиг экрана влево
.equ SCR_R = 0b00011100 ; Сдвиг экрана вправо
.equ CUR_L = 0b00010000 ; Сдвиг курсора влево
.equ CUR_R = 0b00010100 ; Сдвиг курсора вправо
==================================================================================
;===========LCDMacros==============================================================
; Init Config
.MACRO LIB_LCD_Init ; Инициализация LCD
RCALL InitHW ; Настроить контрольный порт
RCALL LCD_DELAY ; Подождать
WR_CMD (1<<LCD_F)|(0<<LCD_F_8B)
; Выдать функции в порт. Команда инициализации адресации ДВА РАЗА!!!
WR_CMD (1<<LCD_F)|(0<<LCD_F_8B)
; Выдать функции в порт. Команда инициализации адресации ДВА РАЗА!!!
WR_CMD (1<<LCD_F)|(0<<LCD_F_8B)
; Выдать функции в порт. Команда инициализации адресации ДВА РАЗА!!!
WR_CMD (1<<LCD_F)|(0<<LCD_F_8B)|(1<<LCD_F_2L)
; Так как на 4 байтах нельзя передать сразу второй байт
WR_CMD (1<<LCD_CLR) ;0x01
WR_CMD (1<<LCD_ENTRY_MODE)|(1<<LCD_ENTRY_INC) ;0x06
WR_CMD (1<<LCD_ON)|(1<<LCD_ON_DISPLAY)|(0<<LCD_ON_CURSOR)|(0<<LCD_ON_BLINK) ;0x0C
WR_CMD (1<<LCD_HOME)
.ENDM
==================================================================================
;Write Data
.MACRO WR_DATA
LDI R17,@0
RCALL DATA_WR
.ENDM
==================================================================================
;Write CMD
.MACRO WR_CMD
LDI R17,@0
RCALL CMD_WR
.ENDM
==================================================================================
; Read Data
.MACRO RD_DATA
RCALL DATA_RD
.ENDM
==================================================================================
; Read CMD
.MACRO RD_CMD
RCALL CMD_RD
.ENDM
==================================================================================
;Set COORD
;Syntax LCD_COORD X,Y
.MACRO LCD_COORD
LDI R17,(1<<LCD_DDRAM)|(@0+0x40*@1)
RCALL CMD_WR
.ENDM
==================================================================================
;Shift SCREEN/CURSOR
.MACRO SHIFT
LDI R17,@0
RCALL CMD_WR
.ENDM
==================================================================================
;LCD Clear
.MACRO LCDCLR
LDI R17,(1<<LCD_CLR)
RCALL CMD_WR
.ENDM
==================================================================================
;Write CGRAM
.MACRO WR_CGADR
LDI R17,(1<<LCD_CGRAM)|(@0)
RCALL CMD_WR
.ENDM
;Write DDRAM
.MACRO WR_DDADR
LDI R17,(1<<LCD_DDRAM)|(@0)
RCALL CMD_WR
.ENDM
;===========LCDProc===================================================================
InitHW: CBI CMD_PORT,RS ; Выставляем нужные уровни на управляющих выводах
CBI CMD_PORT,RW ; Порты на выход
CBI CMD_PORT,E ; И сразу же выставляются на 1
SBI CMD_DDR,RS
SBI CMD_DDR,RW
SBI CMD_DDR,E
RCALL PortIn ; Порт данных на вход
RET
==================================================================================
BusyWait: CLI ; Ожидание флага занятости контроллера дисплея
RCALL PortIn ; Порты на вход
CBI CMD_PORT,RS ; Идет Команда!
SBI CMD_PORT,RW ; Чтение!
BusyLoop: SBI CMD_PORT,E ; Поднять строб
RCALL LCD_Delay ; Подождать
IN R16,DATA_PIN ; Считать байт
PUSH R16 Сохранить его в стек. Дело в том, что у нас R16 убивается в LCD_Delay
CBI CMD_PORT,E ; Бросить строб - первый цикл (старший полубайт)
RCALL LCD_Delay ; Подождем маленько
SBI CMD_PORT,E ; Поднимем строб
RCALL LCD_Delay ; Подождем
CBI CMD_PORT,E ; Опустим строб - нужно для пропуска второго полубайта
RCALL LCD_Delay ; Задержка снова
POP R16 ; А теперь достаем спрятанны байт - в нем наш флаг. Может быть.
ANDI R16,0x80 ; Продавливаем по маске. Есть флаг?
BRNE BusyLoop ; Если нет, то переход
BusyNo: SEI ; Разрешаем прерывания.
RET
==================================================================================
; Запись команды в дисплей. Код команды в R17
CMD_WR: CLI ; Запрет прерываний
RCALL BusyWait ; Ждем готовности
CBI CMD_PORT,RS ; Идет команда!
RJMP WR_END ; Переход на запись
;-----------------------------------------------------------------------------------------
; Запись данных в дисплей. Код данных в R17
DATA_WR: CLI ; Запрет прерываний
RCALL BusyWait ; Ждем готовности
SBI CMD_PORT,RS ; Идут данные!
WR_END: CBI CMD_PORT,RW ; Запись!
SBI CMD_PORT,E ; Поднять строб
RCALL PortOut ; Порт настроить на выход!
PUSH R17 ; Сохраним данные которые будем выводить в стеке
ANDI R17,0xF0 ; Отдавим по маске данным младшую тетраду.
IN R16,DATA_PORT ; Возьмем из порта данных старое значение
ANDI R16,0x0F ; Отдавим ему старшую тетраду
PUSH R16 ; Сохраним результа в стеке. Пригодится
OR R16,R17; Склеим младшую тетраду из порта со старшей тетрадой данных
OUT DATA_PORT,R16 ; Выдадим этого мутанта в порт.
RCALL LCD_Delay ; Подождем
CBI CMD_PORT,E ; Бросим строб вниз - данные ушли в индикатор
RCALL LCD_Delay ; Подождем
SBI CMD_PORT,E ; Поднимем строб
POP R16 ; Достанем из стека младшую тетраду из порта
POP R17 ; И данные которые мы выводим
SWAP R17 ; Поменяем тетрады местами у байта данных
ANDI R17,0xF0 ; Отдавим младшую тетраду
OR R16,R17
; Склеим младшую тетраду из порта с старшей тетрадой данных (бывшая младшая)
OUT DATA_PORT,R16 ; Выдадим в порт
RCALL LCD_Delay ; Подождем
CBI CMD_Port,E ; Бросим строб
RCALL PortIn ; Порт вернем в прежнее состояние - на вход
SEI ; Разрешим прерывания
RET ; Возврат
==================================================================================
; Чтение команды из дисплея. Результат в R17
CMD_RD: CLI ; Запрет прерываний
RCALL BusyWait ; Ждем контроллер
CBI CMD_PORT,RS ; Команда!
RJMP RD_END ; Идем на чтение
;-----------------------------------------------------------------------------------------
; Чтение команды из дисплея. Результат в R17
DATA_RD: CLI ; Запрет прерываний
RCALL BusyWait ; Ждем контроллер
SBI CMD_PORT,RS ; Данные!
RD_END: SBI CMD_PORT,RW ; Чтение!
SBI CMD_PORT,E ; Поднимаем строб
RCALL LCD_Delay ; Ждем
IN R17,DATA_PIN ; Читаем из порта байт
CBI CMD_PORT,E ; Бросем строб вниз
ANDI R17,0xF0 ; Отдавливаем ему младшую тетраду
SWAP R17 ; Обмениваем тетрады местами
RCALL LCD_Delay ; Ждем
SBI CMD_PORT,E ; Поднимаем строб
MOV R16,R17 ; Прячем старшую тетраду в R16
IN R17,DATA_PIN ; Берем еще один байт
CBI CMD_PORT,E ; Бросаем строб
ANDI R17,0xF0 ; Отдавливаем младшую тетраду
OR R17,R16 ; Склеиваем результат с старшим байтом
SWAP R17 ; Разорваичаем байт. Т.к. первой выходила старшая тетрада
SEI ; разрешаем прерывания
RET ; Возврат.
==================================================================================
PortIn: IN R16,DATA_DDR ; Данные из DDR в регистр
ANDI R16,0x0F
; Отдавливаем старшую тетраду - нам нужно сохранить младшую и обнулить старшую
OUT DATA_DDR,R16 ; Выдаем результат в порт.
IN R16,DATA_PORT ; Берем данные из порта
ORI R16,0xF0
; Выставляем все биты старшей тетрады, не трогая младшую
OUT DATA_PORT,R16 ; Выдаем в порт
RET
==================================================================================
PortOut: IN R16,DATA_DDR ; Данные из ДДР в регистр
ORI R16,0xF0
; Выставляем все биты старшей тетрады, не трогая младшую
OUT DATA_DDR,R16 ; Выдаем данные в порт
RET
=================================================================================
LCD_Delay: LDI R16,SPEED ; Задержка на несколько тактов. Для того чтобы дисплей
L_loop: DEC R16 ; Успевал обрабатывать данные
BRNE L_loop
RET
=================================================================================
Подпрограмма управления дисплеем в графическом режиме:
===========LCDDefine===============================================================
.dseg
LIB_LCD_GS_Step: .byte 1 ; Следующее событие в очереди
LIB_LCD_GS_Buffer: .byte 2 ; 1 - data; 0 - cmd
.cseg
.equ LIB_LCD_GS_Reset_P = PORTD ; Reset (active low)
.equ LIB_LCD_GS_Reset_N = PIND
.equ LIB_LCD_GS_Reset_D = DDRD
.equ LIB_LCD_GS_Reset_I = 5
.equ LIB_LCD_GS_Commit_P = PORTD ; Storage Register
.equ LIB_LCD_GS_Commit_N = PIND
.equ LIB_LCD_GS_Commit_D = DDRD
.equ LIB_LCD_GS_Commit_I = 6
.equ LIB_LCD_GS_CLK_P = PORTD ; Clock Register
.equ LIB_LCD_GS_CLK_N = PIND
.equ LIB_LCD_GS_CLK_D = DDRD
.equ LIB_LCD_GS_CLK_I = 2
.equ LIB_LCD_GS_Data_P = PORTD ; Data Register
.equ LIB_LCD_GS_Data_N = PIND
.equ LIB_LCD_GS_Data_D = DDRD
.equ LIB_LCD_GS_Data_I = 7
; Номер бита шины управления дисплея
.equ LIB_LCD_GS_Line_CS1 = 1 ; 1 - on; 0 - off
.equ LIB_LCD_GS_Line_CS2 = 2 ; 1 - on; 0 - off
.equ LIB_LCD_GS_Line_RST = 3 ; 1 - work; 0 - reset
.equ LIB_LCD_GS_Line_RW = 4 ; 1 - read; 0 - write
.equ LIB_LCD_GS_Line_DI = 5 ; 1 - data; 0 - instruction
.equ LIB_LCD_GS_Line_E = 6 ;
.equ LIB_LCD_GS_Line_DEBUG = 7 ====================================================================================
;Write Data
.MACRO LIB_LCD_GS_Write_CMD
cli ; Останавливаем прерывания
push XH
push XL
ldi XL, @0
ldi XH, @1
ori XL, (1<<LIB_LCD_GS_Line_RST) ; Маска
rcall LIB_LCD_GS_Write
pop XL
pop XH
sei ; Разрешаем прерывания
.ENDM
.MACRO LIB_LCD_GS_Write_Data
cli ; Останавливаем прерывания
push XH
push XL
ldi XL, @0
ldi XH, @1
call LIB_LCD_GS_Write
pop XL
pop XH
sei ; Разрешаем прерывания
.ENDM
=====================================================================================
LIB_LCD_GS_Init:
sbi LIB_LCD_GS_Reset_D, LIB_LCD_GS_Reset_I ; Настроили на выход
sbi LIB_LCD_GS_Reset_P, LIB_LCD_GS_Reset_I ; Поднимаем строб
sbi LIB_LCD_GS_Commit_D, LIB_LCD_GS_Commit_I ; Настроили на выход
cbi LIB_LCD_GS_Commit_P, LIB_LCD_GS_Commit_I ; Опускаем строб
sbi LIB_LCD_GS_CLK_D, LIB_LCD_GS_CLK_I ; Настроили на выход
cbi LIB_LCD_GS_CLK_P, LIB_LCD_GS_CLK_I ; Опускаем строб
sbi LIB_LCD_GS_Data_D, LIB_LCD_GS_Data_I ; Настроили на выход
cbi LIB_LCD_GS_Data_P, LIB_LCD_GS_Data_I ; Опускаем строб
ret
=====================================================================================
LIB_LCD_GS_Write:
push OSRG
ldi OSRG, (1<<LIB_LCD_GS_Line_E) ; Маска
eor XL, OSRG
rcall LIB_LCD_GS_SyncReg
rcall LIB_LCD_GS_Transmit
eor XL, OSRG
rcall LIB_LCD_GS_SyncReg
rcall LIB_LCD_GS_Transmit
eor XL, OSRG
rcall LIB_LCD_GS_SyncReg
rcall LIB_LCD_GS_Transmit
pop OSRG
ret
=====================================================================================
LIB_LCD_GS_SyncReg:
; XL - CMD
; XH - Data
push ZH
push ZL
ldi ZL, low (LIB_LCD_GS_Buffer) ; Загружаем адрес буффера.
ldi ZH, High(LIB_LCD_GS_Buffer) ; Старший и младший байты.
st Z+, XL
st Z, XH
pop ZL
pop ZH
ret
=====================================================================================
LIB_LCD_GS_Transmit: ; Останавливаем прерывания
push OSRG ; Сохраняем регистр
push Counter ; Сохраняем регистр
in OSRG,SREG ; Save Sreg
push OSRG ; Сохранение регистра состояния SREG
push ZH
push ZL
ldi Counter, 2 ; Выставляем количество байт
ldi ZL, low (LIB_LCD_GS_Buffer) ; Загружаем адрес буффера.
ldi ZH, High(LIB_LCD_GS_Buffer) ; Старший и младший байты.
sbi LIB_LCD_GS_Reset_P, LIB_LCD_GS_Reset_I ; Поднимаем строб
cbi LIB_LCD_GS_Commit_P, LIB_LCD_GS_Commit_I ; Опускаем строб
LIB_LCD_GS_Transmit_ByteLoop: ; Цикл отправки байта
push Counter
ldi Counter, 8 ; Выставляем количество бит ld OSRG, Z+ ; Читаем байт из буфера
LIB_LCD_GS_Transmit_BitLoop:
cbi LIB_LCD_GS_CLK_P, LIB_LCD_GS_CLK_I ; Опускаем строб
lsl OSRG ; Старший бит в перенос
brcc LIB_LCD_GS_Transmit_bit_put0
; Если в переносе 0 то переходим
LIB_LCD_GS_Transmit_bit_put1:
sbi LIB_LCD_GS_Data_P, LIB_LCD_GS_Data_I
; Поднимаем строб
rjmp LIB_LCD_GS_Transmit_bit_sync
LIB_LCD_GS_Transmit_bit_put0:
cbi LIB_LCD_GS_Data_P, LIB_LCD_GS_Data_I
; Опускаем строб
rjmp LIB_LCD_GS_Transmit_bit_sync
LIB_LCD_GS_Transmit_bit_sync:
sbi LIB_LCD_GS_CLK_P, LIB_LCD_GS_CLK_I
; Поднимаем строб
dec Counter
cpi Counter, 0
brne LIB_LCD_GS_Transmit_BitLoop
pop Counter
dec Counter
cpi Counter, 0
brne LIB_LCD_GS_Transmit_ByteLoop
sbi LIB_LCD_GS_Commit_P, LIB_LCD_GS_Commit_I ; Поднимаем строб
cbi LIB_LCD_GS_Reset_P, LIB_LCD_GS_Reset_I ; Опускаем строб
pop ZL
pop ZH
pop OSRG ; Восстанавливаем регистр состояния SREG
out SREG,OSRG ; Восстанавливаем регистр
pop OSRG ; Разрешаем прерывания
RCALL LCD_Delay
ret
=====================================================================================
; Functions High
LIB_LCD_GS_On:
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b00111111
ret
LIB_LCD_GS_Off:
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b00111110
ret
LIB_LCD_GS_Load:
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b00111111 ; Display ON
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01000011 ; Set Address
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b10111011 ; Set Page
LIB_LCD_GS_Write_CMD (1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b11000001 ; Display Line
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
LIB_LCD_GS_Write_Data(1<<LIB_LCD_GS_Line_CS1)|(1<<LIB_LCD_GS_Line_CS2), 0b01010101
ret
;LIB_LCD_GS_COORD:
;LIB_LCD_GS_SetY:
=====================================================================================
Подпрограмма реализации сетевого интерфейса
;=============================================================================
; Данные в памяти
;=============================================================================
.equ UART_Packet_Size = 12
.dseg
UART_Address: .byte 1
UART_Packet_CRC8: .byte 1
UART_R_Count: .byte 1
UART_R_SAddress: .byte 1
UART_R_DAddress: .byte 1
UART_R_Command: .byte 1
UART_R_Data: .byte 8
UART_R_Data_CRC: .byte 1
UART_S_Count: .byte 1
UART_S_SAddress: .byte 1
UART_S_DAddress: .byte 1
UART_S_Command: .byte 1
UART_S_Data: .byte 8
. UART_S_Data_CRC: .byte 1
.cseg
;==========================================================================
; Macro
;==========================================================================
.MACRO mk_uart_crc8
; @0 = UART_[R|S]_Address
; OSRG - Out
push Counter
ldi Counter, UART_Packet_Size-1 ; Пакет из 11+crc байт
ldi ZL, low(@0)
ldi ZH, high(@0)
rcall CRC8
pop Counter
.ENDMACRO
; Добавить управление драйвером приема
.MACRO mk_uart_irq_rx_enable
sbi UCSRB, RXCIE
.ENDMACRO
.MACRO mk_uart_irq_rx_disable
cbi UCSRB, RXCIE
.ENDMACRO
.MACRO mk_uart_irq_tx_enable
sbi UCSRB, TXCIE
sbi UCSRB, UDRIE
.ENDMACRO
.MACRO mk_uart_irq_tx_disable
cbi UCSRB, TXCIE
cbi UCSRB, UDRIE
.ENDMACRO
.MACRO mk_uart_packet_clear
push OSRG
push Counter
clr OSRG
ldi ZL, low(@0)
ldi ZH, high(@0)
ldi Counter, UART_Packet_Size-1
rcall UART_Packet_Clear
pop Counter
pop OSRG
.ENDMACRO
;=============================================================================
; Команда начала отправки буффера
;=============================================================================
UART_SendBuffer:
StateSave ; Сохраняем состояние в стек
clr ZL ; Очищаем регистр для адреса ячейки
clr ZH ;
lds Counter, UART_S_Count ; Читаем значение счетсчика
cpi Counter, 0x01 ; Проверяем на 0x01
brne UART_SendBuffer_Exit ; Нет, валим
mk_uart_irq_rx_disable ; Запрещаем прием данных
sbis UCSRA,UDRE ; Пропуск если нет флага готовности
rjmp UART_SendBuffer_Wait ; ждем готовности - флага UDRE
ldi ZL, UART_S_Count ; Записываем начальное положение буфера
add ZL, Counter ; Суммируем и получаем [адрес байта для записи]
ld OSRG, Z ; Считываем из памяти нужный бай
out UDR, OSRG ; Отсылаем текущий байт в порт
INC Counter ; Увеличиваем текущее положение каретки на 1
STS UART_S_Count, Counter ; Сохраняем каретку
mk_uart_irq_tx_enable ; Разрешаем передачу данных
rjmp UART_SendBuffer_Exit
UART_SendBuffer_Wait:
SetTimerTask TS_UART_SendBuffer, 5 ; Вызываем сами себя через 5 милисекунд
UART_SendBuffer_Exit:
StateRestore ; Восстанавливаем состояние из стека
ret
;=============================================================================
; Процедура разбора входяшего пакета(полного)
;=============================================================================
UART_ReciveParse:
StateSave ; Сохраняем состояние в стек
lds Counter, UART_R_Count ; Читаем значение счетсчика
cpi Counter, 0xFF ; Проверяем стоп бит
brne UART_ReciveParse_Exit ; Стоит не стоп бит, пропускаем обработку
lds Counter, UART_S_Count ; Читаем значение счетсчика
cpi Counter, 0xFF ; Проверяем стоп бит
brne UART_ReciveParse_Wait ; Стоит не стоп бит, подождем 50 миллисекунд
lds Counter, UART_R_Command ; Читаем из памяти команду
lsl Counter ; Сдвигом влево умножаем содержимое Counter на два.
ldi ZL, low (UART_Commands*2) ; Загружаем адрес нашей таблицы.
ldi ZH, High(UART_Commands*2) ; Старший и младший байты.
clr OSRG ; Сбрасываем регистр OSRG - нам нужен ноль.
add ZL, Counter ; Складываем младший байт адреса. Если возникнет переполнение
adc ZH, OSRG ; То вылезет флаг переноса.
lpm Counter,Z+ ; Загрузили в Counter адрес из таблицы
lpm OSRG,Z ; Старший и младший байт
movw ZH:ZL,OSRG:Counter ; забросили адрес в Z
ijmp ; Переходим к обработке команды
UART_ReciveParse_Wait:
SetTimerTask TS_UART_ReciveParse, 5 ; Вызываем сами себя через 5 милисекунд
UART_ReciveParse_Exit:
StateRestore ; Восстанавливаем состояние из стека
ret
UART_ReciveParse_Return:
lds Counter, UART_S_Count ; Читаем значение счетсчика
cpi Counter, 0x01 ; Проверяем на наличае начального положения каретки
brne UART_ReciveParse_ClearAll ; Не стоит: значит сносим буффера и включаем прерывания
lds OSRG, UART_Packet_CRC8 ; Получаем параметр о CRC8
cpi OSRG, 0x00 ; Если параметр 0x00
;breq UART_ReciveParse_SetAddrs ; то пропускаем проверку CRC8
mk_uart_crc8 UART_S_Count+1 ; Расчитываем CRC8 (выхлоп в OSRG)
sts UART_S_Data_CRC, OSRG ; Сохраняем контрольную сумму
UART_ReciveParse_SetAddrs:
lds OSRG, UART_R_SAddress ; Считываем исходяший адрес
sts UART_S_DAddress, OSRG ; Вписываем адрес получателя
lds OSRG, UART_Address ; Считываем адрес устройства
sts UART_S_SAddress, OSRG ; Вписываем исходяший адрес
lds OSRG, UART_R_Command ; Считываем номер команды
sts UART_S_Command, OSRG ; Вписываем номер команды
rcall UART_SendBuffer ; Вызываем функцию отправки первого байта rjmp UART_ReciveParse_Clear ; Сносим входящий буфер
UART_ReciveParse_ClearAll:
; Сносим данные и выставляем нули
mk_uart_packet_clear UART_R_Count
mk_memory_set UART_R_Count, 0x01
mk_memory_set UART_S_Count, 0xFF
mk_uart_irq_tx_disable ; Запрещаем передачу данных
mk_uart_irq_rx_enable ; Разрешаем прием данных
rjmp UART_ReciveParse_Exit
UART_ReciveParse_Clear:
; Сносим данные и выставляем нули
mk_uart_packet_clear UART_R_Count
mk_memory_set UART_R_Count, 0x01
rjmp UART_ReciveParse_Exit
;=============================================================================
; Список команд протокола
;=============================================================================
; 0x00 - Ping
; пинговалка, спросили - ответили
UART_Command_00:
mk_memory_set UART_S_Count, 0x01 ; Выставляем каретку, для отправки
mk_memory_set UART_S_Data, 0x07
; Копируем LIB_1Wire_DS1820_Strachpad
; push OSRG
; push Counter
; push ZL
; push ZH
; push XL
; push XH
; ldi Counter, 8
; ldi ZL, low (LIB_1Wire_DS1820_Strachpad) ; Загружаем адрес нашей таблицы.
; ldi ZH, High(LIB_1Wire_DS1820_Strachpad) ; Старший и младший байты.
; ldi XL, low (UART_S_Data) ; Загружаем адрес нашей таблицы.
; ldi XH, High(UART_S_Data) ; Старший и младший байты.
; UART_Command_00_data_loop:
; ld OSRG, Z+
; st X+, OSRG
;
; dec Counter
; cpi Counter, 0x00
; brne UART_Command_00_data_loop
;
; pop XH
; pop XL
; pop ZH
; pop ZL
; pop Counter
; pop OSRG
rjmp UART_ReciveParse_Return ; Возвращаемся в процедуру проверки буффера
;=============================================================================
UART_Command_01:
mk_memory_set UART_S_Count, 0x01 ; Выставляем каретку, для отправки
mk_memory_set UART_S_Data, 0x00
Debug_Led_Yellow_On
push OSRG
push Counter
push ZL
push ZH
push XL
push XH
ldi Counter, 2
ldi ZL, low (UART_R_Data) ; Загружаем адрес нашей таблицы.
ldi ZH, High(UART_R_Data) ; Старший и младший байты.
ldi XL, low (LIB_LCD_GS_Buffer) ; Загружаем адрес нашей таблицы.
ldi XH, High(LIB_LCD_GS_Buffer) ; Старший и младший байты.
UART_Command_01_data_loop:
ld OSRG, Z+
st X+, OSRG
dec Counter
cpi Counter, 0x00
brne UART_Command_01_data_loop
rcall LIB_LCD_GS_Transmit
pop XH
pop XL
pop ZH
pop ZL
pop Counter
pop OSRG ; Восстанавливаем регистр
Debug_Led_Yellow_Off
rjmp UART_ReciveParse_Return ; Возвращаемся в процедуру проверки буффера
;=============================================================================
UART_Command_02:
mk_memory_set UART_S_Count, 0x01 ; Выставляем каретку, для отправки
mk_memory_set UART_S_Data, 0xff
Debug_Led_Yellow_Off
push OSRG
push ZL
push ZH
ldi ZL, low (UART_R_Data) ; Загружаем адрес нашей таблицы.
ldi ZH, High(UART_R_Data) ; Старший и младший байты.
ld OSRG, Z
; call LIB_Power_Update
pop ZH
pop ZL
pop OSRG
rjmp UART_ReciveParse_Return ; Возвращаемся в процедуру проверки буфера
;=============================================================================
UART_Commands:
.dw UART_Command_00, UART_Command_01, UART_Command_02
=============================================================================
UART_Packet_Clear:
st Z+, OSRG
dec Counter
brne UART_Packet_Clear
ret
==============================================================================
Основной файл прошивки (generic)
.include "m32def.inc" ; Используем Mega32
;=============================================================================
.include "RTOS-Define.asm" ; Наши все определения переменных
.include "RTOS-Macros.asm" ; Все макросы у нас тут
.include "RTOS-Interrupts.asm" ; Все вектора прерываний
;============================================================================= .ORG INT_VECTORS_SIZE ; Конец таблицы прерываний
;=============================================================================
.include "RTOS-Network.asm" ; Все операции с сетью.+
;=============================================================================
.include "RTOS-InterruptsProcs.asm" ; Все обработчики прерываний
;=============================================================================
; Library Code
;=============================================================================
.include "LIB-LCD.asm" ; LCD экран.
.include "LIB-LCD-GraphShift.asm" ; LCD экран графический на сдвиговых регистрах
; .include "LIB-Power.asm" ; Релюшки.
.include "LIB-1Wire-DS1820.asm" ; DS1820 Датчик темпиратуры
; .include "LIB-I2C.asm" ; I2C
; .include "LIB-I2C-PCF8583.asm" ; PCF8583 - Часы
; .include "LIB-SPI-SDCard.asm" ; S D Card
; .include "LIB-SPI-AD7705.asm" ; AD7705 - 2-/3-Channel 16-Bit, Sigma-Delta ADCs
;=============================================================================
; Main code
;=============================================================================
Reset:
.include "RTOS-Init.asm" ; Все инициализации тут.
;=============================================================================
; Library Code
;=============================================================================
; LCD
LIB_LCD_Init
rcall LIB_LCD_GS_Init
rcall LIB_LCD_GS_On
rcall LIB_LCD_GS_Load
; rcall LIB_Power_Init
rcall LIB_IR_Init
rcall LIB_1Wire_DS1820_Init
;
; I2C RTS
; LIB_IIC_Init
; SPI
; LIB_SPI_Init
; rcall LIB_SPI_SDCard_Init
; rcall LIB_SPI_AD7705_Init
; LIB_SPI_AD7705_Device_On ; Выбираем устройство
rcall SW_Display_Init ; Начинаем отрисовку
;=============================================================================
; Background
;=============================================================================
Background:
rcall Debug_LedBlink
MainLoop:
wdr ; Reset Watch DOG (Если не "погладить" "собаку". то она устроит reset для процессора)
rcall ProcessTaskQueue ; Обработка очереди процессов
rcall Idle ; Простой Ядра
rjmp MainLoop ; Основной цикл микроядра РТОС
;=============================================================================
; все задачи которые будет выболнять микроядро
;=============================================================================
Idle: NOP
RET
;-----------------------------------------------------------------------------
;Task1: RET
;-----------------------------------------------------------------------------
;Task2: RET
;-----------------------------------------------------------------------------
Task3: RET
;-----------------------------------------------------------------------------
Task4: RET
;-----------------------------------------------------------------------------
Task5: RET
;-----------------------------------------------------------------------------
Task6: RET
;-----------------------------------------------------------------------------
Task7: RET
;-----------------------------------------------------------------------------
Task8: RET
;-----------------------------------------------------------------------------
Task9: RET
;-----------------------------------------------------------------------------
Debug_LedBlink:
SetTimerTask TS_Debug_LedBlink, 500
; rcall LIB_SPI_AD7705_Init
; rcall LIB_SPI_AD7705_Configure_CH1
; LIB_SPI_RWtest
; rcall LIB_SPI_AD7705_Read_CH1
; rcall LIB_SPI_AD7705_Read
;
;LIB_SPI_Device_On
; sbis UCSRA, UDRE
; rjmp Skip
; lds OSRG, LIB_SPI_AD7705_CH1_Data_H
; out UDR, OSRD
; rcall Debug_SD
Skip:
lds OSRG, Debug_Led_Red_State
cpi OSRG, 0
breq Light
sbic Debug_Led_Red_N, Debug_Led_Red
rjmp Dark
Light:
Debug_Led_Red_On
ldi OSRG, 0xFF
sts Debug_Led_Red_State, OSRG
RET
Dark:
Debug_Led_Red_Off
ldi OSRG, 0x00
sts Debug_Led_Red_State, OSRG
RET
;Debug_SD:
; ldi ZL, low(LIB_SPI_SDCard_Buffer)
; ldi ZH, high(LIB_SPI_SDCard_Buffer)
; clr LIB_SPI_SDCard_AdrHH ; Очищаем Адресацию
; clr LIB_SPI_SDCard_AdrHL
; clr LIB_SPI_SDCard_AdrLH
clr LIB_SPI_SDCard_AdrLL
; rcall LIB_SPI_SDCard_ReadSector
; ======
; ldi ZL, low(LIB_SPI_SDCard_Buffer)
; ldi ZH, high(LIB_SPI_SDCard_Buffer)
; clr LIB_SPI_SDCard_AdrHH ; Очищаем Адресацию
; clr LIB_SPI_SDCard_AdrHL
; clr LIB_SPI_SDCard_AdrLH
; clr LIB_SPI_SDCard_AdrLL
; rcall LIB_SPI_SDCard_ReadSector
; ldi ZL, low(LIB_SPI_SDCard_Buffer)
; ldi ZH, high(LIB_SPI_SDCard_Buffer)
; ser Counter
; ML:
; ld OSRG, Z+ ; Считываем из памяти нужный бай
; ML2:
; sbis UCSRA, UDRE
; rjmp ML2
; out UDR, OSRG ; Отсылаем текуший байт в порт
; dec Counter
; brne ML
; ret
;=============================================================================
; RTOS Here
;=============================================================================
.include "RTOS-Kernel.asm" ; Подклчюаем ядро ОС
TaskProcs:
.dw Idle ; [00]
.dw UART_ReciveParse ; [01]
.dw UART_SendBuffer ; [02]
.dw LIB_1Wire_DS1820_Task ; [03] LIB_1Wire_DS1820_Task
.dw Task4 ; [04]
.dw LIB_IR_Task ; [05]
.dw Task6 ; [06]
.dw Task7 ; [07]
.dw SW_Display_Update ; [08]
.dw Debug_LedBlink ; [09]
;============================================================================
Управление внешними устройствами при помощи электромагнитных реле:
.equ LIB_Power_P = PORTC
.equ LIB_Power_D = DDRC
.equ LIB_Power_N = PINC
.dseg
LIB_Power_RAM: .byte 1 ; Буффер для приема\\передачи
.eseg
LIB_Power_EEROM: .byte 1 ; Буффер для приема\\передачи
.cseg
LIB_Power_Init:
ser OSRG ; 0xFF
out LIB_Power_D, OSRG ; Инициализируем порт на выход
; Read from EEROM to RAM
ret
; OSRG - New Status
LIB_Power_Update:
push ZL
push ZH
out LIB_Power_P, OSRG
ldi ZL, low (LIB_Power_RAM) ; Загружаем адрес нашей таблицы.
ldi ZH, High(LIB_Power_RAM) ; Старший и младший байты.
st Z, OSRG
pop ZH
pop ZL
ret
; OSRG - Status
LIB_Power_Read:
ret
Работа с датчиком температуры:
.equ LIB_1Wire_DS1820_D = DDRD ;
.equ LIB_1Wire_DS1820_P = PORTD ;
.equ LIB_1Wire_DS1820_N = PIND ;
.equ LIB_1Wire_DS1820_DQ = 4 ; DQ
.dseg
LIB_1Wire_DS1820_Step: .byte 1 ; Следующее событие в очереди
LIB_1Wire_DS1820_Strachpad: .byte 8 ; Текущее значение
LIB_1Wire_DS1820_Buffer: .byte 9 ; Временный буффер
.cseg
.equ LIB_1Wire_DS1820_TaskId = 3 ; ID основного процесса библиотеки
.equ LIB_1Wire_DS1820_TaskParseId= 0xFF ; ID процесса, который надо запустить при получении данных
=====================================================================================
.MACRO LIB_1Wire_DS1820_TaskSet
ldi OSRG, @0
sts LIB_1Wire_DS1820_Step, OSRG
SetTask LIB_1Wire_DS1820_TaskId
.ENDM
.MACRO LIB_1Wire_DS1820_TaskSetTimer
ldi OSRG, @0
sts LIB_1Wire_DS1820_Step, OSRG
SetTimerTask LIB_1Wire_DS1820_TaskId, @1
.ENDM
=====================================================================================
LIB_1Wire_DS1820_Init:
LIB_1Wire_DS1820_TaskSetTimer 0x00, 100
ret
=====================================================================================
LIB_1Wire_DS1820_Task:
push XH
push XL
push ZH
push ZL
push OSRG
push Counter
lds XL, LIB_1Wire_DS1820_Step ; Читаем из памяти команду
lsl XL ; Сдвигом влево умножаем содержимое Counter на два.
ldi ZL, low (LIB_1Wire_DS1820_Commands*2) ; Загружаем адрес нашей таблицы.
ldi ZH, High(LIB_1Wire_DS1820_Commands*2) ; Старший и младший байты.
clr XH ; Сбрасываем регистр OSRG - нам нужен ноль.
add ZL, XL ; Складываем младший байт адреса. Если возникнет переполнение
adc ZH, XH ; То вылезет флаг переноса.
lpm XL,Z+ ; Загрузили в Counter адрес из таблицы
lpm XH,Z ; Старший и младший байт
movw ZH:ZL,XH:XL ; забросили адрес в Z
ijmp ; Переходим к обработке команды
LIB_1Wire_DS1820_Return:
pop Counter
pop OSRG
pop ZL
pop ZH
pop XL
pop XH
ret
=====================================================================================
LIB_1Wire_DS1820_Command_00: ; Инициализация преобразования
rcall LIB_1Wire_DS1820_Reset ; вызов обнуления линии
ldi OSRG, 0xCC ; пропуск идентификации
rcall LIB_1Wire_DS1820_WriteByte
ldi OSRG, 0x44 ; начало преобразования
rcall LIB_1Wire_DS1820_WriteByte
LIB_1Wire_DS1820_TaskSetTimer 0x01, 10
rjmp LIB_1Wire_DS1820_Return
;================
LIB_1Wire_DS1820_Command_01: ; Получение данных
rcall LIB_1Wire_DS1820_Reset ; вызов обнуления линии
ldi OSRG, 0xCC ; пропуск идентификации
rcall LIB_1Wire_DS1820_WriteByte
ldi OSRG, 0xBE ; запрос на данные
rcall LIB_1Wire_DS1820_WriteByte
LIB_1Wire_DS1820_TaskSet 0x02
rjmp LIB_1Wire_DS1820_Return
;================
LIB_1Wire_DS1820_Command_02: ; Получение данных
ldi Counter, 9
ldi ZL, low (LIB_1Wire_DS1820_Buffer) ; Загружаем адрес нашей таблицы.
ldi ZH, High(LIB_1Wire_DS1820_Buffer) ; Старший и младший байты.
LIB_1Wire_DS1820_Command_02_loop:
rcall LIB_1Wire_DS1820_ReadByte
st Z+, OSRG
dec Counter
brne LIB_1Wire_DS1820_Command_02_loop
LIB_1Wire_DS1820_TaskSet 0x03
rjmp LIB_1Wire_DS1820_Return
;================
LIB_1Wire_DS1820_Command_03: Подсчет контрольной суммы и копирование в рабочую область
ldi ZL, low(LIB_1Wire_DS1820_Buffer)
ldi ZH, high(LIB_1Wire_DS1820_Buffer)
ldi Counter, 8
rcall CRC8 ; Считаем контрольную сумму буффера
ld OSRD, Z
cp OSRG, OSRD ; Если не сходится то пропускаем копирование
brne LIB_1Wire_DS1820_Command_03_skip
cli ; Копирование памяти! ОТРУБАЕМ ПРЕРЫВАНИЯ
ldi XL, low(LIB_1Wire_DS1820_Strachpad) ; Копируем буфер в страчпад
ldi XH, high(LIB_1Wire_DS1820_Strachpad)
ldi ZL, low(LIB_1Wire_DS1820_Buffer)
ldi ZH, high(LIB_1Wire_DS1820_Buffer)
ldi Counter, 8
LIB_1Wire_DS1820_Command_03_loop:
ld OSRG, Z+
st X+, OSRG
dec Counter
brne LIB_1Wire_DS1820_Command_03_loop
sei ; Включаем прерывания
ldi OSRG, LIB_1Wire_DS1820_TaskParseId ; Загружаем ID процедуры обработки
cpi OSRG, 0xFF ; Если 0xFF то пропускаем обработку
breq LIB_1Wire_DS1820_Command_03_skip
SetTask LIB_1Wire_DS1820_TaskParseId ; Ставим в очередь процедуру обработки
LIB_1Wire_DS1820_Command_03_skip:
LIB_1Wire_DS1820_TaskSet 0x00
rjmp LIB_1Wire_DS1820_Return
;================
LIB_1Wire_DS1820_Commands:
.dw LIB_1Wire_DS1820_Command_00, LIB_1Wire_DS1820_Command_01, LIB_1Wire_DS1820_Command_02, LIB_1Wire_DS1820_Command_03
=====================================================================================
LIB_1Wire_DS1820_Reset:
cbi LIB_1Wire_DS1820_P, LIB_1Wire_DS1820_DQ
sbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 220 ; обнуление 600мкс
rcall LIB_1Wire_DS1820_Delay
cbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 220 ; принятие импульса присутствия 600мкс
rcall LIB_1Wire_DS1820_Delay
ret
=====================================================================================
; IN - OSRG - Command
LIB_1Wire_DS1820_WriteByte:
push Counter
ldi Counter,8
LIB_1Wire_DS1820_WriteByte_loop:
lsr OSRG ; Старший бит в перенос
brcs LIB_1Wire_DS1820_WriteByte_loop_put_1 ; пререход если CF=1
LIB_1Wire_DS1820_WriteByte_loop_put_0:
push OSRG
cbi LIB_1Wire_DS1820_P, LIB_1Wire_DS1820_DQ
sbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 26 ; 70мкс
rcall LIB_1Wire_DS1820_Delay
cbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
rjmp LIB_1Wire_DS1820_WriteByte_loop_wait
LIB_1Wire_DS1820_WriteByte_loop_put_1:
push OSRG
cbi LIB_1Wire_DS1820_P, LIB_1Wire_DS1820_DQ
sbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 1 ; 2,7мкс
rcall LIB_1Wire_DS1820_Delay
cbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 20 ; 60мкс - продление "1"
rcall LIB_1Wire_DS1820_Delay
rjmp LIB_1Wire_DS1820_WriteByte_loop_wait
LIB_1Wire_DS1820_WriteByte_loop_wait:
ldi OSRG, 1 ; 2,7мкс
rcall LIB_1Wire_DS1820_Delay
pop OSRG
dec Counter
brne LIB_1Wire_DS1820_WriteByte_loop ; проверка счетчика
pop Counter
ret
=====================================================================================
LIB_1Wire_DS1820_ReadByte:
push Counter
push OSRD
clr OSRD
ldi Counter, 8
LIB_1Wire_DS1820_ReadByte_loop:
cbi LIB_1Wire_DS1820_P, LIB_1Wire_DS1820_DQ
sbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 1 ; 2,7мкс
rcall LIB_1Wire_DS1820_Delay
cbi LIB_1Wire_DS1820_D, LIB_1Wire_DS1820_DQ
ldi OSRG, 3 ; 2,7мкс
rcall LIB_1Wire_DS1820_Delay
sbic LIB_1Wire_DS1820_N, LIB_1Wire_DS1820_DQ
; читаем бит с DQ и пропускаем переход если бит пустой
rjmp LIB_1Wire_DS1820_loop_get_1
LIB_1Wire_DS1820_loop_get_0:
clc
rjmp LIB_1Wire_DS1820_loop_render
LIB_1Wire_DS1820_loop_get_1:
sec
; rjmp LIB_1Wire_DS1820_loop_render
LIB_1Wire_DS1820_loop_render:
ror OSRD
ldi OSRG, 22 ; 2,7мкс
rcall LIB_1Wire_DS1820_Delay
dec Counter
brne LIB_1Wire_DS1820_ReadByte_loop
mov OSRG, OSRD
pop OSRD
pop Counter
ret
=====================================================================================
; IN - OSRG
LIB_1Wire_DS1820_Delay:
push Counter
LIB_1Wire_DS1820_Delay_loop:
ldi Counter, 3 ; 2,75uS*wreg
LIB_1Wire_DS1820_Delay_loop_sub:
nop
dec Counter
brne LIB_1Wire_DS1820_Delay_loop_sub
dec OSRG
brne LIB_1Wire_DS1820_Delay_loop
pop Counter
ret
=====================================================================================
Реализация I2C протокола:
..MACRO LIB_IIC_Init
mk_register_set TWBR,0xC0 ; Настройка частоты работы TWI
mk_register_set TWSR, (1<<TWPS1|1<<TWPS0)
.ENDM
; Даем старт на линию I2C
IIC_START:
mk_register_set TWCR,1<<TWINT|1<<TWSTA|1<<TWEN|0<<TWIE
IIC_S:
IN OSRG,TWCR
ANDI OSRG,1<<TWINT
BREQ IIC_S ; Ждем пока передатчик IIC выполнит старт
RET
;-----------------------------------------------------------------------------
;Посылаем байт по IIC
IIC_BYTE:
OUT TWDR,OSRG
mk_register_set TWCR,1<<TWINT|1<<TWEN|0<<TWIE
IIC_B:
IN OSRG,TWCR
ANDI OSRG,1<<TWINT ; Ждем пока передатчик пошлет байт
BREQ IIC_B
RET
;-----------------------------------------------------------------------------
; Принять байт.
IIC_RCV:
mk_register_set TWCR,1<<TWINT|1<<TWEN|1<<TWEA|0<<TWIE
IIC_R:
IN OSRG,TWCR
ANDI OSRG,1<<TWINT
BREQ IIC_R ; Ждем пока байт будет принят
RET
;-----------------------------------------------------------------------------
; Принять последний байт.
IIC_RCV2:
mk_register_set TWCR,1<<TWINT|1<<TWEN|0<<TWEA|0<<TWIE
IIC_R2:
IN OSRG,TWCR
ANDI OSRG,1<<TWINT ; Ждем пока байт будет принят
BREQ IIC_R2
RET
;-----------------------------------------------------------------------------
; Сгенерировать STOP
IIC_STOP:
mk_register_set TWCR,1<<TWINT|1<<TWSTO|1<<TWEN|0<<TWIE
IIC_ST:
IN OSRG,TWCR
ANDI OSRG,1<<TWSTO
BREQ IIC_ST ; Ждем пока не будет готов стоп.
RET
Реализация часов и календаря:
.equ LIB_SPI_AD7705_D = DDRB ;
.equ LIB_SPI_AD7705_P = PORTB ;
.equ LIB_SPI_AD7705_N = PINB ;
.equ LIB_SPI_AD7705_MOSI = 5 ;
.equ LIB_SPI_AD7705_MISO = 6 ;
.equ LIB_SPI_AD7705_SCK = 7 ;
.equ LIB_SPI_AD7705_DRDY = 2 ;
.equ LIB_SPI_AD7705_CS = 1 ;
=====================================================================================
.MACRO LIB_SPI_AD7705_Device_On
cbi LIB_SPI_AD7705_P, LIB_SPI_AD7705_CS ; Опускаем строб(линия инверная)
.ENDM
.MACRO LIB_SPI_AD7705_Device_Off
sbi LIB_SPI_AD7705_P, LIB_SPI_AD7705_CS ; Поднимаем строб
.ENDM
=====================================================================================
LIB_SPI_AD7705_COM:
sbis UCSRA, UDRE
rjmp LIB_SPI_AD7705_COM
out UDR, OSRG
ret
=====================================================================================
LIB_SPI_AD7705_Init:
cbi LIB_SPI_AD7705_D, LIB_SPI_AD7705_DRDY ; Порт ны вход
sbi LIB_SPI_AD7705_P, LIB_SPI_AD7705_DRDY ; С поддяжкой в 100к до питания
sbi LIB_SPI_AD7705_D, LIB_SPI_AD7705_MOSI ; Порт на выход
sbi LIB_SPI_AD7705_D, LIB_SPI_AD7705_SCK ; Порт на выход
sbi LIB_SPI_AD7705_D, LIB_SPI_AD7705_CS ; Порт на выход
sbi LIB_SPI_AD7705_P, LIB_SPI_AD7705_CS ; Поднимаем строб
cbi LIB_SPI_AD7705_D, LIB_SPI_AD7705_MISO ; Порт ны вход
sbi LIB_SPI_AD7705_P, LIB_SPI_AD7705_MISO ; С поддяжкой в 100к до питания
mk_register_set GICR, (1<<INT2) ; Включаем прерывание на DRDY
; mk_register_set SPCR, ((1<<MSTR)|(1<<CPOL)|(1<<CPHA)|(0<<SPI2X)|(1<<SPR1)|(1<<SPR0))
; mk_register_set SPCR, ((1<<SPE)|(1<<MSTR)|(1<<CPOL)|(1<<CPHA)|(0<<SPI2X)|(1<<SPR1)|(1<<SPR0))
mk_register_set SPCR, 0b1011111
ret
=====================================================================================
; OSRG - Input byte
LIB_SPI_AD7705_WriteToReg:
LIB_SPI_AD7705_Device_On ; Выбираем устройство
out SPDR, OSRG ; Начать передачу
LIB_SPI_AD7705_WriteToReg_wait:
sbis SPSR, SPIF ; Ожидаем конца передачи
rjmp LIB_SPI_AD7705_WriteToReg_wait
LIB_SPI_AD7705_Device_Off ; Выбираем устройство
in OSRG, SPDR ; Чтение данных
rcall LIB_SPI_AD7705_COM
ret
=====================================================================================
LIB_SPI_AD7705_Read:
rcall LIB_SPI_AD7705_Wait_DRDY
push OSRG
push Counter
ldi Counter, 2
LIB_SPI_AD7705_Device_On ; Выбираем устройство
LIB_SPI_AD7705_Read_loop:
clr OSRG
out SPDR, OSRG ; Начать передачу
LIB_SPI_AD7705_Read_loop_wait:
sbis SPSR, SPIF ; Ожидаем конца передачи
rjmp LIB_SPI_AD7705_Read_loop_wait
in OSRG, SPDR
rcall LIB_SPI_AD7705_COM
dec Counter
brne LIB_SPI_AD7705_Read_loop
LIB_SPI_AD7705_Device_Off ; Выбираем устройство
pop Counter
pop OSRG
ret
=====================================================================================
LIB_SPI_AD7705_Configure_CH1:
push OSRG
ldi OSRG, 0x20 ; Send to Comm Reg: Next Write Clk
rcall LIB_SPI_AD7705_WriteToReg
ldi OSRG, 0x01 ; Send to ClkReg: Clock Bits and Update rate
rcall LIB_SPI_AD7705_WriteToReg
ldi OSRG, 0x10 ; Send to Comm Reg: write setup
rcall LIB_SPI_AD7705_WriteToReg
ldi OSRG, 0x44 ; Send to Setup: FSYNC, Gain, Conditions, Self Calibration
rcall LIB_SPI_AD7705_WriteToReg
rcall LIB_SPI_AD7705_Wait_DRDY
pop OSRG
ret
LIB_SPI_AD7705_Read_CH1:
push OSRG
ldi OSRG, 0x38
rcall LIB_SPI_AD7705_WriteToReg
rcall LIB_SPI_AD7705_Read
pop OSRG
ret
=====================================================================================
LIB_SPI_AD7705_Wait_DRDY:
; sbic LIB_SPI_AD7705_N, LIB_SPI_AD7705_DRDY ; читаем бит с DRDY и пропускаем переход если бит пустой
; rjmp LIB_SPI_AD7705_Wait_DRDY
ret
Реализация Micro SD интерфейса:
.def LIB_SPI_SDCard_CMD = r19 ; r16
.def LIB_SPI_SDCard_CRC = r20 ; r17
.def LIB_SPI_SDCard_AdrHH = r24 ; r4
.def LIB_SPI_SDCard_AdrHL = r25 ; r5
.def LIB_SPI_SDCard_AdrLH = r26 ; r6
.def LIB_SPI_SDCard_AdrLL = r27 ; r7
.dseg
LIB_SPI_SDCard_Buffer: .byte 512 ; Буффер для приема\\передачи
.cseg
.equ LIB_SPI_SDCard_D = DDRA
.equ LIB_SPI_SDCard_P = PORTA
.equ LIB_SPI_SDCard_N = PINA
.equ LIB_SPI_SDCard_CardDetect = 0 ; Cable Select AD7705
=====================================================================================
LIB_SPI_SDCard_Init:
; Hardware
cbi LIB_SPI_SDCard_D, LIB_SPI_SDCard_CardDetect ; Настроили на вход
; Software
LIB_SPI_Device_Off ; Выбираем устройство
LIB_SPI_Device_On_SD ; Выбираем устройство
ldi Counter, 10 ; 10 раз отсылаем FF
LIB_SPI_SDCard_Init_loop:
ser OSRG ; 0xFF
rcall LIB_SPI_Transmit
dec Counter
brne LIB_SPI_SDCard_Init_loop
LIB_SPI_Device_On_SD ; Выбираем устройство
ser OSRG ; 0xFF - Так вроде однозначнее получается
rcall LIB_SPI_Transmit
clr LIB_SPI_SDCard_AdrHH ; Очищаем Адресацию
clr LIB_SPI_SDCard_AdrHL
clr LIB_SPI_SDCard_AdrLH
clr LIB_SPI_SDCard_AdrLL
ldi LIB_SPI_SDCard_CMD, 0x40 ; Отправляем команду переключения в SPI (RESET)
ldi LIB_SPI_SDCard_CRC, 0x95
rcall LIB_SPI_SDCard_SendCommand
andi OSRD, 0x01 ; Проверка на in_idle_state = 1
breq LIB_SPI_SDCard_Init_Fault
;ldi LIB_SPI_SDCard_CMD, 0x48
; Отправляем команду проверки рабочих условий (напряжение, ...)
;ldi LIB_SPI_SDCard_CMD, 0x7A ; Отправляем команду чтения регистра OCR
LIB_SPI_SDCard_Init_wait_idle:
ldi LIB_SPI_SDCard_CMD, 0x77
; Команда APP_CMD - следующая команда будет из расширенного набора
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
ldi LIB_SPI_SDCard_CMD, 0x69
; Инициализация карты и сообщение ей о том, что High Cap не поддерживается
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
andi OSRD, 0x01 ; Проверка на in_idle_state = 0
brne LIB_SPI_SDCard_Init_wait_idle
; Нужно подавать эту команду, пока карта не выйдет из idle state
ldi LIB_SPI_SDCard_AdrLH, 2
ldi LIB_SPI_SDCard_CMD, 0x50 ; Установка размера блока в 512 байт
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
rjmp LIB_SPI_SDCard_Init_OK ; Все хорошо
=====================================================================================
LIB_SPI_SDCard_Init_Fault:
clc
ret
=====================================================================================
LIB_SPI_SDCard_Init_OK:
sec
ret
=====================================================================================
; LIB_SPI_SDCard_CMD | LIB_SPI_SDCard_CRC
; LIB_SPI_SDCard_AdrHH - LIB_SPI_SDCard_AdrLL
LIB_SPI_SDCard_SendCommandWithoutCRC:
ser LIB_SPI_SDCard_CRC ; 0xFF
LIB_SPI_SDCard_SendCommand:
ser OSRG ; 0xFF
rcall LIB_SPI_Transmit ; Пустой байт
mov OSRG, LIB_SPI_SDCard_CMD
rcall LIB_SPI_Transmit ; Команда
mov OSRG, LIB_SPI_SDCard_AdrHH
rcall LIB_SPI_Transmit ; Старший бит агрумента
mov OSRG, LIB_SPI_SDCard_AdrHL
rcall LIB_SPI_Transmit ; 3й байт
mov OSRG, LIB_SPI_SDCard_AdrLH
rcall LIB_SPI_Transmit ; 2й байт
mov OSRG, LIB_SPI_SDCard_AdrLL
rcall LIB_SPI_Transmit ; Старший бит агрумента
mov OSRG,LIB_SPI_SDCard_CRC ;
rcall LIB_SPI_Transmit ; CRC
ser OSRG ; Выходной байт [при выполнении команды инициализации здесь
rcall LIB_SPI_Transmit ; проскакивает 3F, что можно перепутать с R1]
LIB_SPI_SDCard_SendCommand_loop: ; Ожидание ответа
ser OSRG
rcall LIB_SPI_Transmit
tst OSRD
brmi LIB_SPI_SDCard_SendCommand_loop
push OSRD ; Если ответ формата R2 - в r0 будет его значение
ser OSRG
rcall LIB_SPI_Transmit
mov r0, OSRD
pop OSRD
mov OSRG, OSRD
andi OSRG, 0x7E
breq LIB_SPI_SDCard_SendCommand_Ok
ori OSRG, 0x80 ; Код ошибки
LIB_SPI_SDCard_SendCommand_Fault:
clc
LIB_SPI_SDCard_SendCommand_Ok:
ret
=====================================================================================
; Чтение блока данных r4..r7 в Z+
LIB_SPI_SDCard_ReadSector:
LIB_SPI_Device_Off ; Выбираем устройство
LIB_SPI_Device_On_SD ; Выбираем устройство
rcall LIB_SPI_SDCard_Mul512
ldi LIB_SPI_SDCard_CMD, 0x51 ; Read single block
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
LIB_SPI_SDCard_ReadSector_wait:
ser OSRG
rcall LIB_SPI_Transmit
cpi OSRD, 0xFE ; Карта готова к передаче данных
breq LIB_SPI_SDCard_ReadSector_do
mov OSRG, OSRD
andi OSRG, 0xF0
brne LIB_SPI_SDCard_ReadSector_wait ; Карта еше не готова
ori OSRD, 0x40 ; Старшие четыре бита = 0 - это ситуация ошибки чтения
rjmp LIB_SPI_SDCard_ReadSector_Fault ; Ошибка!!
LIB_SPI_SDCard_ReadSector_do:
clr Counter ; Выгружаем данные из карты
LIB_SPI_SDCard_ReadSector_do_loop:
ser OSRG
rcall LIB_SPI_Transmit
st Z+, OSRD
ser OSRG
rcall LIB_SPI_Transmit
st Z+, OSRD
dec Counter
brne LIB_SPI_SDCard_ReadSector_do_loop
ser OSRG ; CRC
rcall LIB_SPI_Transmit
ser OSRG ; CRC
rcall LIB_SPI_Transmit
ser OSRG
rcall LIB_SPI_Transmit
rjmp LIB_SPI_SDCard_ReadSector_Ok
=====================================================================================
LIB_SPI_SDCard_ReadSector_Ok:
LIB_SPI_Device_Off ; Выбираем устройство
sec
ret
=====================================================================================
LIB_SPI_SDCard_ReadSector_Fault:
LIB_SPI_Device_Off ; Выбираем устройство
clc
ret
=====================================================================================
; Запись блока данных r4..r7 из Z+
LIB_SPI_SDCard_WriteSector:
LIB_SPI_Device_Off ; Выбираем устройство
LIB_SPI_Device_On_SD ; Выбираем устройство
rcall LIB_SPI_SDCard_Mul512
ldi LIB_SPI_SDCard_CMD, 0x58 ; Write single block
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
ldi OSRG, 0xFE
rcall LIB_SPI_Transmit
LIB_SPI_SDCard_WriteSector_do:
clr Counter ; Заряжаем данные в карту
LIB_SPI_SDCard_WriteSector_do_loop:
ld OSRG, Z+
rcall LIB_SPI_Transmit
ld OSRG, Z+
rcall LIB_SPI_Transmit
dec Counter
brne LIB_SPI_SDCard_WriteSector_do_loop
ser OSRG
rcall LIB_SPI_Transmit ; Игнорируемые байты контрольной суммы
ser OSRG
rcall LIB_SPI_Transmit
ser OSRG ; Пустой байт
rcall LIB_SPI_Transmit Ожидаем кода подтверждения
andi OSRD, 0x1F
cpi OSRD, 0x05
breq LIB_SPI_SDCard_WriteSector_wait ; Данные были приняты
ori OSRD, 0x60 ; Ошибка приёма данных
rjmp LIB_SPI_SDCard_WriteSector_Fault
LIB_SPI_SDCard_WriteSector_wait: ; Здесь мы висим, ждём выполнения записи
ser OSRG
rcall LIB_SPI_Transmit
cpi OSRD, 0xFF
brne LIB_SPI_SDCard_WriteSector_wait
ldi LIB_SPI_SDCard_CMD, 0x4D ; Проверка записи
rcall LIB_SPI_SDCard_SendCommandWithoutCRC
tst r0
breq LIB_SPI_SDCard_WriteSector_Ok
clr OSRG ; Ошибка R2, код ошибки в r0
rjmp LIB_SPI_SDCard_WriteSector_Fault
=====================================================================================
LIB_SPI_SDCard_WriteSector_Ok:
LIB_SPI_Device_Off ; Выбираем устройство
sec
ret
=====================================================================================
LIB_SPI_SDCard_WriteSector_Fault:
LIB_SPI_Device_Off ; Выбираем устройство
clc
ret
=====================================================================================
LIB_SPI_SDCard_Mul512:
ldi OSRG, 0x20 ; Код возможной ошибки
tst LIB_SPI_SDCard_AdrLL
brne LIB_SPI_SDCard_Mul512_Fault ; Будут потеряны биты адреса
tst LIB_SPI_SDCard_AdrLH
brmi LIB_SPI_SDCard_Mul512_Fault
mov LIB_SPI_SDCard_AdrLL, LIB_SPI_SDCard_AdrLH
mov LIB_SPI_SDCard_AdrLH, LIB_SPI_SDCard_AdrHL
mov LIB_SPI_SDCard_AdrHL, LIB_SPI_SDCard_AdrHH
clr LIB_SPI_SDCard_AdrHH
lsl LIB_SPI_SDCard_AdrHL
rol LIB_SPI_SDCard_AdrLH
rol LIB_SPI_SDCard_AdrLL
sec
ret
LIB_SPI_SDCard_Mul512_Fault:
clc
ret
А также другие работы, которые могут Вас заинтересовать | |||
58723. | Рossessives; possessive adjectives; yes/no questions with to be, exchange information about your family | 1.57 MB | |
Your hands are dirty. Wash .... please. 2. Emma is cleaning the car. Help.... please. 3. My little brother is hungry. Give .... something. 4. Ive got a bike and I can ride.... 5. Beth and Al are in the yard. Can you see .... ? | |||
58727. | Творческая работа. Анализ стихотворения В. А. Жуковского «Море» («Вечер») | 30.5 KB | |
Романтические баллады, поэмы, элегии и песни Жуковского как бы «шли из сердца и к сердцу; они говорили не о ярком блеске иллюминаций, не о громе побед, а о таинствах сердца, о таинствах внутреннего мира души». | |||
58729. | Країна, мову якої ми вивчаємо | 179.5 KB | |
Освітні задачі: розширяти філологічний кругозір учнів; вдосконалювати навички читання; формувати загально-навчальні вміння: самостійно працювати з текстом. Розвиваючі задачі: розвивати навички вивчаючого читання; розвивати та вдосконалювати мовні вміння у читанні... | |||