Hosted by uCoz

Переход на главную страницу

Абонемент 2009/2010 года.

(Девиз работы: быть, а не казаться)


Темы:
1. "Въезд" в ПИКи 18-й серии.
2. Описание программатора-отладчика PicKit2 и работа с ним.
3. Поэтапное описание процесса конструирования анализатора импульсных последовательностей (PIC18F252, графический модуль, с использованием PicKit2).

Эта информация в состав CD не входит и предоставляется только пользователям CD (участникам "Обмена информацией и идеями"). Порядок ее предоставления "расписан" на CD.


Оглавление


1. "Въезд" в ПИКи 18-й серии


Статья 1: Организация памяти программ ПИКов 18-й серии.
Статья 2: Стек ПИКов 18-й серии (сравнительная оценка со стеком ПИКов среднего семейства). Общие положения. "Плавающая" вершина стека. "Органы управления" стеком. Флаги.
Статья 3: Особенности назначения "плавающей" вершины стека. Стек как устройство оперативной памяти адресов возвратов, с очисткой по сбросу и записью данных "по верху".
Статья 4: Чтение адреса возврата из вершины стека. Запись адреса возврата в вершину стека. И то, и другое (чтение - модификация - запись). Что такое команда rcall и "с чем её едят"?
Статья 5: Команда PUSH и команда POP. Разделение стека на "верхнюю стек-зону" и "нижнюю стек-зону". Принцип "постановки в стек-очередь".
Статья 6: Команда RESET. Исчерпание стека. Переполнение стека. Работа стека по кольцу. Сбросы по исчерпанию стека и по переполнению стека.
Статья 7: Быстрые регистры стека и работа с ними. Что такое FAST.
Статья 8: Работа в MPLAB версии 8.10 (и выше). Основные положения.
Статья 9: "Въезд" в общую структуру слова конфигурации ПИКов 18-й серии. Отображение слова конфигурации в IcProg105. Два способа обращения к битам регистров конфигурации.
Статья 10: Структура области оперативной памяти. "Штатная банкорулилка". "Матрёшечный" банк быстрого доступа и как это друг с другом уживается.
Статья 11: Косвенная адресация в ПИКах 18-й серии и ее отличия от косвенной адресации в ПИКах среднего семейства. Команда lfsr и 5 способов инициализации исполнительной части процедуры косвенной адресации.
Статья 12: EEPROM-память данных ПИКов 18-й серии в радостном сравнении с EEPROM-памятью данных ПИКов среднего семейства.
Статья 12_А (число 13 не люблю): Что такое Flash-память программ. Организация табличного чтения массива байтов в ПИКах 18-й серии. Практическое применение директив, работающих с Flash-памятью программ.
Статья 14: Табличная запись массива байтов во Flash-память программ. Подпрограмма такой записи и объяснение ее работы.
Статья 15: Стирание массива байтов из Flash-памяти программ. Подпрограмма такого стирания и объяснение ее работы.
Статья 16: Регистры W и WREG. "Разграничение полномочий".
Статья 17: Модуль аппаратного умножения 8х8. Объяснение алгоритма знакового умножения. Беззнаковое и знаковое умножение с использованием этого модуля.
Статья 18: Различные варианты табличных, вычисляемых переходов (в приложении к ПИКам 18-й серии).
Статья 19: Прерывания. Общие положения. "Разборки" с приоритетами.
Статья 20: Прерывания. "Подглобальная, приоритетная рулёжка". Примеры организации "влётов" в подпрограммы прерываний. Аппаратное и программное сохранение контекста.
Статья 21: Порты ввода/вывода PIC18F252 и их отличия от портов ввода/вывода ПИКов среднего семейства. Функции регистров LATx.
Статья 22: Порты ввода/вывода PIC18F252 (продолжение).
Статья 23: Режимы работы тактового генератора, с "упором" на режим HS+PLL (до 40 Мгц). Работа с двумя источниками тактового сигнала.
Статья 24: Система команд PIC18Fxx2 (в сравнении с системой команд ПИКов среднего семейства). Функции флагов N и OV.
Статья 25: Особенности модуля TMR0 и сторожевого таймера PIC18Fxx2 (в сравнении с ПИКами среднего семейства).
Статья 26: Особенности модуля TMR1 PIC18Fxx2 (в сравнении с ПИКами среднего семейства).
Статья 27: Особенности модулей TMR2, TMR3 и CCP PIC18Fxx2 (в сравнении с ПИКами среднего семейства).



