TigerSchool.

Эксклюзивные шаблоны DLE скачать бесплатно для dle.
Красивейшие шаблоны joomla скачать бесплатно для Joomla.
Гениальные темы wordpress и шаблоны вордпресс.
Современная инвестиционная деятельность поможет в вашей деятельности.
Универсальный музыкальный портал с огромным выбором.
Квалифицированная помощь по юридическим вопросам и консультации по праву.
Присоединяйтесь в нашему городскому музыкальному клубу где отмечают праздники и торжества.
Самый грамотный юридический форум и юридическая помощь.
Искуствоведческий фото форум для истинных ценителей прекрасного.
Посетите наш туристический форум и найдите где можно красиво отдохнуть.
Приходите на уникальный форум о творчестве и находите друзей и собеседников.

Главная Новости

Реализация SPI с помощью микросхем фирмы FTDI

Опубликовано: 27.08.2018

1 Микросхемы фирмы FTDI

Мы уже не раз обсуждали работу с интерфейсом SPI, реализуя его с помощью Arduino. На этот раз рассмотрим этот интерфейс на примере работы с микросхемами фирмы FTDI, а именно FT2232 и FT4232, которые пользуются огромной популярностью среди разработчиков радиоэлектронной аппаратуры из-за своей дешевизны, надёжности и хорошей поддержки со стороны производителя.

FTDI выпускает микросхемы с суффиксом H (например, FT2232H) – выскоскоростные, с D (FT2232D) – низкоскоростные.

Для работы с микросхемами вам понадобится отладочная или любая другая плата со всей необходимой обвязкой. Для примера привожу плату, которую я использую для некоторых проектов.

Отладочная плата с микросхемой FT2232D

Для тестов вы можете купить готовую плату у наших китайских друзей или сделать плату самому, используя типовое решение, описанное в Datasheet на микросхемы.

На двух иллюстрациях ниже, взятых из Datasheet, приводится назначение ножек микросхем FT2232D (низкоскоростной) и FT2232H (высокоскоростной) при работе в разных режимах, в том числе SPI (см. столбец MPSSE).

Ножки микросхем, обозначенные как GPIOL («нижние» порты ввода-вывода GPIO), могут работать в качестве Chip Select, т.е., как видно, к микросхемам FT2232D и FT2232H можно подключить до 5 ведомых устройств SPI к одному каналу.

Назначение выводов микросхемы FT2232D при работе в разных режимах

Доступны также «верхние» порты ввода-вывода GPIOH: 4 у микросхемы FT2232D и 8 – у микросхемы FT2232H. Эти ножки также можно использовать в качестве чип-селекта, или для иных целей.

Назначение выводов микросхемы FT2232H при работе в разных режимах

2 Библиотеки для работы с микросхемами FTDIFTCSPI.dll и FTD2XX.dll

Если вы хотите реализовать программное обеспечение, использующее микросхемы FTDI для работы по интерфейсу SPI, нужно зайти на сайт производителя и скачать динамические библиотеки FTD2XX.dll и FTCSPI.dll. Первая из них – общего назначения – и входит в состав пакета драйверов FTDI WHQL Certified. Includes VCP and D2XX . Вторая предназначена исключительно для работы по SPI, и найти её можно на странице FTC SPI . Для работы с обеими библиотеками есть прекрасные подробные инструкции для программистов (Programmers Guide), которые любезно выложены на том же сайте фирмы FTDI. Они обязательны для прочтения, если вы будете разрабатывать ПО, работающее с микросхемами FTDI.

Указанный драйвер FTDI WHQL Certified должен быть установлен в любом случае, прежде, чем вы начнёте работать с микросхемами FTхххх.

Дальнейшая последовательность действий такая: вы создаёте проект в Visual Studio или в той IDE, в которой пишете свои программы. Размещаете обе библиотеки в папке проекта. Импортируете нужный функционал в свой проект через директивы [DllImport] . Например, для проектов на VB.NET импорт функции FT_Open из библиотеки ftd2xx.dll будет выглядеть так:

<DllImport("c:\Temp\ftd2xx.dll", SetLastError:=True, CallingConvention:=CallingConvention.StdCall)> _ Private Shared Function FT_Open(ByVal deviceNumber As Integer, ByRef pHandle As Integer) As Integer End Function Public Shared Sub OpenDevice(ByVal deviceNumber As Integer, ByRef pHandle As Integer) Dim r As Integer = FT_Open(deviceNumber, pHandle) If r <> FT_OK Then Throw New Exception(r) End If End Sub

То же самое на C# :

