Плата SK-AT91SAM9XE512-S3E

http://www.starterkit.ru/html/index.php?name=shop&op=view&id=30

http://code.google.com/p/uos-embedded/wiki/board_sam9_xilinx_ru

Starterkit SAM9-S3E

http://www.vak.ru/doku.php/proj/arm/arm9-atmel

Linux4SAM

Габариты

Atmel AT91SAM9XE512 (ARM926, 512k Flash, EMC, SD-card, Ethernet, USB-host, USB-client, RS232, I2C, SPI …)

Xilinx FPGA Spartan3E-500 (500 тысяч эквивалентных логических вентилей).

GSM/GPRS/GPS модуль SIM508.

64M SDRAM (16Mx32), 256Mx8 NAND Flash.

Ethernet PHY, USB-host, USB-client, SD/MMC card, RS232.

37 линий I/O для микоконтроллера, 111 линий I/O для FPGA

Подключенная периферия:

64MБайт (16х32) SDRAM.

256МБайт NAND Flash.

4МБайт DataFlash AT45DB321 – 8192 Pages (528 Bytes/Page).

Ethernet 10/100M PHY - KS8721B, тип интерфейса - RMII.

GSM/GPRS модем совмещенный с GPS приемником SIM508 (SIM508Z - безсвинцовое исполнение).

SD/MMC держатель.

USB host (USB-A).

USB client (USB-B) .

RS232 приемопередатчик.

Предусмотрена возможность подключения SK-VideoADC-Plug.

Внешняя шина ARM так же подключена к FPGA (16 линий данных, 21 линия). К FPGA подключена статическая RAM объемом 512кБайт.

Система питания

Плата содержит линейные LowDrop стабилизаторы, позволяющие запитывать ее от 5В.

Внимание!!! USB-A разъем (USB-host) подключается непосредственно к входному напряжению питающему плату, в случае использования USB-host, напряжение иточника питания для платы не должено быть более 5.5В.

Программирование/отладка

Прошивка флеш-памяти производится удилитой sam-ba (SAM-boot-agent). К плате можно подключаться тремя способами:

Стандартный 20-ти выводной разъем для подключения JTAG программатора/отладчика.

sam-boot через COM порт (очень медленно).

sam-boot через USB-client.

sam-boot

При подключении через COM использовать 115200 и программное управление потоком.

Строка

RomBOOT
>

означает, что загрузилась внутренняя программа samba-boot. Если ввести «V#», то в консоли отобразится её версия («v1.5 Nov 16 2007 11:50:26»). Подробности в документации к Atmel 91SAM.

Габариты: 126х126мм

Назначение джамперов

источник

J1 - позволяет подключать внешнее или внутреннее опорное напряжение для АЦП

J7 - позволяет исключить SPI DataFlash (DD2) из источника загрузки

J2 - J6,J8 - видеовходы для ADV7180, в текущей конфигурации не используются

J9 - J10 - позволяют выбрать один из двух серийных портов GPS части модема SIM508 (NMEA - В)

J11 - вывод WKUP процессора

J12 - служит для подключения внешней батареи для GPS части модема SIM508

J13,J15 - позволяют использовать для питания ядра внешний стабилизатор (или внутренний)

J14 - служит для подключения внешней батареи для GSM части модема SIM508

J16 - замыкание приводит к очищению внутренней Flash памяти AT91SAM9XE512, с AT91SAM9260 не используется

J17 - служит для подключения микрофона к модему SIM508

J18 - служит для подключения громкоговорителя к модему SIM508

J19-J21 - определяют источник загрузки FPGA, для SPI DataFlash J21 должен быть замкнут

J22 - кратковременное замыкание инициирует процесс загрузки конфигурации в FPGA, во время программирования SPI DataFlash (DD7) должен быть замкнут

J23 - позволяет исключить NAND Flash из источника загрузки

J7,J23 предусмотрены для случая когда во внешних флешках лежит рабочий код, при этом SAM-BA не сможет подключиться к плате с вытекающими последствиями невозможности их перепрограммировать. На время сброса (или включения питания) их нужно размыкать, после замкнуть и запустить SAM-BA, предварительно подключив кабель соответствующего интерфейса (USB,UART).

Загрузка

Удобная конфигурация: bootstrap в internal flash, u-boot и резервная копия bootstrap в dataflash; Linux kernel загружается по tftp, либо из файловой системы в Nandflash.

AT91SAM9XE Boot Sequence

К сожалению, at91sam9xeek поддерживает загрузку только из internal flash.
Это не очень удобно, т.к. при вынимании джампера J16 внутренняя flash-память очищается и устройство становится нерабочим.
На всякий пожарный, резервная копия bootloader-а лежит в dataflash.

Bootstrap

Оригинал на сайте Atmel.

Отличия поставляемого с платой bootstrap-1.16 от оригинального bootstrap-1.16:

#define MASTER_CLOCK (200000000/2) #define PLL_LOCK_TIMEOUT 1000000 #define PLLA_SETTINGS 0x2031BF03 #define PLLB_SETTINGS 0x10073F01 /* Switch MCK on PLLA output PCK = PLLA = 2 * MCK */ #define MCKR_SETTINGS (AT91C_PMC_CSS_PLLA_CLK | AT91C_PMC_PRES_CLK | AT91C_PMC_MDIV_2) #define AT91C_SPI_CLK 33000000 #define DATAFLASH_TCSS (0x1a << 16) /* 250ns min (tCSS) <=> 12/48000000 = 250ns */ #define DATAFLASH_TCHS (0x2 << 24) /* 250ns min (tCSH) <=> (64*1+SCBR)/(2*48000000) */ #define AT91C_SPI_PCS_DATAFLASH AT91C_SPI_PCS0_DATAFLASH /* Boot on SPI NCS0 */ #define IMG_ADDRESS 0x8000 /* Image Address in DataFlash */ #define IMG_SIZE 0x30000 /* Image Size in DataFlash */ #define JUMP_ADDR 0x21D00000 /* Final Jump Address */
/* ==================== 3rd step: Process the Image =================== */ writel(0x00000000, AT91C_SMC_CTRL0); writel(0x03020101, AT91C_SMC_PULSE0); writel(0x00000000, AT91C_SMC_SETUP0);
/* Supported NandFlash devices */ static struct SNandInitInfo NandFlash_InitInfo[] = { {0xecda, 0x800, 0x20000, 0x800, 0x40, 0x0, "Samsung K9F2G08U0M 256Mb\0"}, {0x2cca, 0x800, 0x20000, 0x800, 0x40, 0x1, "Micron MT29F2G16AAB 256Mb\0"}, {0x2cda, 0x800, 0x20000, 0x800, 0x40, 0x0, "Micron MT29F2G08AAC 256Mb\0"}, {0,} };
char name[40] ; /* Nand Name */

FPGA

Spartan 3E XC3S500E в корпусе PQ208.

Системные вентили, тыс	500
Логические ячейки	10'476
Число CLB	1,164
Блоки умножения 18×18	20
Блоки ОЗУ, Кбит	360
Распределенная память, Кбит	73K
Блоки синхронизации (DCMs)	4
Дифференциальные пары В/В, max	65 (5 input only)
Несимметричные контакты В/В, max	158 (32 input only)

Спецификации:

Принципиальная схема

Даташит

Гербер сверловки и Чертеж в формате DXF

FAQ

FPGA работает на 50 Mhz.

кварц 12 МГц

FPGA подсоединена к процессору по интерфейсу SRAM на NCS0. Это адресное пространство видно процессору начиная с адресов 0х1000 0000.

по умолчанию в FPGA загружается sram_to_arm пример, он просто коммутирует внешнюю шину ARM к чипу SRAM, который к FPGA подключен.