2. Описание программатора-отладчика PicKit2 и работа с ним


Статья 28: Инструкция по сборке внешней платы USB-программатора PicKit2.
Статья 29: Программатор-отладчик PicKit2. Руководство пользователя. Общие положения. Подготовка к работе в режиме программатора.

Дистрибутив программы PICkit 2 Programmer версии 2.51 (архив 3,8 Мб.) можно скачать: здесь.
Дистрибутив программы PICkit 2 Programmer версии 2.61 (архив 3,9 Мб.) можно скачать: здесь.

Статья 30: Программатор-отладчик PicKit2. Руководство пользователя. Работа в режиме программатора.
Статья 31: Программатор-отладчик PicKit2. Руководство пользователя. Внутрисхемное программирование.
Статья 32: Программатор-отладчик PicKit2. Руководство пользователя. Внутрисхемная отладка. Общие положения.
Статья 33: Программатор-отладчик PicKit2. Руководство пользователя. Внутрисхемная отладка. Изготовление очень простой ("моргалка" на одном светодиоде), учебно-тренировочной, отладочной платы (под PIC18F252 / PIC16F873A).
Статья 34: Программатор-отладчик PicKit2. Руководство пользователя. Проверка работоспособности внешнего устройства (на основе PIC18F252 или PIC16F873A), управляемого из среды MPLAB.
Статья 35: Программатор-отладчик PicKit2. Руководство пользователя. Подготовка к внутрисхемной отладке проекта Trening (Trening1).
Статья 36: Программатор-отладчик PicKit2. Руководство пользователя. Отслеживание работы проекта Trening (Trening1).
Статья 37: Программатор-отладчик PicKit2. Руководство пользователя. Отслеживание работы проекта Trening (Trening1). Продолжение.
Статья 38: Программатор-отладчик PicKit2. Руководство пользователя. Отладка проекта Trening (Trening1).
Статья 39: Русификация MPLAB от версии 8.10 включительно и далее (в части касающейся работы с PicKit2). Работа с расширенными точками остановок.
Статья 40: Изменение значения Uпит., в случае "запитки" от PicKit2 (работа в режимах №1В и №2). Переход на внешнюю "запитку".
Статья 41: Функции тех "кнопок" панелей управления программатором (режимы №1В и №2), о которых ранее не упоминалось, и работа с ними. Обновление "прошивки" аппаратной части программатора.
Статья 42: Рабочие и контрольные панели режимов №2 и №1В. Часто задаваемые вопросы и ответы на них. Список ошибок и способы их устранения.
Статья 43: Перевод официальной версии Руководства пользователя PicKit2 в книжный формат (PDF).

Архив (1,1 Мб.) официальной версии Руководства пользователя PicKit2 можно скачать: здесь.




3. Поэтапное описание процесса конструирования анализатора импульсных последовательностей (PIC18F252, графический модуль, с использованием PicKit2)


Статья 44: Окидывание орлиным взором текущего поля битвы. Расстановка приоритетов. Составление первичного плана удушения проблем.
Статья 45: Составление исходной, принципиальной схемы. Изготовление соответствующего устройства.


