====== 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]]
*[[http://code.google.com/p/uos-embedded/wiki/board_starterkit_sam9_s3e_ru|Starterkit SAM9-S3E]]
*[[http://www.vak.ru/doku.php/proj/arm/arm9-atmel]]
*[[http://www.at91.com/linux4sam/bin/view/Linux4SAM/|Linux4SAM]]
{{equipment:embedded:sk_at91sam9xe512_s3e.gif?200|}}
{{equipment:embedded:sk-at91sam9xe512-s3e-xy.jpg?200| Габариты}}
{{equipment:embedded:sk_at91sam9xe512_s3e_bot.gif?100|}}
{{equipment:embedded:sk_at91sam9xe512_s3e_top.gif?100|}}
Габариты: 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.
===== Назначение джамперов =====
[[http://www.starterkit.ru/new/index.php?name=Forums&op=showtopic&id=136|источник]]
* 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.
{{equipment:embedded:at91sam9xe_boot_sequence.png?200|AT91SAM9XE Boot Sequence}}
К сожалению, at91sam9xeek **поддерживает загрузку только из internal flash**. \\
Это не очень удобно, т.к. при вынимании джампера J16 внутренняя flash-память очищается и устройство становится нерабочим. \\
На всякий пожарный, резервная копия bootloader-а лежит в dataflash.
==== Bootstrap ====
Оригинал на сайте [[http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093|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 |
|Блоки умножения 18x18 | 20 |
|Блоки ОЗУ, Кбит | 360 |
|Распределенная память, Кбит | 73K |
|Блоки синхронизации (DCMs) | 4 |
|Дифференциальные пары В/В, max | 65 (5 input only) |
|Несимметричные контакты В/В, max | 158 (32 input only) |
===== Спецификации: =====
* {{equipment:embedded:sk-at91sam9xe512-s3e.pdf| Принципиальная схема}}
* {{equipment:embedded:at91sam9xe512-datasheet.pdf| Даташит}}
* {{equipment:embedded:sk_at91sam9xxxx_gdo_dxf.zip| Гербер сверловки и Чертеж в формате DXF}}
===== FAQ =====
* FPGA работает на 50 Mhz.
* кварц 12 МГц
* FPGA подсоединена к процессору по интерфейсу SRAM на NCS0. Это адресное пространство видно процессору начиная с адресов 0х1000 0000.
* по умолчанию в FPGA загружается sram_to_arm пример, он просто коммутирует внешнюю шину ARM к чипу SRAM, который к FPGA подключен.