Набор для разработки на основе микроконтроллера PIC18F4520

Внимание! Нижеизложенная статья является авторским переводом с немецкого языка и не может использоваться частично либо полностью без разрешения автора-переводчика. Противоправное копирование статьи будет рассмотрено как сознательное нарушение авторских прав!

mc189-1.jpg​Данный набор плат разрабатывался как пособие для желающих попробовать себя в разработке программ и устройств на основе микроконтроллера PIC18F4520 фирмы Microchip. Стоит упомянуть, что основной идеей стало создание простого набора плат, собранного из доступного в продаже набора микросхем, легкого в повторении и дальнейшем усовершенствовании. Мне, как студенту, эта плата помогла в изучении особенностей программирования микроконтроллеров семейства PIC18 и, надеюсь, послужит мне помощником в дипломном проекте.

Проект содержит 5 основных модулей: 

  •  Материнская плата- центральная плата с микроконтроллером, узлом прерываний и разъемами.
  •  Плата SPI-интерфейса- плата для изучения особенности передачи данных по интерфейсу SPI.
  •  Плата I²C-интерфейса- плата для изучения особенности передачи данных по интерфейсу I²C.
  •  Плата связи с ПК- плата для использования возможностей USART Модуля MCU и связи с компьютером.
  •  LCD-Модуль- стандартный модуль знакосинтезирующего ЖКИ на основе HD44780 или подобном.

Все модули собраны на двухстороннем стеклотекстолите с использованием панелек под микросхемы DIP корпуса. Все узлы объединяются при помощи кабельных соединений через штырьковые разъемы. Программирование микроконтроллера можно вести как напрямую, через подготовленный для этого разъем, так и через панель программатора. Сборка требует некоторого опыта в пайке компонентов SMD.

 Материнская плата 

Schematics.png   

Материнская плата содержит 33 порта ввода-вывода . Порт В(выводы 33-40) могут быть программно подключены через подтягивающие сопротивления на + питания, таким образом формируется их высокое состояние в случае подключения в качестве входов. Выводы 6-7 подключены к внешнему кварцу 20МГц. Значение конденсаторов С5-С6 зависит от конкретного кварца, рекомендуемое значение лежит в пределах 15-25пФ. На практике я установил конденсаторы с разным значением емкости для гарантирования старта осциллятора(Первое время упорно не хотел запускаться). Однозначно рекомендуется ознакомиться с документацией на ваш конкретный кварц. В крайнем случае можно запуститься с внутренней тактовой цепочки микроконтроллера. На порт Е пин 2, для вывода звука, есть возможность подключить «пищалку». Отдельно реализована возможность использования 3 внешних прерываний int1-int3. На плате установлено 16 стандартных светодиодов диаметром 5 мм. для индикации состояний портов и создания простейших световых эффектов. Для изучения основ управления по ИК установлен ИК-приемник TSOP 17-36, хотя подойдут и другие. Отдельно стоит сказать про обвязку R1, D1-D2, C4 , R5, R8, R10. Данное решение необходимо для внутрисхемного программирования через разъем ICSP. Питание осуществляется от стабилизированного источника питания 12В. На практике я взял компьютерный блок питания АТ.

Плата SPI- интерфейса

Микроконтроллер содержит модуль синхронного последовательного интерфейса MCCP и может работать в двух программно предустановленных режимах SPI-/I²C для обмена данными с периферией в полудуплексном режиме.

Schematics2.png

Проект содержит возможность подключения платы интерфейса SPI. В этом режиме необходимо программно настроить соответствующим образом контакты RC3-RC5 микроконтроллера, настроить модуль для работы в режиме SPI и соединить центральную плату с платой модуля SPI через разъем SPI-Input. Кроме того, необходим еще один вывод микроконтроллера, настроенный на выход для формирования сигнала CS(Chip Select), необходимого микросхемам периферии. Модуль SPI содержит две микросхемы расширения по 16 бит каждая, работающих как на выход, так и на вход. Обе микросхемы включены фактично параллельно, поэтому, выбор микросхемы , для которой предназначены данные, производится адресно(А0-А2). Особенности адресации данных микросхем детально описаны в даташите. Микросхема IC2 может быть напрямую подключена к преобразователю бинарного кода в децимальный с дальнейшим выводом на четырехзначный дисплей, сформированный из двух двузначных светодиодных индикаторов с общим катодом.