[DllImport("c:\Temp\ftd2xx.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall)] private static extern int FT_Open(int deviceNumber, ref int pHandle); public static void OpenDevice(int deviceNumber, ref int pHandle) { int r = FT_Open(deviceNumber, ref pHandle); if (r != FT_OK) { throw new Exception(r); } }

Собственно, метод FT_Open импортируется как закрытый в первых двух строках кода, а следом объявляется открытый метод с теми же (или другими, если это удобно) входными параметрами для обращения к нему из других классов сборки. В принципе, можно сразу объявлять метод как открытый и обращаться к нему напрямую из других классов вашей сборки, но более правильно объявлять методы, обращающиеся к нативному неуправляемому коду, закрытыми, а внутри .NET приложения использовать открытые управляемые методы.

Импортировать все функции из DLL не нужно. Внимательно изучите Programmers Guide и выберите только те функции и структуры, которые понадобятся вам для решения вашей задачи.

Как правильно и какие типы импортировать? Поможет замечательный инструмент PInvoker , о котором мы уже писали, или любой другой аналогичный. Ну и конечно же, заголовочные h-файлы из скачанного архива с драйвером, а также руководство программиста.

3 Программа «Реализация SPI с помощью микросхем FTDI»

Представляю вашему вниманию программу «Реализация SPI с помощью микросхем фирмы FTDI» или "SPI via FTDI" – программное обеспечение, написанное под .NET и предназначенное для передачи данных из ПК и приёма данных в ПК с помощью микросхем фирмы FTDI (семейства FT22xx, FT23xx, FT42xx) по последовательному интерфейсу SPI. Это ПО позволит вам организовать обмен данными с устройствами, которые работают по интерфейсу SPI .

Микросхемы FT2ххx и FT3xxx работают только в режиме ведущего устройства SPI (master).

С помощью данной программы вы сможете оперативно протестировать вашу микросхему в разных режимах работы. Подключившись логическим анализатором к выводам SK, DO, DI и CS микросхемы, можно наглядно увидеть, как влияют разные настройки на способ передачи данных.

Системные требования

Операционная система Windows XP и выше, в т.ч. Windows 10. Программа работает как с x86, так и с x64 операционными системами. .NET Framework версии 3.5 SP1. Наличие USB порта.

Установка и настройка программы «SPI с помощью микросхем FTDI»

Если программа запускается на компьютере с ОС Windows XP, необходимо убедиться в наличии установленной .NET Framework и, при её отсутствии, установить.

Скачать .NET Framework 3.5 SP1 . После установки .NET Framework компьютер следует перезагрузить.

В Windows Vista, Windows 7 и 10 библиотеки .NET версии 3.5 присутствуют по умолчанию. Для установки на Windows 8 потребуется произвести дополнительные операции , а именно вручную включить возможность установки среды .NET.

Установка программы осуществляется копированием исполняемого файла с установочного носителя в нужное расположение.

При первом запуске программа проверит наличие необходимых для работы с микросхемами динамических библиотек D2XX.dll и FTCSPI.dll и, при их отсутствии, запишет их на компьютер в директорию C:\Temp .

Возможности программы

Передача данных из файла или введённого вручную массива байтов из ведущего устройства (микросхемы FTDI) к ведомому устройству, реализующему интерфейс SPI. Приём данных от ведомого устройства. Циклический приём данных заданное количество раз и в бесконечном цикле. Изменение настроек работы SPI, а также частотно-временных характеристик приёма и передачи «на ходу». Реализация различных режимов работы интерфейса SPI. Сохранение принятых данных в файл (текстовый или двоичный).

Работа с программой "SPI via FTDI"

При запуске программа определяет наличие подключённых к системе поддерживаемых устройств FTDI и создаёт для каждого устройства свою вкладку. Если после запуска программы были подключены новые устройства FTDI, можно обновить список устройств, нажав кнопку с синей стрелкой ( Обновить ).

Внешний вид главного окна программы «SPI с помощью FTDI»

Выбор настроек осуществляется выбором желаемых параметров в левой панели главного окна программы. Каждое устройство конфигурируется независимо.

Подключение к устройству FTDI осуществляется нажатием на кнопку в заголовке вкладки. Отключение – нажатием на ту же кнопку. Возможно одновременное подключение к нескольким устройствам.

Передача данных возможна тремя способами: выбором файла (кнопка с иконкой папки), отправкой произвольной последовательности байтов (в поле Преамбула при активном флажке), а также отправка преамбулы, а затем выбранного файла, если выбраны оба варианта. Передача данных осуществляется нажатием на кнопку Записать .

Приём данных от ведомого устройства осуществляется нажатием на кнопку Прочитать . Если в поле справа от кнопки введено число, отличное от 1, приём будет осуществлён соответствующее число раз; если указан "0", то чтение будет продолжаться бесконечно (до принудительной остановки).

При чтении все принятые данные автоматически сохраняются в файл (текстовый или двоичный, по выбору пользователя) в директорию с программой. Открытие файла происходит по нажатию на кнопку Открыть .

Данная программа использует только базовые возможности микросхем FTDI. Например, вы не сможете назначить несколько пинов Chip Select (используется только первый CS, см. таблицы выше), не сможете использовать выводы GPIOH . Т.е., сможете подключить только одно ведомое устройство SPI.

Скачать программу "SPI via FTDI"

Скачать программу можно по любой из ссылок ниже. Пишите свои замечания и отзывы о работе с программой в комментариях или мне на электронную почту.

Реклама

© 2013
Powered www.avtodrom-tv.ru © 2016
rss