Easyelectronics.ru

Электроника для всех
Текущее время: 25 сен 2018, 20:28

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 00:44 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
Привет!
Задача такая: забирать поток бит с внешнего сигма-дельта модулятора с частотой до 20 MSPS и отдавать его по USB без потерь.
Модулятор - AD7401A, протокол чтения битовой последовательности простой: на входе модулятора - тактовый сигнал, на выходе - бит, который надо забрать. Тактовый сигнал для модулятора должен генерировать микроконтроллер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 00:48 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 475
Так как на подобные грабли уже наступал, то лучше сразу определиться. Какой программой с USB забирать собираетесь ? Какой протокол обмена с девайсом ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 01:12 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
void1509 писал(а):
Так как на подобные грабли уже наступал, то лучше сразу определиться. Какой программой с USB забирать собираетесь ? Какой протокол обмена с девайсом ?

Подразумевается постоянный поток бит. Внутри МК биты будут упаковываться в байты и улетать в USB - будем иметь постоянный поток байт. Простого CDC должно хватить. Читать буду как-то так (питон):
Код:
import serial
s = serial.Serial('/dev/ttyACM0')
while True:
    print s.read(64)

Но если сможете выжать максимум из USB и организовать передачу на максимальной для Full Speed скорости - это плюс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 01:20 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 654
FS - это 12Mb\s максимум, а у тебя 20 MSPS * 16 bit = 320Mb\s, т.е. нужен HS с внешней PHY, никаких CDC и все равно шансы получить такую скорость стремятся к нулю.

ps. Стоп, так у этой AD7401A последовательный интерфейс, так что там не 20 MSPS, а 20 Mbit...


Последний раз редактировалось Reflector 17 апр 2018, 01:29, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 01:25 
Старожил

Зарегистрирован: 17 дек 2014, 04:38
Сообщения: 475
Full Speed для 20MSPS мало. FS это 12 мбит/с. по спецификации, реально меньше. К тому же все равно нужен какой то протокол обмена - команды старт, стоп, пакет(размер) и т.д. То есть реальная скорость в районе 1Мбайт/с.

Вы поймите, это я не придираюсь, просто я не знаю что за устройство вы разрабатываете и обрисовываю реальную ситуацию. Что бы вы могли сами оценить, подойдут вам такие параметры или нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 01:53 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
Reflector писал(а):
FS - это 12Mb\s максимум, а у тебя 20 MSPS * 16 bit = 320Mb\s, т.е. нужен HS с внешней PHY, никаких CDC и все равно шансы получить такую скорость стремятся к нулю.

ps. Стоп, так у этой AD7401A последовательный интерфейс, так что там не 20 MSPS, а 20 Mbit...


Вот-вот. Я не точно выразился. Один сэмпл = один бит. 20 Мбит/с.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 02:00 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
void1509 писал(а):
Full Speed для 20MSPS мало. FS это 12 мбит/с. по спецификации, реально меньше. К тому же все равно нужен какой то протокол обмена - команды старт, стоп, пакет(размер) и т.д. То есть реальная скорость в районе 1Мбайт/с.

Вы поймите, это я не придираюсь, просто я не знаю что за устройство вы разрабатываете и обрисовываю реальную ситуацию. Что бы вы могли сами оценить, подойдут вам такие параметры или нет.

Меня уже поправили выше - 20 Мбит/с. Если FS - это < 12 Мбит/с, дела неважные. Оставим это как запасной вариант.
Рекомендуете добавить PHY для HS?
А если писать в Ethernet? Есть Nucleo-144 со 100-Мбитным портом...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 04:06 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2965
во-первых просто возьмите ft232h. MPSSE справится.
а во-вторых возьмите нормальный АЦП, развяжите ему spi, раз так надо.
зачем вообще может понадобится тащить нефильтрованный выход модулятора, причём так себе модулятора, да ещё и в ПК?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 04:09 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3600
Откуда: Кемеровская область, Киселевск
Да я думаю ему Ethernet будет проще поднять.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 14:51 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2965
Это только если надо "вчера" и собрать из-то что есть под рукой.
Ну а насчёт проще: в случае с ftdi надо лишь позвать FT_Open, FT_Write, FT_Read и данные вот они.
А тут придётся писать прошивку в nucleo, прикручивать lwip какой-нибудь, городить хоть какой-то простенький протокол для общения с железкой, хотя бы "горшочек-вари" / "горшочек-не вари".
И потом ещё всё равно приложение в ПК чтобы эти данные забрать.
Не, ethernet конечно более правильный интерфейс чем usb, но для одноразовой поделки - не проще.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 17 апр 2018, 17:47 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 июл 2010, 21:24
Сообщения: 142
Откуда: СПб
evgenykurbatov писал(а):
Привет!
Задача такая: забирать поток бит с внешнего сигма-дельта модулятора с частотой до 20 MSPS и отдавать его по USB без потерь.

Если задача разовая, то решения Вам уже накидали. Действительно, на usb и быстрее, и проще "наколхозить".
Если же предполагается некий выпуск продукции или интеграция с каким либо оборудованием, то надо переходит на ethernet как более надежный интерфейс.

_________________
Для связи email: info собака qbit.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 18 апр 2018, 22:52 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
Извините, что не отвечал сразу. Спасибо за обсуждения.
Предполагается изготовить один-два экземпляра устройства из имеющейся комплектухи.

_pv: FT232H - учту на будущее. Какой модулятор вы бы рекомендовали вместо AD7401A и почему?

