Инструменты пользователя

Инструменты сайта


equipment:embedded:sk_at91sam9xe512_s3e

SK-AT91SAM9XE512-S3E

 Габариты

Габариты: 126х126мм (чертеж в DFX в приложении).

  • 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).
  • 256M 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: Pagesize: 2048, Blocksize: 128K, OOBsize: 64.
  • 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В.

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

Доступны 5 типов памяти:

  • RAM SDRAM (64 MB, CS1?)
  • Внутренняя ROM ARM-а (сожержит sam-ba, загружается при сброшенном бите GPNVM3, 32kB)
  • Внутренняя Flash ARM-а (загружается при выставленном бите GPNVM3, 512kB, 0x20 000, 32×16kB), первоначальный загрузчик (Atmel Bootstrap) может быть только там.
  • Чип DataFlash (4MB)
  • Чип NandFlash (256MB)

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

К плате можно подключаться тремя способами:

  • Стандартный 20-ти выводной разъем для подключения JTAG программатора/отладчика.
  • sam-boot через COM порт (очень медленно).
  • sam-boot через USB-client.

samba-boot

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.

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

источник

  • 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:

dataflash/at91sam9260ek.h
#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 	      */
main.c
/* ==================== 3rd step:  Process the Image =================== */
	writel(0x00000000, AT91C_SMC_CTRL0);
	writel(0x03020101, AT91C_SMC_PULSE0);
	writel(0x00000000, AT91C_SMC_SETUP0);
include/nand_ids.h
/* 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,}
};
include/nandflash.h
	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)

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

FAQ

  • FPGA работает на 50 Mhz.
  • кварц 12 МГц
  • FPGA подсоединена к процессору по интерфейсу SRAM на NCS0. Это адресное пространство видно процессору начиная с адресов 0х1000 0000.
  • по умолчанию в FPGA загружается sram_to_arm пример, он просто коммутирует внешнюю шину ARM к чипу SRAM, который к FPGA подключен.
equipment/embedded/sk_at91sam9xe512_s3e.txt · Последние изменения: 2019/10/26 23:29 — sergey