Skip to content

board_milandr_be91_ru

Serge Vakulenko edited this page Aug 26, 2015 · 2 revisions

Отладочный комплект для микроконтроллера 1986ВЕ91Т (спецификация). Архитектура Cortex M3, система команд Thumb-2. Возможна установка дополнительных плат, например модуля Ethernet на базе микросхемы 5600ВГ1У.

Память:

  • 32 килобайта внутренней памяти данных.
  • 128 килобайт внутренней flash-памяти команд.

Задающий генератор 8 МГц. Установкой регистра PLL_CONTROL частота может быть умножена до 80 МГц.

Загрузка прошивки производится посредством утилиты milprog и адаптера Olimex ARM-USB-Tiny. Адаптер необходимо подключить к порту JTAG B отладочной платы. Для нормальной работы переключатели SW1 и SW2 должны находиться в нулевом положении (оба влево). При прошивке необходимо перевести переключатель SW2 (нижний) в положение 1 (вправо).

Карта памяти: | Тип | Начало | Конец | Объем | |:------------|:------------|:------------|:----------| | Flash ROM |0800 0000 |0801 ffff | 128 kb | | RAM |2000 0000 |2000 7fff | 32 kb |

Расположение разъёмов и джамперов показано на рисунке:

Режим работы микроконтроллера: | SW1 (верхний) | SW2 (нижний) | Стартовый адрес | Отладка | |:------------------|:-----------------|:-------------------------|:------------| | 0 | 0 | 0х0800 0000 (flash-память) | JTAG B | | 1 (вправо) | 0 | 0х0800 0000 (flash-память) | JTAG A | | 0 | 1 (вправо) | 0х1000 0000 (внешняя память) | JTAG B | | 1 (вправо) | 1 (вправо) | 0х1000 0000 (внешняя память) | JTAG заблокирован |

Примеры uOS

В каталоге examples/arm-1986be91 находятся примеры сборки uOS для 1986ВЕ91Т. Их можно скомпилировать командой "make".

  • test-debug.hex - Проверка runtime-библиотеки и отладочной печати.
  • test-lcd.hex - Проверка драйвера графического индикатора MT-12864J.
  • tetris.hex - Игра "Тетрис" на экране LCD.
  • test-task-lcd.hex - Проверка переключения задач.
  • test-timer.hex - Проверка драйвера таймера с выводом на UART.
  • test-timer-lcd.hex - Проверка драйвера таймера с выводом на экран LCD.
  • test-uart.hex - Проверка драйвера UART.
  • phil-lcd.hex - Пять обедающих философов с выводом на экран LCD.
  • phil-uart.hex - Пять обедающих философов с выводом на UART.
  • test-tswitch.hex - Измерение времени переключения задач.
  • test-latency.hex - Измерение времени входа в обработчик прерывания.
  • test-can.hex - Проверка драйвера CAN.
  • test-mac.hex - Проверка приёма пакетов Ethernet контроллером 5600ВГ1У.
  • test-eth.hex - Проверка драйвера Ethernet для контроллера 5600ВГ1У.
  • test-udp.hex - Проверка протокола UDP с контроллером Ethernet 5600ВГ1У.
  • test-tcp.hex - Проверка протокола TCP с контроллером Ethernet 5600ВГ1У.
  • test-telnetd.hex - Проверка протокола Telnet с контроллером Ethernet 5600ВГ1У.

Загрузить готовые бинарные файлы в плату можно утилитой milprog, например:

milprog tetris.hex

В файле demo1986be91.hex находится код фирменного примера Миландр, поставляемого с платой. Загрузить его в плату можно командой:

milprog demo1986be91.hex

test-debug.c

  • Проверка runtime-библиотеки и отладочной печати. Микроядро отсутствует. Программа циклически выдаёт на консоль UART строку "Hello, World!" и ждёт нажатия клавиши.

test-lcd.c

  • Проверка драйвера графического индикатора MT-12864J. Микроядро отсутствует. Программа выдаёт на экран LCD текст, рисует прямоугольники и окружности. Кнопками LEFT и RIGHT можно переключать варианты теста.

tetris.c

  • Игра "Тетрис" на экране LCD. Микроядро uOS не используется. Кнопка LEFT вращает падающую фигуру, кнопки UP и DOWN сдвигают её влево-вправо, кнопка RIGHT роняет фигуру. При заполнении стакана игра начинается заново.

test-task-lcd.c

  • Проверка переключения задач. Одна задача пользователя, циклически печатающая свой общий размер стека и размер свободной части, затем ждущая нажатия клавиши. Вывод производится на экран LCD.

test-timer.c

  • Проверка драйвера таймера. Одна задача: программа пользователя, которая каждые 100 миллисекунд печатает строку на консоли UART.

test-timer-lcd.c

  • Проверка драйвера таймера. Одна задача: программа пользователя, которая выдаёт на экран LCD время в секундах с момента старта системы.

test-uart.c

  • Проверка драйвера UART. Одна задача: программа пользователя, циклически выдающая строки по 79 символов с последовательными кодами. Нажатие любой клавиши временно пристанавливает работу теста.

phil-uart.c

phil-lcd.c