Теперь задача сформировалась окончательно. Здесь и цели и методы.
1. Опрашивать AD7401A - читать и писать в GPIO с помощью DMA.
2. Поток бит от модулятора упаковывать в байты и ...
2. Записывать в USB CDC в режиме FS или HS - с помощью DMA.
3. Сделать всё на STM32Cube HAL, чтобы я смог разобраться/доработать/переключить FS на HS и т.д.
4. Проект должен дружить с CubeMX, чтобы можно было переконфигурировать что-то в гуе, но ...
5. Проект должен компилироваться make'ом - не люблю IDE.

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

Кто возьмётся? Сроки, цена?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 00:55 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2965
из каких вообще соображений выбран ad7401 вместо любого готового АЦП?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 01:14 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
_pv писал(а):
из каких вообще соображений выбран ad7401 вместо любого готового АЦП?

Мы не знаем, что ищем. Путём цифровой фильтрации одного и того же сигнала от модулятора можно получать большую частоту семплирования при небольшой разрядности или наоборот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 03:58 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2965
80 дБ SNR для 5 кГц сигнала это конечно здорово, есть АЦП которые больше выдадут для сигнала на частоте в 20 МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 11:31 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1729
Откуда: Харьков
Цитата:
Эти требования могут показаться вам не оптимальными (например, DMA для USB)

Не оптимальные здесь только пункты 3, 4, 5
Что вы в хале хотите потом переконфигурить? Темболее вы собираетесь платить за проект.
Выкиньте эту чушь из требований и головы, платите - значит пусть сделают нормальный проект который будет легко читаем без всей этой хрени.
Опишите в требованиях отдельный конфигурацинный файлик с дефайнами и все.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 11:39 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1729
Откуда: Харьков
Вот мой USB-CDC на чистом CMSIS:
https://github.com/saewave/STM32F103-USB-CDC-CMSIS
Пользуйте, но лицензия там GPL3 что подразумевает что ваш код тоже должен быть открыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 11:51 
Старожил
Аватара пользователя

Зарегистрирован: 06 ноя 2013, 16:07
Сообщения: 571
Откуда: Германия
alexsam писал(а):
лицензия там GPL3 что подразумевает что ваш код тоже должен быть открыт.


Это не так


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 12:10 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1729
Откуда: Харьков
dev писал(а):
alexsam писал(а):
лицензия там GPL3 что подразумевает что ваш код тоже должен быть открыт.


Это не так

Это так в случае распространения программы. Если для себя конечно не обязательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 12:40 
Старожил

Зарегистрирован: 27 мар 2015, 01:22
Сообщения: 1265
evgenykurbatov писал(а):
Мы не знаем, что ищем.

Мы это НИИ какой-то? Какой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 13:17 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
alexsam писал(а):
Вот мой USB-CDC на чистом CMSIS:
https://github.com/saewave/STM32F103-USB-CDC-CMSIS
Пользуйте, но лицензия там GPL3 что подразумевает что ваш код тоже должен быть открыт.

ОК, один пункт выполнен. Осталось ещё несколько.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 13:20 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
alexsam писал(а):
Цитата:
Эти требования могут показаться вам не оптимальными (например, DMA для USB)

Не оптимальные здесь только пункты 3, 4, 5
Что вы в хале хотите потом переконфигурить? Темболее вы собираетесь платить за проект.
Выкиньте эту чушь из требований и головы, платите - значит пусть сделают нормальный проект который будет легко читаем без всей этой хрени.
Опишите в требованиях отдельный конфигурацинный файлик с дефайнами и все.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 13:33 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
_pv писал(а):
80 дБ SNR для 5 кГц сигнала это конечно здорово, есть АЦП которые больше выдадут для сигнала на частоте в 20 МГц.

А ещё есть АЦП от E2V, которые могут семплировать с частотой 5.4Gsps - там 4 канала и они могут на каждый 4–й такт отрабатывать один и тот же сигнал, если есть несколько тыс. английских фунтов за чип.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 14:31 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2965
за те же 4$ (у производителя) вполне есть готовые сигма-дельта АЦП, которые на десятках кГц дадут на порядок лучше (>100дБ) шумы/искажения.
если нужна частота больше, то за те же 4$ есть 14-16 разрядные SAR с частотой 1-2МГц, которые кстати тоже можно фильтровать разменяв скорость на разряды.
а у ad7401 при децимации 20 (на 1МГц) останется аж 8 эффективных разрядов. нынче встроенные АЦП в первый попавшийся МК за те же 4$ делают не хуже.
а если ещё повыбирать или пару $ переплатить, так вообще.

https://www.findchips.com/search/ad7401a
https://www.findchips.com/search/lpc4370
"разницу видишь? и я нет, а она есть" (с)

тем более что есть готовый https://www.findchips.com/search/OM13054UL


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM32: читаем/пишем GPIO, сливаем по USB
СообщениеДобавлено: 19 апр 2018, 15:09 
Только пришел

Зарегистрирован: 23 авг 2017, 00:29
Сообщения: 15
_pv писал(а):
за те же 4$ (у производителя) вполне есть готовые сигма-дельта АЦП, которые на десятках кГц дадут на порядок лучше (>100дБ) шумы/искажения.
если нужна частота больше, то за те же 4$ есть 14-16 разрядные SAR с частотой 1-2МГц, которые кстати тоже можно фильтровать разменяв скорость на разряды.
а у ad7401 при децимации 20 (на 1МГц) останется аж 8 эффективных разрядов. нынче встроенные АЦП в первый попавшийся МК за те же 4$ делают не хуже.
а если ещё повыбирать или пару $ переплатить, так вообще.

https://www.findchips.com/search/ad7401a
https://www.findchips.com/search/lpc4370
"разницу видишь? и я нет, а она есть" (с)

тем более что есть готовый https://www.findchips.com/search/OM13054UL

Не доверяю АЦП, встроенным в МК - шумят. Одновременно проводить измерения и там же писать в USB - ничего хорошего не намеришь. В том же AD7401A цепь измерения отделена от цепи обмена.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB