Габариты: 126х126мм (чертеж в DFX в приложении).
Внешняя шина ARM так же подключена к FPGA (16 линий данных, 21 линия). К FPGA подключена статическая RAM объемом 512кБайт.
Плата содержит линейные LowDrop стабилизаторы, позволяющие запитывать ее от 5В.
Внимание!!! USB-A разъем (USB-host) подключается непосредственно к входному напряжению питающему плату, в случае использования USB-host, напряжение иточника питания для платы не должено быть более 5.5В.
Доступны 5 типов памяти:
Прошивка флеш-памяти производится удилитой sam-ba (SAM-boot-agent). sam-ba под Linux не работает через J-tag.
К плате можно подключаться тремя способами:
sam-boot можно активировать двумя способами: джампером j16 сбросить содержимое внутренней flash, или при помощи sam-ba, подключившись через jtag, сбросить бит GPNVM3 (выполнить скрипт «Boot from ROM» на вкладке «flash» в sam-ba).
При подключении через COM использовать 115200 и программное управление потоком. Если при подключении появилась строка
RomBOOT >
значит из ROM загрузилась samba-boot. Если набрать символы «V#», то в консоли отобразится её версия («v1.5 Nov 16 2007 11:50:26»). Подробности в документации к Atmel 91SAM.
Далее к плате можно подключиться по USB или COM, и перепрошить флеш-память при помощи утилиты sam-ba.
J7,J23 предусмотрены для случая когда во внешних флешках лежит рабочий код, при этом SAM-BA не сможет подключиться к плате с вытекающими последствиями невозможности их перепрограммировать. На время сброса (или включения питания) их нужно размыкать, после замкнуть и запустить SAM-BA, предварительно подключив кабель соответствующего интерфейса (USB,UART).
Удобная конфигурация: bootstrap в internal flash, u-boot и резервная копия bootstrap в dataflash; Linux kernel загружается по tftp, либо из файловой системы в Nandflash.
К сожалению, at91sam9xeek поддерживает загрузку только из internal flash.
Это не очень удобно, т.к. при вынимании джампера J16 внутренняя flash-память очищается и устройство становится нерабочим.
На всякий пожарный, резервная копия bootloader-а лежит в dataflash.
Оригинал на сайте 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 */
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) |