====== 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 подключен.