Подключение Compact Flash к микроконтроллеру AT91SAM9263
- yagarto |
- ronetix |
- pm9263 |
- eclipse |
- Compact Flash |
- at91sam9263 |
- arm9
В этой статье я опишу особенности аппаратного подключения Compact Flash(CF) карт к микроконтроллеру AT91SAM9263 и программную реализацию интерфейса в режиме True-IDE. Микроконтроллер AT91SAM9263 имеет в своем составе интерфейс внешней шины с поддержкой Compact Flash который и будет использован. Т.к. интерфейсы Compact Flash и HDD похожи, в дальнейшем я не буду их разделять и все рассуждения будут справедливы и для CF-карт, и для жестких дисков. Программная реализация написана на языке Си без использования какой-либо операционной системы.
1. Аппаратное подключение
1.1. Сигналы внешней шины EBI.
Интерфейс внешней шины (EBI) содержит в своем составе модуль подключения Compact Flash, который позволяет работать с CF-картами в различных режимах (Memory-mode, I/O-mode, True-IDE-mode и т.п.). В таблице 1 собраны сигналы которые могут использоваться для подключения CF-карт в режиме True-IDE.
Сигнал EBI | Сигнал CF | Функция | Тип | Активный уровень |
---|---|---|---|---|
CFIOR | _IOR | Строб чтения | Выход | Низкий |
CFIOW | _IOW | Строб записи | Выход | Низкий |
CFRNW | Направление данных | Выход | ||
CFCS | Выбор устройства(CS) | Выход | Низкий | |
PD8-PD9 | _CE1-_CE2 | Выбор области IDE | Выход | Низкий |
A0-A2 | A0-A2 | Шина адреса | Выход | |
D0-D15 | D0-D15 | Шина данных | Вх/Вых | |
NWAIT | IORDY | Готовность устройства | Вход | Высокий |
Сигнал CFRNW используется для переключения направления передачи сигнала в шинных формирователях шины данных.
1.2. Другие управляющие сигналы.
Для работы с Compact Flash требуются так же дополнительные сигналы управления помимо внешней шины, эти линии управления собраны в таблицу 2.
Линия AT91SAM9263 | Сигнал CF | Функция | Тип | Активный уровень |
---|---|---|---|---|
PA23 (или любой PIO) | _RESET | Сброс HDD | Выход | Низкий |
PA30 (или любой PIO) | CF Card Detect | Карта Вставлена | Вход | Низкий |
Другие линии управления мы не будем использовать в нашем примере.
1.3. Пример подключения Compact Flash.
На рисунке 1. представлена блок-схема, а на рисунке 2 - схема подключения Compact Flash карты к AT91SAM9263.
Рисунок 1. Блок-схема подключения Compact Flash к AT91SAM9263.
Рисунок 2. Схема подключения Compact Flash к AT91SAM9263.
2. Программное обеспечение
2.1 Обработка встроенных сигналов внешней шины.
Логика контроллера Compact Flash работает через контроллер статической памяти (SMC) и организована в две области внешней памяти выбираемые 4м и 5м сигналами выбора кристалла EBI0_NCS4 и EBI0_NCS5, т.е. от 0х5000000 до 0х5FFFFFFF для EBI0_NCS4 и от 0х6000000 до 0х6FFFFFFF для EBI0_NCS5. Сигналы _IOIS16 и _ATA_SEL не поддерживаются контроллером Compact Flash. Различные режимы работы интерфейса переключаются путем работы в поддиапазонах памяти в соответствии с картой памяти (см. рис. 2).
Рисунок 2. Карта памяти Compact Flash контроллера.
Для использования функции Compact Flash следующие PIO сигналы должны быть настроены как периферийные входы/выходы.
- PD5 - сигнал NWAIT
- PD6 (PD7) - сигнал EBI0_NCS4 (EBI0_NCS5)
- PD8 - сигнал EBI0_CFCE1
- PD9 - сигнал EBI0_CFCE2
- PD14 - сигнал EBI0_A25_CFNRW
Кроме того Compact Flash контроллер должен быть активирован путем установки бита EBI_CS4A или EBI_CS5A в регистре EBI_CSA для назначения ему сигнала NCS4 или NCS5 соответственно.
2.2 Обработка прочих сигналов управления.
Как видно из таблицы 2, у нас есть 2 сигнала подключенных к обычным линиям GPIO, этими сигналами мы должны управлять самостоятельно. Сигнал _RESET производит аппаратный сброс CF-карты, а входной сигнал Card Detect устанавливается в 0 когда карта вставлена, путем опроса этого сигнала программное обеспечение может определить, есть ли карта в слоте.
2.3 Временные диаграммы
Для работы в режиме PIO-4 мы установим следующие параметры контроллера статической памяти:
PS_SMC0->SMC_SETUP4 = 0x00030003; PS_SMC0->SMC_CYCLE4 = 0x00110011; PS_SMC0->SMC_PULSE4 = 0x11071107;
Частота MCLK у нас 100МГц так что все тайминги получаются умножением 10нс на число в регистре. Т.е. цикл чтения/записи будет равен 170нс.
2.4 Программная реализация
Программа находится в приложенном файле в конце этой статьи. В архиве надожится проект для Eclipse Gallileo, компиляция производилясь в среде Windows XP Home Edition SP3 с использованием кросс-тулчейна Yagarto. Для доступа к перефирийным устройствам используются библиотеки at91lib доступные для скачивания на сайте компании Atmel. Программное обеспечение тестировалось с использованием модуля PM9263 компании Ronetix.
2.5 Ссылки на использованные в статье материалы
- блог пользователя GDI
- 28246 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Комментарии
А файловая система у вас
Файловая система не
Файловая система не планируется, это чисто тестовое приложение для проверки функциональности новых плат (оно помогло нам найти ошибки в схемотехнике на свежеразработанных платах), но в библиотеках at91lib я встречал исходники fatfs, так что можно ее подключить при желании. Их Вы можете найти на сайте Атмела в примерах для КИТовых плат. У меня была идея прикрутить сюда ФАТ, но пока, за неимением свободного времени она отложена до лучших времен.
Отправить комментарий