Современная электроника №6/2021
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 53 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2021 примера), и нажимают на кнопку ОК. Добавление файлов в образ выполня- ют их перемещением левой кнопкой мыши из каталога на диске компьюте- ра в пустое поле редактора WinImage (см. рис. 8г), в статусной строке в ниж- ней левой части которого отобража- ется объём свободного пространства образа в Кбайт. Сохранение образа на диск компью- тера выполняют командой «Файл / Сохранить как» основного меню WinImage, после чего редактор можно закрыть. Среди доступных для сохра- нения (.imz, .ima, .vfd) отсутствует рас- ширение .mmc, именно то, которое требуется для работы с картой памяти в Proteus. В таком случае образ на диск компьютера сохраняют в формате .ima, а затем изменяют его расширение на .mmc в любом файловом менеджере (например, в Total Commander). Теперь, указав в Proteus в окне свойств карты памяти путь к размещённому на дис- ке компьютера образу, загруженные в него файлы можно читать через микро- контроллер. Для создания с помощью програм- мы инициализации микроконтролле- ра файлов на карте памяти и записи в них в Proteus в поле «Card Image File» окна свойств карты путь к образу в фор- мате .ima прописывают вручную (без использования кнопки Open). Если вос- пользоваться стандартным интерфей- сом выбора образа, то файл с расшире- нием .ima на диске компьютера будет не виден. Более примитивный способ создания образа, который также имеет право на существование, заключается в создании на диске компьютера с помощью редак- тора Блокнот текстового файла, запи- си в него текстовых данных и сохране- ния файла с расширением .mmc. В этом случае через микроконтроллер можно считать записанную текстовую инфор- мацию. Создание программного кода в CodeVisionAVR Формирование программного кода в CodeVisionAVR выполняют при помощи автоматического генератора CodeWizardAVR или вручную с нуля, используя синтаксис языка програм- мирования С и функции стандартных библиотек программы. Удобство при- менения генератора состоит в быстром получении кода выполнения функций инициализации микроконтроллера и его портов ввода/вывода, аналого- вого компаратора, таймеров/счётчи- ков, интерфейса UART и SPI, буквен- но-цифровых и графических дисплеев и др. Однако в процессе работы масте- ра формируется достаточно объёмный код, который впоследствии приходит- ся редактировать. После создания командой основ- ного меню «File/New/Project» нового проекта в CodeVisionAVR открывается окно генератора кода CodeWizardAVR, где задают параметры микрокон- троллера, его внутренних ресурсов и используемых в схеме периферий- ных устройств. В нашем примере это тип и частота работы микроконтрол- лера (вкладка «Chip Settings» – см. рис. 9а), опции модуля USART (вклад- ка «USART Settings» – см. рис. 9б), портов ввода/вывода микрокон- троллера (вкладка «Ports Settings» – см. рис. 9в), буквенно-цифрового дисплея (вкладка «Alphanumeric LCD Settings» – см. рис. 9г), интерфейса SPI (см. рис. 9д). Важно, чтобы значение тактовой частоты микроконтроллера, указанное в поле Clock вкладки «Chip Settings», совпадало со значением в поле «CKSEL Fuses» его окна свойств в Proteus (в нашем примере это 2 MHz). На вкладке «Alphanumeric LCD Settings» задают разрешение под- держки буквенно-цифрового дис- плея (поле «Enable Alphanumeric LCD Support»), тип контроллера (поле «Controller Type», в нашем приме- ре – HD44780) и количество сим- волов в строке (поле «Character/ Line», в нашем примере – 20). В поле «Connections» настраивают параме- тры подключения микроконтроллера (порт и номер вывода) к микросхеме дисплея, работающего в 4-разряд- ном режиме – в нашем примере 0, 1 и 2 биты порта PC микроконтролле- ра подключены к выводам RS, RD и E дисплея, 4…7 биты порта PC микро- контроллера подключены к выводам D4…D7 дисплея. Если предполагает- ся, что буквенно-цифровой дисплей будет работать в 8-разрядном режиме и написание кода программы управ- ления будет вестись самостоятельно (так как стандартной библиотеки для этого режима в CodeVisionAVR нет), то поле «Connections» можно не заполнять. На вкладке «Ports Settings» для каж- дого отдельного порта микроконтрол- лера отведена своя закладка, где в поле «Data Direction» щелчком левой кноп- ки мыши выбирают одно из значений битов порта: Out (линия порта работает на вывод данных), In (приём данных). В нашем примере для битов Bit 0…Bit 7 портов Port D и Port C укажем значе- ние Out, для бита Bit 6 порта Port В – In, для битов Bit 4, Bit 5, Bit 7 порта Port В – Out. Значения битов неиспользуемых выводов микроконтроллера не важны, поэтому их можно оставить по умол- чанию. На вкладке «USART Settings» определя- ют следующие параметры USART: ● Receiver – активизация приёмника USART; ● RxInterrupt – выбор режима рабо- ты приёмника путём снятия (режим опроса) или установки (режим пре- рывания) флажка. В режиме прерыва- ния доступна опция «Receiver Buffer», которая определяет размер буфера приёмника; ● Transmitter – активизация передат- чика USART; ● TxInterrupt – выбор режима работы передатчика путём снятия (режим опроса) или установки (режим пре- рывания) флажка. В режиме преры- вания доступна опция «Transmitter Buffer», которая определяет размер буфера передатчика; ● Baud Rate – скорость передачи в ре- жимах приёмника и передатчика; ● Baud Rate Error – ошибка скорости передачи (вычисляется автомати- чески); ● Communication Parameters – уста- новка параметров связи (Data – ко- личество битов данных, Stop – ко- личество стоповых битов, Parity – чётность); ● Mode – выбор режима связи: Asynchronous (асинхронный), Sync. Master UCPOL=0 (синхронный веду- щий со сброшенным битом UCPOL регистра UCSRC), Sync. Master UCPOL=1 (синхронный ведущий с установленным битом UCPOL ре- гистра UCSRC), Sync. Slave UCPOL=0 (синхронный ведомый со сброшен- ным битом UCPOL регистра UCSRC), Sync. Slave UCPOL=1 (синхронный ведомый с установленным битом UCPOL регистра UCSRC). На вкладке SPI Settings определяют следующие параметры SPI: ● SPI Enabled – активизация работы SPI- интерфейса; ● SPI Interrupt – разрешение прерыва- ния от SPI-интерфейса; ● Clock Rate x2 – удвоение тактовой ча- стоты SPI-интерфейса; ● SPI Mode – режим работы SPI;
RkJQdWJsaXNoZXIy MTQ4NjUy