Обсуждаем контроллеры компании Atmel.
Сб ноя 30, 2019 14:18:14
Подскажите, какую ардуину лучше всего применить для передачи данных с трех датчиков тока на компьютер по USB?
Мне нужно делать 15000 измерений переменного тока тремя датчиками в секунду. Насколько я разобрался, то получается по 2 байта с датчика: среднее значение АЦП при нуле тока = 512, а при максимальном токе = 1024 (2 байта).
Т.е. нужно пересылать на компьютер 6 байт на одно измерение: 15000 * 6 = 90000 байт в секунду или 90000 * 8 = 720000 бит в секунду, т.е. скорость должна быть не меньше 1 Мбит/сек.
Сможет ли Arduino выдать такую скорость на ПК через USB? Например контроллер ATmega32U4.
Из даташита на ATmega16: "Частота преобразования до 15 тыс. преобразований в сек. при максимальном разрешении". Это по всем входам в сумме или по каждому входу в отдельности? Мне нужно делать по трем входам по 15 тыс. измерений параллельно. Это возможно?
Правильно ли я вообще понимаю, что чувствительность АЦП 5 мВ на один разряд при опорном напряжении Vref = 5.12В (и при таком же напряжении питания датчика Vcc)? При нулевом входном токе выходное напряжение датчика ACS712 в идеальном случае должно быть строго Vcc/2 (2.56В), т.е. с АЦП должно быть считано число 512.
Если нужно измерять переменный ток от -5А до +5А напряжение с датчика будет от 0В до 5.12В, т.е. (Vin_max * 1024)/Vref = (5.12 * 1024)/5.12 = 1024 - максимальное значение АЦП.
А если взять Vref = 1.024В, то чувствительность АЦП = 1 мВ?
Какое вообще может быть минимальное Vref? И какая минимальная чувствительность АЦП у ATmega контроллеров?
Сб ноя 30, 2019 14:38:13
два байта - это 16 бит. АЦП у описанных атмег существенно меньше, значит, передавать можно меньше.
Входы АЦП переключаемы, то есть, не параллельно будет по трем каналам, скорости не хватит
Сб ноя 30, 2019 21:17:48
два байта - это 16 бит. АЦП у описанных атмег существенно меньше
Я округлил 10 бит до двух байт. Короче, шестнадцатеричный код надо передать от 1 до 1024.
А саму плату какую лучше использовать, с отдельной микросхемой USB-UART или, например, Arduino Micro на ATmega32u4 со встроенным USB-контроллером?
Встроенный USB-контроллер работает аппаратно отдельно от самого МК?
Сб ноя 30, 2019 21:29:58
Аппаратно всё работает отдельно, но это не означает, что всё так просто - кинул туда байт по какому-нить адресу и забыл.
Там может оказаться жуткий фреймворк, с которым, возможно, придется разбираться. Для начинающего переходник усб-уарт - лучший вариант.
Но вся беда, что под Ваше требование о 15кГц выборках эти мк не подходят. 3 канала успеют в лучшем случае выбирать с 5 кГц частотой.
Либо надо три мк, либо другой мк, либо мк + 2 АЦП внешних, либо изменить ТЗ с учетом мультиплексирования (переключения) каналов ацп.
Вс дек 01, 2019 07:03:13
Да, три МК придется использовать. Но мне нужно знать, какую плату лучше использовать, с отдельной микросхемой USB-UART или со встроенным USB-контроллером?
Нужна максимальная скорость и точность работы АЦП и быстрая передача данных на ПК без отвлечения МК на эту задачу. Первый раз я столкнулся с такой задачей, да и с ардуинами дела не имел. Если бы не передача по USB, то я бы взял свои МК ATmega 16 и 32, но если нужны еще внешние USB-контроллеры, то их у меня нет. А нельзя ли использовать имеющийся USART для передачи на ПК и насколько эта передача сможет помешать непрерывной работе АЦП?
Никаких фреймворков и библиотек, я все сделаю сам на ASM-е. Придется разобраться в протоколе, но ничего страшного.
С тремя МК еще такая засада, что выборки с токовых датчиков надо как-то синхронизировать, чтобы они осуществлялись строго одновременно. Можно сделать, чтобы один МК тактировал все три, в пределах одной платы.
В принципе, передавать на ПК в реальном времени необязательно, можно как-то записывать на какую-нибудь SD-карту. Хотя нет, лучше сразу на ПК.
Или не USB, а Ethernet.
Вс дек 01, 2019 09:44:10
У всех разные понятия и задачи, но большая скорость и высокая точность - это скорее не про АЦП AVR.
Более того чтобы достичь завленной точности и приемлемого шума, надо вводить контроллер в режим сна в момент преобразований. Ну и грамотно сделать схему и плату.
Поддержание соединения USB потребует участия процессорного ядра. Меньше всего хлопот с отдельным UASB-UART преобразователем.
Минимальное значение Vref из документации для 32U4: 2.56V.
Вс дек 01, 2019 10:20:45
Ну и грамотно сделать схему и плату.
Вот потому и хочу готовую ардуину взять, в надежде, что там все грамотно сделано. А датчик от платы на небольшом расстоянии планирую: 5 см, ну 10 см максимум.
Вс дек 01, 2019 11:25:17
По поводу 15 тыс измерений в сек.
Если вы планируете следить за 3-х фазной сетью, то такая скорость может оказаться излишней. Для периодических сигналов можно даже попробовать использовать стробоскопический эффект. Сдвиг фаз между каналами компенсировать программно. Недостающие выборки получать интерполяцией. Вариантов много, иногда бывает полезным на проблему взглянуть просто с другой стороны.
Сам ACS712 кстати тоже имеет шум и дрейф.
Вс дек 01, 2019 11:38:59
А зачем эту отрыжку мамонта использовать? Взять Cortex-M4, хоть тот же STM32F411, да сделать на нем!
Вс дек 01, 2019 13:06:32
uk8amk, нет, не за 3-х фазной сетью следить надо, там другое устройство, но вам вряд ли это будет интересно.
Eddy_Em, я думал про ARM контроллеры, но я с ними дела никогда не имел. Хотя попробовать можно, если один Cortex-M4 потянет три датчика (нужно 3 АЦП на борту) + передача на ПК.
Вс дек 01, 2019 13:58:45
Вот потому и хочу готовую ардуину взять, в надежде, что там все грамотно сделано.
Сожалею, но это не так. Универсальная платформа чаще всего не очень грамотно сделана (для какой-то задачи). Не потому, что делали безграмотные, а потому, что универсально - никак, за универсальность приходится платить, в том числе прозвищем "одурино".
Но если Ваша задача именно такова, как описана, и ТЗ полностью сформировано (без всяких потом "а можно еще светодиодик добавить?") то разработать схемку-плату, заказать в китае плату и спаять - пустяковая задача для подавляющего большинства фрилансеров, если неохота самому.
Вс дек 01, 2019 16:45:49
А зачем эту отрыжку мамонта использовать? Взять Cortex-M4, хоть тот же STM32F411, да сделать на нем!
Возник вопрос, какое ядро из STM32F4xx выбрать, нормальной сравнительной таблицы не нашел. Нужно 3 АЦП, 168 МГц, объем памяти и т.д.
И еще вопрос, на плате Cortex-M4 STM32F4xx один USB разъем для программирования контроллера и для вывода данных с него на ПК? Какой-то внешний программатор не нужен?
Вс дек 01, 2019 17:12:48
Vlad_RK, на сайте производителя есть нормальная параметрическая таблица, включая вариант 3 и более независимых ацп
например
https://www.st.com/content/st_com/en/pr ... 103rd.htmlи зачем 168? и какой объем памяти? и что такое и т.д? Вы задаете общие вопросы, на них можно дать лишь общие ответы. Опубликуйте нормальное ТЗ, получите нормальное решение.
Вс дек 01, 2019 17:46:45
Вот я там и был:
https://www.st.com/content/st_com/en/pr ... eries.htmlНо надо было пройти немного дальше, в Product Selector.
Просто уже голова плохо соображает, пол дня по сотне сайтов пролазил, попадаются только какие-то куски параметров. Хоть даташиты на каждый качай и изучай по отдельности.
Вс дек 01, 2019 18:02:34
Vlad_RK, бывает... тоже всю ночь потратил на поиск, где купить всего пару деталек - везде лишь на заказ, жуть.
Да, раньше у ST поудобнее было, все армы можно было сравнить в одной табличке, а теперь еще по подразделам лазить.
Гляньте указанный мной выше - он дешевле и информации(примеров) по нему больше. И платы а-ля ардуино на похожем (NUCLEO-F103RB - там вроде лишь 2 независимых ацп) есть, что позволит изучить. Единственное, что не все 103 имеют 3 ацп, надо по корпусу - буквам смотреть
Вс дек 01, 2019 18:27:02
Да мне задачу надо решить, а изучать в процессе буду. Нужен с тремя АЦП, иначе какой смысл? Ну и перебираю теперь, какой покруче взять - пригодится.
Теперь бы понять, не нужен ли какой внешний программатор, а то жди потом еще пока его привезут. Но вроде бы не нужен.
Вс дек 01, 2019 19:57:22
А какую среду разработки лучше использовать под STM32?
Вс дек 01, 2019 20:53:15
А какую среду разработки лучше использовать под STM32?
Ту, в которой привык работать. Вот и всĒ!
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.