Skip to content

board_olimex_sam7_ex256_ru

Serge Vakulenko edited this page Aug 26, 2015 · 1 revision

Плата Olimex SAM7-EX256 (схема) построена на микроконтроллере Atmel AT91SAM7X256. Дополнительная информация доступна на сайте производителя.

На плате имеется:

  • Порт Ethernet 10/100 с контроллером KS8721BL и двумя светодиодами состояния
  • Порт USB 2.0 12 Mbit/sec, с возможностью питания от него
  • Слот для карт SD/MMC
  • Порт RS-232 DCE (сигналы TXD, RXD, RTS, CTS)
  • Порт CAN DB-9 с трансивером MCP2551
  • Графический цветной дисплей LCD TFT Nokia 6610 с подсветкой, разрешение 132x132, 12 бит на пиксел
  • Джойстик с 4-мя направлениями и нажатием
  • Кнопка сброса
  • 2 кнопки общего назначения
  • Подстроечный резистор, подсоединённый к АЦП
  • Термистор, подсоединённый к АЦП
  • Аудиовход моно с разъёмом для микрофона (10-битный АЦП, до 384 ksps)
  • Аудиовыход моно с разъёмом для наушников (подсоединён к выходу PWM0)
  • Динамик с регулятором громкости
  • Разъёмы расширения EXT, UEXT
  • Разъём программирования и отладки JTAG-20
  • Кварц 18.432 МГц
  • Разъём питания
  • Светодиод питания

Память:

  • 256 килобайт flash-памяти для программ
  • 64 килобайта памяти данных (RAM)

Питание поступает от внешнего источника постоянного напряжения +6..9 вольт, или переменного напряжения 6 вольт.

Документация и программное обеспечение:

Программатор

Программный код можно загружать в плату через порт USB, используя утилиту SAM-BA:

  • Версия для Windows имеется на сайте Atmel
  • Версия для Linux доступна на сайте проекта Linux4SAM.
  • Существует открытая утилита samba-script, на базе которой можно разработать версию простого программатора для SAM.

Для установки под Linux скачайте версию SAM-BA CDC-2.8. Распакуйте её и установите утилиту sam-ba в каталог /usr/local/bin:

unzip sam-ba_cdc_2.8.linux_01.zip -d /usr/local/lib
ln -s ../lib/sam-ba_cdc_2.8.linux_01/sam-ba_cdc_2.8.linux_01 /usr/local/bin/sam-ba
chmod +x /usr/local/bin/sam-ba

Для работы sam-ba требуется загрузить драйвер usbserial:

rmmod usbserial
modprobe usbserial vendor=0x03eb product=0x6124

Стирание старой прошивки:

  • Включите питание платы
  • Установите джампер ERASE
  • Снимите джампер ERASE
  • Нажмите кнопку RESET После такой процедуры плата начнет определяться компьютером как "atm6124.Sys ATMEL AT91xxxxx Test Board".

Для загрузки новой прошивки вызовите sam-prog.exe (Windows) или sam-ba (Linux). Если плата подключена, в поле статуса появится "Active Connection: 1". Выберите файл и нажмите кнопку "Write Flash". По завершении должен быть статус "Success: 1". Нажмите кнопку RESET и новая прошивка запустится.

Прошивка в пакетном режиме

Для прошивки в неинтерактивном режиме (в Линуксе) я пользуюсь следующим вызовом:

sam-ba /dev/ttyUSB? AT91SAM7X256-EK load-flash.tcl test.bin

Здесь test.bin - загружаемый бинарный образ программы. Скрипт load-flash.tcl содержит директивы для программатора:

send_file Flash [lindex $::argv 3] 0x100000 0
FLASH::ScriptGPNMV 4

Первая строка записывает файл во flash-память с адреса 100000h. Вторая строка устанавливает служебный бит GPNVM2, чтобы после RESET процессор загружался из flash-памяти.

Примеры uOS

В каталоге examples/arm-sam7-ex256 находятся примеры сборки uOS для Olimex SAM7-EX256.

Тест Описание
test_debug.c Проверка runtime-библиотеки и отладочной печати. Микроядро отсутствует.
test_task.c Проверка переключения задач. Одна задача пользователя.
test_timer.c Проверка драйвера таймера. Одна задача пользователя.
test_uart.c Проверка драйвера UART. Две задачи: программа пользователя и драйвер UART.
test_t-uart.c Проверка совместной работы таймера и драйвера UART. Две задачи: программа пользователя и драйвер UART.
test_lcd.c Проверка графического дисплея LCD. Одна задача пользователя.

Графический дисплей

На плате установлен цветной графический дисплей, аналогичный используемому в телефоне Nokia 6100. В интернете имеется много информации по работе с ним:

Для дисплея разработан драйвер, обеспечивающий следующие функции:

  • Отрисовка линий, прямоугольников, окружностей, точек.
  • Отрисовка изображений в формате RGB 4/4/4. Предоставляется конвертер из PNG в массив Си.
  • Управление контрастом и подсветкой.
  • Отрисовка символов Unicode.
  • Подключение пропорциональных и моноширинных шрифтов. Есть конвертер из TTF во встраиваемый формат шрифта.

Пример test_lcd.c состоит из пяти тестовых изображений. Переключение между ними делается отклонением джойстика вправо-влево. Джойстик вверх-вниз управляет контрастностью.

  • Первый экран - заливка экрана восемью основными цветами, в виде горизонтальных полос.
  • Второй экран - прямоугольники.
  • Третий экран - "дождь" из кругов
  • Четвёртый экран - заливка прямоугольниками случайных размеров и цветов.
  • Пятый экран - отображение фотографии.

Сигналы

Привязка сигналов платы к ножкам процессора: | На плате | На процессоре | Дополнительные функции | |:---------------------------------|:------------------|:---------------------------| | Порт RS-232, через джампер | PA0 | RXD0 | | Порт RS-232, через джампер | PA1 | TXD0 | | Управление LCD | PA2 | LCD RESET | | Порт RS-232 | PA3 | RTS0, порт EXT / 1 | | Порт RS-232, через джампер | PA4 | CTS0, порт EXT / 2 | | Порт UEXT / 4 | PA5 | RXD1 | | Порт UEXT / 3 | PA6 | TXD1 | | Джойстик влево | PA7 | --- | | Джойстик вниз | PA8 | --- | | Джойстик вверх | PA9 | --- | | Порт UEXT / 6 | PA10 | TWD | | Порт UEXT / 5 | PA11 | TWC | | Управление LCD | PA12 | LCD CS | | Управление MMC | PA13 | MMC CS | | Джойстик вправо | PA14 | --- | | Джойстик нажат | PA15 | --- | | Управление MMC | PA16 | MMC DO | | Управление LCD, MMC | PA17 | LCD DIO, MMC DI | | Управление LCD, MMC | PA18 | LCD SCK, MMC SCLK | | Порт CAN | PA19 | CANRX | | Порт CAN | PA20 | CANTX | | Порт UEXT / 10 | PA21 | SPI1 CS0 | | Порт UEXT / 9 | PA22 | SCK1 | | Порт UEXT / 8 | PA23 | MOSI1 | | Порт UEXT / 7 | PA24 | MISO1 | | Управление USB | PA25 | USB PUP | | Управление USB | PA26 | USB PR | | Порт RS-232, через джампер | PA27 | DRXD, порт EXT / 3 | | Порт RS-232, через джампер | PA28 | DTXD, порт EXT / 4 | | --- | PA29 | FIQ, порт EXT / 5 | | --- | PA30 | IRQ, порт EXT / 6 | | Управление Ethernet | PB0 | REFCK | | Управление Ethernet | PB1 | TXEN | | Управление Ethernet | PB2 | TX0 | | Управление Ethernet | PB3 | TX1 | | Управление Ethernet | PB4 | CRS | | Управление Ethernet | PB5 | RX0 | | Управление Ethernet | PB6 | RX1 | | Управление Ethernet | PB7 | RXER | | Управление Ethernet | PB8 | MDC | | Управление Ethernet | PB9 | MDIO | | Управление Ethernet | PB10 | TX2 | | Управление Ethernet | PB11 | TX3 | | Управление Ethernet | PB12 | TXER | | Управление Ethernet | PB13 | RX2 | | Управление Ethernet | PB14 | RX3 | | Управление Ethernet | PB15 | RXDV | | Управление Ethernet | PB16 | COL | | Управление Ethernet | PB17 | RXCK | | Управление Ethernet | PB18 | PHY PD, порт EXT / 7 | | Аудио выход | PB19 | PWM0 | | Управление LCD | PB20 | Подсветка | | --- | PB21 | Порт EXT / 8 | | Управление MMC | PB22 | MMC WP, порт EXT / 9 | | Управление MMC | PB23 | MMC CP, порт EXT / 10 | | Кнопка 1 | PB24 | --- | | Кнопка 2 | PB25 | --- | | Прерывание от Ethernet | PB26 | PHY IRQ | | --- | PB27 | Порт EXT / 11 | | --- | PB28 | Порт EXT / 12 | | --- | PB29 | Порт EXT / 13 | | --- | PB30 | Порт EXT / 14 | | --- | AD4 | Порт EXT / 15 | | Термистор | AD5 | --- | | Подстроечный резистор | AD6 | --- | | Аудио вход | AD7 | --- | | +3.3V, через джампер | ADVREF | VREF, порт EXT / 16 | | Кнопка RST | NRST | порт EXT / 20 |

You can’t perform that action at this time.