test-tswitch.c

  • Измерение времени переключения задач. Выдача на экран LCD. Две задачи: консольная (с приоритетом 1) и измерительная (с более высоким приоритетом 2). Измерительная задача ожидает сообщения на мутексе. Консольная задача посылает сообщение, содержащее значение текущего времени (аппаратный таймер SysTick). Происходит переключение задач, и измерительная задача фиксирует задержку переключения. Затем консольная задача печатает полученное значение на экране LCD.

test-latency.c

  • Измерение времени входа в прерывание. Выдача на экран LCD. Для прерывания от аппаратного таймера SysTick устанавливается быстрый обработчик. Каждыу 100 миллисекунд обработчик замеряет время, потраченное на вход в обработчик (разница между начальным значением таймера LOAD и текущим значением VAL). Консольная задача печатает полученное значение на экране LCD.

test-can.c

  • Проверка драйвера CAN. Управление производится посредством текстового меню на консоли UART. Позволяет передавать и принимать пакеты CAN. Можно устанавливать режим шлейфа, замыкающий выход передатчика обратно на вход приёмника. Диалоговое меню:
Testing CAN

Transmit: 2 packets, 0 collisions, 0 errors
Receive: 2 packets, 0 errors, 0 lost

  1. Transmit 1 packet
  2. Transmit 2 packets
  3. Transmit 100 packets
  4. Run send/receive test
  5. Local loopback: Enabled

Command: _

test-mac.c

  • Проверка приёма пакетов Ethernet контроллером 5600ВГ1У. Используется фиксированный MAC-адрес 00:09:94:F1:F2:F3. Управление производится посредством текстового меню на консоли UART. Тест ожидает приёма пакетов Ethernet и печатает их на консоли. При нажатии клавиши <Enter> печатается содержимое аппаратных регистров контроллера 5600ВГ1У. По команде ^T выдаётся список задач и количество свободной памяти.

test-eth.c

  • Проверка драйвера Ethernet для контроллера 5600ВГ1У. Позволяет передавать и принимать Ethernet-данные с разным размером пакетов. Можно устанавливать режим шлейфа, замыкающий выход передатчика обратно на вход приёмника. Используется фиксированный MAC-адрес 00:09:94:F1:F2:F3. При нажатии ^E печатается содержимое аппаратных регистров контроллера 5600ВГ1У. По команде ^T выдаётся список задач. Диалоговое меню:
Testing Ethernet

Free memory: 12072 bytes
Ethernet: Cable OK, Full Duplex, 100 interrupts
Transmit: 100 packets, 0 collisions, 0 errors
Receive: 0 packets, 0 errors, 0 lost

  1. Transmit 1 packet
  2. Transmit 2 packets
  3. Transmit 8 packets
  4. Run send/receive test
  5. Packet size: 1500 bytes
  6. Local loopback: Disabled

Command: _

test-udp.c

  • Проверка протокола UDP с контроллером Ethernet 5600ВГ1У. Используется фиксированный MAC-адрес 00:09:94:F1:F2:F3 и фиксированный IP-адрес 192.168.20.222. Статистика работы драйвера Ethernet отображается на экране LCD. На консоли UART можно получить дополнительную информацию: при нажатии клавиши <Enter> печатается статистика драйвера, содержимое аппаратных регистров контроллера 5600ВГ1У и состояние сокета UDP, а по команде ^T выдаётся список задач. Тест ожидает приёма пакетов UDP на порту 7777, затем отправляет их обратно отправителю. Для генерации потока тестовых пакетов следует использовать утилиту udpping.c, например:
% udpping -r 500000 192.168.20.222

Здесь 500000 - желаемый темп передачи, бит/сек.

test-tcp.c

  • Проверка протокола TCP с контроллером Ethernet 5600ВГ1У. Используется фиксированный MAC-адрес 00:09:94:F1:F2:F3 и фиксированный IP-адрес 192.168.20.222. Статистика работы драйвера Ethernet отображается на экране LCD. На консоли UART можно получить дополнительную информацию: при нажатии клавиши <Enter> печатается статистика драйвера, содержимое аппаратных регистров контроллера 5600ВГ1У и состояние сокетов TCP, а по команде ^T выдаётся список задач. Тест ожидает соединения TCP на порту 2222. При появлении соединения начинается отправка данных: первые два байта - длина записи (1024 lsb), затем 1022 байта FF и т.д. Для приёма потока данных следует использовать утилиту tcp-receiver.c, например:
% tcp-receiver 192.168.20.222

test-telnetd.c

  • Проверка протокола Telnet с контроллером Ethernet 5600ВГ1У. Используется фиксированный MAC-адрес 00:09:94:F1:F2:F3 и фиксированный IP-адрес 192.168.20.222. Статистика работы драйвера Ethernet отображается на экране LCD. На консоли UART или через Telnet можно получить дополнительную информацию, введя команды:
    • mem - список задач и количество свободной памяти.
    • eth - состояние и статистика драйвера Ethernet, а также аппаратные регистры контроллера 5600ВГ1У.
    • ip - статистика протокола IP.
    • arp - таблица протокола ARP.
    • tcp - статистика протокола TCP.
    • icmp - статистика протокола ICMP.
    • sock - состояние сокетов TCP. Тест ожидает соединения Telnet на порту 23. Разрешается до 4-х одновременных telnet-сеансов. Для соединения можно использовать утилиту Putty или стандартную утилиту telnet:
% telnet 192.168.20.222
You can’t perform that action at this time.