Микросхема IC1 может быть использована для управления двумя драйверами 12 вольтовых шаговых двигателей в шаговом и полушаговом режимах, реализованных программно. Кроме того, микросхема может быть использована для считывания данных с различных клавиатур, переключателей и т.д. 

Плата I²C-интерфейса

Schematics4.png

В случае необходимости можно настроить модуль MCCP в режиме I²C и подключить соответствующий модуль через разъем I²C-Input к соответствующим разъемам на центральной плате. Для этого необходимы контакты RC3, RC4 программно настроенные для передачи такта и приема-передачи данных от периферийных микросхем. Модульная плата I²C содержит 2 8-битных драйвера-преобразователя последовательного интерфейса в параллельный, один из которых подключен к 8 светодиодам размера 5мм через токоограничительные сопротивления. Возможно подключение к микросхемам памяти ЕЕПРОМ, часам реального времени, сенсору температуры и АЦП. Выбор соответствующего модуля производится адресно. Особенности адресации каждой из микросхем детально описаны в даташитах. Частично, адресация реализована аппаратно через подключение выводов микросхем (А0-А3). Аппаратная реализация адресов описана на рис.4.

рис.4

Плата связи с ПК

Schematics3.png

Данный модуль может быть использован для обмена данными через модуль USART микроконтроллера. Для этого необходимо настроить микроконтроллер и соответствующие выводы RC6-RC7 соединить с разъемом JP16. Питание микросхем производится от центральной платы а не порта USB компьютера. Светодиоды 19-20 сигнализируют о передаче , приеме данных. Микросхема FT232RL крепится поверхностным монтажом на плату. Драйвера для Win7x64 установились без проблем. Для ХР проблем быть тоже не должно. Переключатели 17-18 позволяют выбрать между микросхемами COM и USB порта.

Отдельно реализована клавиатура размером 4х4 кнопки для реализации всевозможных циферблатов.(По сути, оставалось место на плате- почему не использовать?!:))

 LCD-Модуль

DSCF3082.jpg

Для реализации возможности вывода на экран символов был использован индикатор PVC200403P фирмы PICVUE. Это индикатор совместимый со стандартом HD44780 с подсветкой желтого цвета размером 20 знаков- 4 строки, хотя, можно использовать и другой. Данный дисплей содержит 8 битную шину данных для приема-передачи, 3 битную шину управления для формирования сигналов enable, register-select, read/write. Дополнительно необходимо выделить питание платы и питание подсветки. Подсветка и сам дисплей питаются от источника 5В. Подсветку нельзя подключать напрямую к портам микроконтроллера. Ток потребления подсветки превышает допустимый ток нагрузки микроконтроллера. На практике я реализовал подключение через 4 битный режим передачи данных и сэкономил на входе read/write, при этом потеряв возможность опроса «флага занятости» дисплея.

Программирование по ICSP

ICSP Модуль микроконтроллера позволяет программировать микросхему внутрисхемно, без мучений с панельками и пайкой. Для этого на плате был выведен соответствующий разъем. На практике прошивку микроконтроллера я проводил через программатор GQ-4X со специально изготовленным переходником(Рис.7).

ICSP_Programmierung.jpg

Печатная плата

В целях экономии все пять плат выполнены на заготовке размером А4 из двустороннего стеклотекстолита. Дорожки разведены в Eagle с настройками и правилами для моей фрезеровочной машины(Фрезеровало сутки!!!). Микросхемы установлены в панельки для быстрой замены(надеюсь вам не понадобится), кроме микросхем поверхностного монтажа. Микросхема стабилизатора 7805 припаяна «за хвост» через термопроводящую прокладку к плате(Пока этого хватало для охлаждения).

плата

Плата после фрезеровки

DSCF3088(1).jpg

Post scriptum

Практическое изучение основ устройства и программирования микроконтроллеров практически невозможно без использования отладочных плат, которые не всегда по карману студентам, школьникам или просто любителям электроники. Я надеюсь, эта средство разработки, изготовленное своими руками поможет вам овладеть основами программирования Pic’ов или послужит основой для проектирования собственной платы.

Контакты

Ваши пожелания и/или предложения отправляйте по адресу maiierok@t-online.de. Также могу помочь исходниками к некоторым примерам(смотри видео-примеры) использования вышеизложенной платы.

Видео-примеры применения

  • Видео-симуляции «Часы реального времени» Simulation im Proteus
  • Видео2 «Опыт #1 Светодиоды и пищалка» LED&Buzzer TEST#1
  • Видео3 «Вывод текста на ЖКИ» Mainboard + HD44780
  • Видео4 «Подключение к PC через USB» Mainboard+ Comm-Board+ HD44780