Статья 46: Изготовление "обслуги", которая необходима для дальнейшей работы (простой, широкодиапазонный, импульсный генератор, с прямым и инверсным выходами, совмещенный с 3-фазным формирователем).
Статья 47: Психоподготовка к "мозговому штурму" (доведение уровня праведного гнева до нужной кондиции). Организация первичной "любви" между PIC18F252 и графическим модулем (пока, в пределах одного "кадра").
Статья 48: Способ повышения эффективности использования фиксированного ресурса области оперативной памяти ПИКа (значительное увеличение "длины эпюрной портянки" за счет сокращения избыточности).
Статья 49: Практическая реализация задумки предыдущей статьи: "разархиватор", работающий со смоделированными результатами архивации, а также и вывод этих результатов в дисплей графического модуля (в виде одного эпюрного "кадра", с возможностью организации "многокадровой" прокрутки).
Статья 50: Переход с одноканального отображения эпюр на двухканальное (работа со смоделированными результатами архивации).
Статья 51: Организация односторонней, многокадровой, горизонтальной прокрутки эпюр двух каналов (работа со смоделированными результатами архивации).
Статья 52: Устранение "межкристальной бяки" в эпюрах, состоящих из самых коротких импульсов и организация нумерации "кадров" (работа со смоделированными результатами архивации).
Статья 53: Коррекция логики архивирования (под назначенный числовой "лимит"). Увеличение "потолка" счетчика "кадров" с 99 до 129. Визуальное оформление последнего "кадра" (для случаев переполнения каналов с "хвостиками" или без них. Работа со смоделированными результатами архивации).
Статья 54: Прокрутка вправо имеется. Теперь "ваяю" прокрутку влево. Организация правого и левого ограничителей прокрутки (работа со смоделированными результатами архивации).
Статья 55: Организация дополнительной функции полуавтоматической, горизонтальной прокрутки вправо/влево, а заодно и сценариев – подсказок (работа со смоделированными результатами архивации).
Статья 56: Командная оптимизация текста предыдущей программы (минус 426 слов), а заодно и PIC18-практикум по замене табличных, вычисляемых переходов на табличное чтение Flash-памяти программ.
Статья 57: Организация "пищалки", работающей по заданному алгоритму, излучатель которой подключен к выводу порта с иной функциональностью (не к свободному выводу порта. Совмещение функций). Увеличение скорости прокрутки влево и ее приближение к скорости прокрутки вправо (работа со смоделированными результатами архивации).
Статья 58: Конструирование одноканального архиватора, работающего с "живыми", импульсными последовательностями, рассчитанного на обработку уровней, протяжённость которых превышает числовой лимит. Создание лимитных маркеров, системы синхронного (по фронту или спаду), ручного пуска с функцией автоопределения значений логических уровней, не содержащих в себе перепадов.
Статья 59: Отложенные прерывания как наиболее эффективный способ решения проблем, связанных с задействованием нескольких источников прерываний. Конструирование двухканального (двухтактного) архиватора, а также соответствующих систем синхронного пуска и автообнаружения значений длинных уровней.
Статья 60: Создание первого пункта меню - 8-позиционный выбор значения горизонтальной развёртки, с энергонезависимым, автоматическим запоминанием текущей позиции и с возможностью возврата в меню при любом "раскладе".
Статья 61: Введение в программу дополнительного, одноканального режима работы. Создание второго пункта меню - выбор одноканального или двухканального режима работы. "Ваяние" соответствующих сценариев-подсказок. Энергонезависимое, автоматическое запоминание выбранного режима.
Статья 62: Увеличение количества перепадов, выводимых на индикацию в одноканальном режиме работы, с 256-ти до 1024-х (расширение задействованного, под этот режим, объема оперативной памяти в 4 раза).
Статья 63: Увеличение количества перепадов, выводимых на индикацию в двухканальном режиме работы, с 256-ти до 512-ти (для каждого канала).
Статья 64: Переход с однобайтного на двухбайтный счет "кадров". Замена "старых" ПП 2/10 преобразования и ПП вывода на индикацию номера "кадра" (счёт до 129) на "новые" (счёт до 999). Функциональная коррекция организации левой прокрутки в том случае, если количество "кадров" превышает 256.
Статья 65: Первый этап создания режима автоматического выбора наиболее оптимальной позиции горизонтальной развёртки: создание дополнительного пункта меню, в котором можно выбрать ручной или автоматический режим развёртки, с запоминанием этого режима в EEPROM-памяти данных.
Статья 66: Второй этап создания режима автоматического выбора наиболее оптимальной позиции горизонтальной развёртки: непосредственно создание этого режима (для одноканальной работы).
Статья 67: Продолжение второго этапа создания режима автоматического выбора наиболее оптимальной позиции горизонтальной развёртки, только в приложении к двухканальной работе.
Статья 68: Организация подпункта меню, который обеспечивает переход в 3-канальный режим. "Освобождение" ранее занятого, 3-го канала косвенной адресации, под 3-й, сигнальный канал (перевод ПП BIN2_10 с косвенной адресации на прямую). Создание "заготовки" 3-канального архиватора (1-й и 2-й каналы работают с "живыми" сигналами, а 3-й канал работает с программной моделью сигнала). Расширение функциональности 1/2-канального разархиватора до 1/2/3-канального.
Статья 69: "Ваяние", 3-канального (3-тактного) архиватора (во всех каналах, работа с "живыми" сигналами), в комплексе с "рихтовкой" процедуры обнаружения значений уровней, присутствующих на входах каналов, и процедуры авторазвёртки. Закономерное возникновение чувства глубокого, морального удовлетворения от созерцания вожделеемой, 3-фазной картинки (последний "кадр" пока не в счёт, но "разборки" с ним неизбежны).
Статья 70: Командная оптимизация архиваторов и меню, в комплексе с "наведением в них оргпорядка".
Статья 71: Создание подпрограммы формирования последнего "кадра" (под 3-канальный режим).
Статья 72: Устранение мелких, программных недочетов в ПП разархиватора и в ПП формирования последнего "кадра".
Статья 73: Формулировка принципов перехода от "стандартных" ветвлений, работающих с флагами ядра, к более "компактным" ветвлениям, которые осуществляются с помощью команд безусловных, относительных переходов. Командная оптимизация 3-канального разархиватора и ПП обработки последнего "кадра", в комплексе с "наведением в них оргпорядка".
Статья 74: "Более-менее тонкая зачистка" (она не последняя) всего текущего текста программы (речь идет об оптимизации), с целью подготовки достойных и комфортных условий для дальнейшего, неумолимого расширения её функциональности.
Статья 75: Два варианта реализации системы автоматической, горизонтальной развёртки 1-канального режима.
Статья 76: Третий, наиболее оптимальный (на мой взгляд) вариант реализации системы автоматической, горизонтальной развёртки 1-канального режима.
Статья 77: "Модернизация" (под 2-канальные реалии) и настройка системы автоматической, горизонтальной развёртки 2-канального режима.
Статья 78: "Модернизация" (под 3-канальные реалии) и настройка системы автоматической, горизонтальной развёртки 3-канального режима.
Статья 79: Создание пункта меню, в котором выбирается режим пуска: ручной (имеется) или автоматический (его пока нет, но будет). Предварительная оптимизация меню.
Статья 80: Создание малоинерционных систем автопуска (пуск по первому перепаду) 1, 2 и 3-х канальных режимов работы.
Статья 81: Начало работы по организации энергонезависимого запоминания содержимого таблиц во Flash-памяти программ: создание пункта меню, в котором пользователь выбирает подрежим работы с Flash-памятью программ (выключено, запись текущего содержимого таблиц, выборочный вывод на индикацию ранее сохраненного).
Статья 82: Организация энергонезависимого запоминания, во Flash-памяти программ, данных эпюры 1-канального режима (с верификацией и "предупреждалками"). Организация чтения, из Flash-памяти программ, данных ранее запомненной эпюры 1-канального режима и вывод её на индикацию.
Статья 83: Организация энергонезависимого запоминания, во Flash-памяти программ, данных эпюр 2-х и 3-канальных режимов (с верификацией во всех каналах и "предупреждалками"). Организация чтения, из Flash-памяти программ, данных ранее запомненных эпюр 2-х и 3-канальных режимов и вывод их на индикацию.
Статья 84: Подготовка к наращиванию "массы" Flash-запомненного: организация ветвления меню на подменю "основа" и подменю "флэш".
Статья 85: Создание "Flash-записорулилки" (входит в состав подменю "флэш"), которая "рулит" энергонезависимым запоминанием данных 2-х "эпюрных картинок" 1-канального режима, 4-х "эпюрных картинок" 2-канального режима и 8-ми "эпюрных картинок" 3-канального режима.
Статья 86: Создание "Flash-читалорулилки" (входит в состав подменю "флэш"), с помощью которой можно считать, из Flash-памяти программ (с автоматическим выводом на индикацию), данные 2-х "эпюрных картинок" 1-канального режима, 4-х "эпюрных картинок" 2-канального режима и 8-ми "эпюрных картинок" 3-канального режима.
Статья 87: Организация энергонезависимого запоминания (в PC) табличных данных 2-х "эпюрных картинок" 1-канального режима, 4-х "эпюрных картинок" 2-канального режима и 8-ми "эпюрных картинок" 3-канального режима (всего, 34-х таблиц).
Статья 88: Организация чтения ранее запомненных, табличных данных 2-х "эпюрных картинок" 1-канального режима, 4-х "эпюрных картинок" 2-канального режима и 8-ми "эпюрных картинок" 3-канального режима (всего, 34-х таблиц), с автоматическим отображением картинки любой из считанных N-канальных сессий (всего, их 14 штук) в дисплее графического модуля. Переход от частичной, к "тотальной" верификации результатов всех сессий Flash-записи.
Статья 89: Начало организации замеров уровней (используется 1-й канал модуля АЦП и пиковый детектор, работающий по принципу "достижение вожделеемого - выборка оного - обнуление"). "Аппаратная составляющая".
Статья 90: Организация замеров уровней (продолжение). "Программная составляющая". Рекомендации по подбору элементов пикового детектора.
Статья 91: Организация энергонезависимого, автоматического сохранения, в EEPROM-памяти данных, значений пиковых "напруг" всех 14-ти сессий, а также и "автоукомплектование" ими соответствующих картинок считываемых, из Flash-памяти программ, сессий.
Статья 92: Начало работы по замеру частоты. Практикум по реализации хитрющего, коварного и очень эффективного принципа "врага выгодно уничтожать по частям". "Уничтожение" его первой части (вывод на индикацию "частотоподставы").
Статья 93: "Переброска", с целью освобождения счётного входа, кнопки "-" , с одного вывода порта, на другой. "Ваяние" частотомера (6 десятичных разрядов). 2/10 преобразование результатов замера частоты и его вывод на индикацию (с гашением незначащих нолей).
Статья 94: Организация энергонезависимого, автоматического сохранения, в EEPROM-памяти данных, значений замеров частоты всех 14-ти сессий, а также и "автоукомплектование" ими (с гашением незначащих нолей) соответствующих картинок считываемых, из Flash-памяти программ, сессий.
Статья 95: Очередная, командная оптимизация (плановый практикум по борьбе с "тараканами". "Санитарный день"): уменьшение "массы" программы, с 8035 слов, до 6721 слова (без учёта 6144-х слов, задействованных под Flash-запоминание сессий), при полном сохранении всех имеющихся функциональностей.
Статья 96: Теория текущей задумки (пока, в виде "ля-ля"): косвенное увеличение объёма оперативной памяти, задействованной под работу с архиваторами, в количество раз, кратное количеству сессий (в идеале, начало следующей сессии должно быть продолжением концовки предыдущей сессии).
Статья 97: Организация подсчёта величин интервалов времени отработки полных циклов архиваторов всех 3-х "канальностей", с использованием TMR1, который работает в подрежиме CLKOUT, с задействованием приоритетной системы прерываний (в "зоне" разрешения прерываний, работают высокоприоритетная и низкоприоритетная ПП прерываний). Пока, с сохранением результатов замеров в EEPROM-памяти данных (для того чтобы их можно было проконтролировать).
Статья 98: Организация последовательного суммирования 3-байтных и 4-байтных чисел (результат "оседает" в 4-байтном накопителе суммы) значений ранее замеренных интервалов времени отработки сессий текущей "канальности", со сбросом, на начало накопления суммы, по факту изменения "канальности".
Статья 99: Теория "ваяния" высокоточностного таймера обратного отсчёта ранее запомненного времени, с использованием модуля TMR2. Программная реализация этой теории (в 4-байтном варианте). Пока, в симуляторе.
Статья 100: Первый этап "железячной" реализации теории предыдущей статьи. Пока, только с целью убеждения в том, что от сессии к сессии, интервалы времени задержек последующих автопусков увеличиваются на суммарную величину времени отработки предыдущих сессий (пока, без точной калибровки величины задержки обратного отсчёта, и для удобства, с первичным, ручным пуском).
Статья 101: Второй этап реализации теории статьи №99 (аппаратная подготовка к оценке возможностей того, что замышлено). Создание простого, вспомогательного устройства типа "бездребезговый, 1-канальный, цифровой коммутатор-синхронизатор", с выборочной "привязкой" (по желанию пользователя) к нулевому или единичному уровню первого (после разрешения бездребезговой коммутации), выходного импульса и с "одинарной", тактовой синхронизацией (по фронту ближайшего, после коммутации, тактового импульса).
Статья 102: Третий этап реализации теории статьи №99: программный переход, с ручного пуска, на автоматический, с выравниванием времени отработки сценариев.
Статья 103: Теория четвёртого этапа реализации задумки статьи №99, суть которой в том, что примененный принцип архивирования позволяет создать адаптивную (самонастраивающуюся) систему, которая минимизирует погрешности таймера обратного отсчёта, а значит и временнЫе погрешности "стыковок" сессий.
Статья 104: Практическая реализация задумки предыдущей статьи.
Статья 105: Организация, внутри N-сессийных групп (N = или 2, или 4, или 8), автоматической подготовки к Flash-записи следующей сессии (работа по "инкрементному кольцу"), c визуально-звуковым оповещением пользователя об окончании записи в текущую сессийную группу и с возможностью ручной предустановки номера сессии.
Статья 106: Адресная оптимизация расположения, в памяти программ, Flash-массивов ("оргразгребание свободного местечка"), неожиданно сопровождаемое обнаружением "места дислокации" идентификатора типа ПИКа (в приложении к PIC18F252) и с "указивкой" на то, как не "вляпаться в эту бяку".
Статья 107: Работа "в аппаратной плоскости": замена всех трёх параметрических стабилизаторов на одну м/схему преобразователя уровней (от КМДП, к ТТЛ/ТТЛШ), с предоставлением соответствующей принципиальной схемы (варианты с разъёмом внутрисхемного программирования и без него).
Статья 108: Поднятие верхней границы диапазона измеряемых "пиконапруг", с 9,99 в., до 14,99 в., с визуально-звуковым (надпись и противное "пи-пи-пи-…") предупреждением о превышении уровня "пиконапруги" (в 1-м канале) значения 15,00 в.
Статья 109: Организация, во всех 3-х "канальностях", в подрежиме автопуска, подсчёта количества сессийных групп, с игнорированием этого подсчёта в подрежиме ручного пуска. Организация универсального сброса на начало накопления задержки прямого счёта. Организация подсказки, сопровождающей 1-й пункт меню.
Статья 110: Организация сохранения, в EEPROM-памяти данных, результата последнего (перед выключением питания устройства) наращивания суммы задержки прямого счёта, с последующим (после следующего включения питания) "подменюшным" диалогом "ПРИВЕТ! ЭТО Я. ЖЕЛЕЗЯКА Ранее запомненную задержку автопуска использовать? использовать сбросить".
Статья 111: Организация второго диалога "ПРИВЕТ! ЭТО Я. ЖЕЛЕЗЯКА Смену позиции разрешить (сбросТзад.) или отменить? отменить разрешить", который "возникает" только в подрежиме автопуска и после осуществления успешной (безошибочная верификация) Flash-записи (в любой "канальности"), и с помощью которого пользователь может выбрать одно из двух: либо смена позиции и сброс на начало работы (если это нужно), либо игнорирование смены позиции и продолжение работы без сброса на начало (если пользователь, по невнимательности, нажал не на ту кнопку. Короче, "откат").
Статья 112: Организация (после любого включения питания) визуального приветствия, сопровождаемого мелодией 1-го куплета песни "Одинокая гармонь" (Авторы: М.Исаковский, Б.Мокроусов. В исполнении пьезоизлучателя. Форма сигнала - меандр). Объяснение принципа создания относительно простых "музыкальных автоматов" (силами и средствами ПИКа).
Статья 112A: Очередной практикум по локальной, командной оптимизации ранее недозаоптимизированного (жизнь заставляет, так как мало свободного "PC-местечка") и организация EEPROM-запоминания номера текущей сессии Flash-записи, производимой в подрежиме автопуска.
Статья 114: Организация визуально-звукового предупреждения о понижении уровня Uпит. ПИКа ниже заданной нормы (для случая батарейного питания) или о "проскакивании", по Uпит., помехи, кратковременно понижающей уровень Uпит. (задействован модуль LVD).
Статья 115: Итоговая "оргзачистка".


Техническое описание и инструкция по эксплуатации: здесь.



Список участников "Абонемента 2009/10 года": здесь.



В том случае, если кто-то из участников абонемента 2009/10 года, по каким-то причинам, не получил информацию, указанную в оглавлении, просьба написать об этом мне, после чего я оперативно вышлю нужный файл.


Переход на главную страницу

Hosted by uCoz