Ссылки на тех-документацию

  • PIC18 Datasheet Datei:Pic18f2420-2520-4420-4520.pdf
  • A200_ua7805 Datei:A200 ua7805.pdf
  • PCF8583 Datei:Clock and Calendar.pdf
  • PCF8574 Datei:PCF8574.pdf
  • I²C_ Temperature Sensor Datei:Thermo I²C.pdf
  • Mcp23s17 SPI Expander Datei:Mcp23s17.pdf
  • HD44780 Display Datasheet

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Материнская плата
U1 МК PIC 8-бит PIC18F4520 1
IC1 Линейный регулятор LM7805 1 7805TV
IR1 ИК-сенсор TSOP1736TB1 1
D1, D2 Выпрямительный диод 1N4148 2
LED1-LED16 Светодиод 16 Зелёные
C1 Электролитический конденсатор ? 1
C2, C8 Электролитический конденсатор 470 мкФ 2
C3, C7 Конденсатор 0.1 мкФ 2
C4 Электролитический конденсатор 10 мкФ 1
C5, C6 Конденсатор 15-25 пФ 2
C9 Электролитический конденсатор ? 1
C10 Конденсатор ? 1
R1, R5, R8, R10 Резистор 10 кОм 4
R2-R4, R6, R7, R9, R11-R19, R21 Резистор 330 Ом 16
R20, R22, R23 Резистор 270 Ом 3
R69-R71 Резистор 4.7 кОм 3
Q1 Кварц 20 МГц 1
SG1 Пьезоизлучатель F/CM12P 1
S1 Переключатель 2 контактные группы 1 Выключатель питания
S2, INT1-INT3 Кнопка замыкающая 4
JP1, JP3 Разъём PLS-3 2
JP2, JP19 Разъём PLS-2 2
JP4 Разъём PLS-6 1
JP5-JP8 Разъём PLS-8 4
JP9, JP11, JP12 Разъём PLS-1 3
Плата SPI-интерфейса
IC2, IC3 Микросхема MCP23S17 2
IC4-IC7 Микросхема 74LS48N 4
IC8, IC9 Драйвер электродвигателей L293 2 L293D
R24-R51 Резистор 300 Ом 28
R74 Резистор ? 1
LED17DIG1, LED17DIG2, LED18DIG1, LED18DIG2 7-сегментный LED-индикатор DC56-11GWA 4 Общий катод
JP13-JP15 Разъём PLD-16 3
KEYBOARD_INPUT, SPI_INPUT Разъём PLS-8 2
MOTOR-1, MOTOR2 Разъём PLS-6 1
Плата I²C-интерфейса
IC12, IC13 ИС I2C интерфейса PCF8574 2 SERIAL TO PARALLEL
IC14 Часы реального времени (RTC) PCF8583P 1 clock & calendar
EEPROMIC$1 Микросхема PCF8582C-2P/03 1 I2C EEPROM
Temperature Sensor Датчик температуры LM75A 1 LM75AD — TEMPERATURE SENSOR
ADU_DAUG$1 Микросхема PCF8591P 1 ANALOD TO DIGITAL
LED21-28 Светодиод 8
R72, R73 Резистор 4.7 кОм 2
R57-R64 Резистор 330 Ом 8
R65-R68 Переменный резистор ? 4
Q2 Кварц 32768 Гц 1
INT4, INT5, INT?, PTC, OS, OSC, AOUT Разъём PLS-1 7
KEYBOARD Разъём PLS-8 1
I2C-INPUT Разъём PLS-4 1
Плата связи с ПК
IC10 Микросхема FT232RL 1 USB UART
IC11G$1 ИС RS-232 интерфейса MAX232 1
LED19, LED20 Светодиод 2
C11 Конденсатор ? 1
C12-C15 Конденсатор 100 нФ 4
R52, R53 Резистор 27 Ом 2
R54 Резистор ? 1
R55, R56 Резистор 330 Ом 2
X1 Разъём MINI-USB-32005-301 1 Mini-USB на плату
X2 Разъём DRB-9F 1 RS-232 на плату
JP16 Разъём PLS-4 1 UART-интерфейс
JP17, JP18 Разъём PLS-3 2
TASTATUR1 Разъём PLS-8 1 К клавиатуре
Модуль клавиатуры
Клавиатура матрица 4×4 1
Разъём PLS-8 1
LCD-Модуль
LCD-дисплей PVC200403P 1 HD44780, 20×4