Возмём STM32F103C8T6, у него куча портов, почему бы из них не сварганить АЦП? Ставим на порты транзисторы, на них делители напряжения, так - чтоб каждый из них открывал каждый транзистор на индивидуальном значении напряжения на входе, регистрируем единицы и нули, строим из них число. Получается АЦП с большой частотой выборки. Плюсы - дёшево и быстродействующе. Как думаете?
Интересно, для чего может понадобиться АЦП с частотой выше, чем у штатного встроенного, но с погрешностью плюс-минус километр и разрядностью 4-5 бит (если задействовать почти все порты)?
транзисторов по числу ног, плюс на каждый делитель... где тут дешево?
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Ср фев 07, 2018 10:14:32
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Берем МК с неплохим АЦП, работающим по ДМА нахаляву, паяем вокруг него мешок транзисторов и резюков и получаем тоже АЦП, только на порядки медленее, менее точно и берущий 100% ресурсов ядра - профит -))))
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Зато "с большой частотой выборки". Надо наверное на ПЛИС такое собирать
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Самое смешное, что и этого не будет. Хотя, некоторые после атмег все считают, что раз ядро на 120Мхз фигачит, то и ногами со 120Мхз можно дергать -))
120 может и не будет, но 50МГц для махания лапками даташиты на полном серьезе указывают. APB2 пресловутого F103 - на полной частоте, 72МГц. Порты насколько я помню работают за 1 такт, и читать состояние можно каждый такт APB2. Но проц ничего другого делать не сможет. К тому же прочитанные данные наверное захочется куда-то сохранять, а то и вовсе обрабатывать или отсылать. И все станет интересно - куда девать, где на это время взять и какой джиттер.
Максимум применений который для этого изврата придумывается - ухватить "пакет" отсчетов в RAM и потом его куда-то отгружать или обсчитывать, забив на ADC на время. Но проще будет взять F3 и зарядить тамошние 3 ADC друг за другом, вытаскивая лопатой. Любители осцилов вроде делают, и в отличие от - проц под завязку не грузит, так что можно делать что-то еще. Подробнее можно посмотреть в ветке про осциллографы если интересно. А если надо еще больше, народ берет скоростные чипы ADC и FPGA. Потому что так лучше всего работает для этой задачи.
И все-же на посмеяться, на hackday висит RF передатчик на FM диапазон, чтоли, состоящий из ... attiny и батарейки. Конечно она не может в FM ногами дрыгать, но прямоугольный сигнал дает гармоники. Одна из них приходится на FM диапазон. Поэтому проц с батарейкой может быть RF передатчиком до кучи.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Вт фев 13, 2018 11:20:24
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
С этими 120, 50 Мхз я такой геморой имел. Причем у меня не 120MHz, у меня 300Mhz M7 и fpga'шка, использовал gpio для статусов - всякие там реди, бизи, доун и т.д. от фпгашки Вобщем, попробуй простой эксперимент - две ноги снаружи соедини, дальше у одной меняй состояние, другое считывай - посчитай сколько тактов будет между двумя этими событиями -))
Я догадываюсь что будет, но может быть человеку этого спорта как раз и хочется? В F7 с 300МГц наверняка особенностей еще больше.
Во всем этом деле довольно много "если". Какие wait state памяти откуда выполняется код. Какой код получился и сколько это циклов (на чистом асме 32F програмить - ну не знаю), и все такое. Прерывания дико испортят worst case, а совсем без них - гм! Посмотреть статус лапок - читать регистр порта можно за 1 цикл, Но само по себе это бесполезно. А что-то сделать или данные куда-то деть - циклы.
Так что 50Мгц актуально для фокусов когда изменения состояний лапок фигачатся максимально быстро, с полным пофигом на остальное. Нечто типа unrolled loop. Из RAM, там wait state-ов нет. С чтением порта и записью в буфер не прокатит - выполнение кода и запись буфера будут делить шину. А если из флеша, там у F103 0 WS только до 24МГц чтоли. Но если кому легких путей не ищется... то даташит не врет. Но говорит не всю правду
Последний раз редактировалось linuxdude Вт фев 13, 2018 12:41:27, всего редактировалось 1 раз.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Вт фев 13, 2018 12:36:21
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Cahes писал(а):
Ставим на порты транзисторы, на них делители напряжения, так - чтоб каждый из них открывал каждый транзистор на индивидуальном значении напряжения на входе, регистрируем единицы и нули, строим из них число.
Транзисторы так не работают, компаратор на них придется делать (а это уже не один) или использовать ОУ. Дешевые транзисторы и ОУ не работают на МГцах нормально. И не забыть еще ИОН сконаебить.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
А если из флеша, там у F103 0 WS только до 24МГц чтоли. Но если кому легких путей не ищется...
Оно у всех так. И 60Мхз, и у 120Мхз, и у 300Мхз рабочая частота флеша 20-26Мхз. Дальше вводятся вейтстейты, которые уравновешиваются (с очень разной успешностью даже в разных семествах одного производителя -))) ) шириной, фифошками, предвыборкой, кешем.
Кстати, по той же причине, макс. производительность зачастую достигается не на макс. частоте ядра, а на макс частоте флеша умноженное на целое число.
Как пример - у фрискейла на MK22 (M4F) было особенно ярко - он 120Мхз, макс. часотата флеша 26.66Мхз. Но считает шустрее на 106.6Mhz. 26.6 x 4 шустрее 24 x 5 -)
Я в курсе что флеш (и вообще память) отстает от проца. Это очень древний эффект. На атмелах он не вылезает лишь в силу мизерных рабочих частот . Но за это есть своя цена - что либо считать на атмелах абсолютная порнография, как только это сложнее 2+2. И видеть весь мир только байтами... у них вроде до сих пор ADC 8 битов и тормозной как трактор, разве нет?
Кстати у F103 максимум 72, это 24 * 3, наверное как раз максимум с 2WS и ограничил частоты. Но у RAM вроде как WS всегда нулевой, из него быстрее будет, ЕСЛИ код в него не будет лазить попутно. А это не совсем удобное и простое требование для осмысленной активности кода. Особенно - чтения порта на скорость в допушении что результат чтения еще и интересовал.
Заголовок сообщения: Re: Объясните на предмет АЦП из портов
Добавлено: Вт фев 13, 2018 14:09:10
Друг Кота
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Да, SRAM, во всяком случае TCM, всегда c частотой ядра. Но не TCM не всегда с нулевой латентностью -)) Из SRAMа не всегда быстрей. Классический пример - шифрование на основе сети фейстеля. Когда у тебя в оперативке и код, и исходные данные, и результат, и основной шаг алгоритма - табличная трансляция, тормозить начинает сильнее, чем если все, кроме кода, в SRAMе.
У флеша предел в ~25Mhz похоже чтото фундаментальное их физики.
1) просто никакое разрешение: даже если отдать под это дело 8 портов по 8 ног (64 ноги) будет лишь 6 бит разрешения... 2) скорость... во первых всю эту батарею надо зарядить и дождаться "устаканивания" напруги, во вторых надо эти порты опросить все (да результат обработать), а это будет медленнее, чем опрашивать 1-2 регистра, и в третьих нет никакой защиты от изменения входа во время замера. 3) если это всё на рассыпухе делать.....(тут много слов про стоимость, компактность и помехозащищенность)
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Я про микроконтроллеры говорил, у них обычно RAM рядом с ядром, WS обычно нет. У более жирных там кэш, иногда его даже можно как "явный" SRAM использовать. Сильно быстрее всего остального в таком случае.
Что до фейстеля - гонять алгоритм который что-то с RAM интенсивно делает, при том что код в RAM - плохо же. Из соображений активности шины. Говоря за себя я в состоянии прикинуть это, и про WS я в курсе. Я такие вещи наблюдал даже в 8-битных системах с внешними RAM/ROM. Флеш тормозил даже там, так что критичный код перегружали в SRAM Кстати криптографы сейчас уходят от фейстеля. Проблем с ними, особенно на больших системах. Современные алгоритмы предпочитают быть кучкой математических действий, без таблиц. А что до пределов - быстрые процессоры вообще как-то оказалось делать проще чем быструю память. Реально за ядрами успевает только SRAM но она площадь кристалла очень расходует, много не поставишь, и от питания зависит. Кстати вроде в каких-то китайских клонах STM32 флеха оформленная отдельным кристаллом быстрее работает. На уровне физики флеха - массив полевиков с изолированным затвором, где заряд "пойман", при чтении определяется открыт полевик из-за заряда пойманного в затворе или нет. Сам по себе процесс определения открыт ли полевик вроде не имеет причин сильно тормозить. Возможно что для интеграции на один кристалл флеша и обычной логики приходится на какие-то компромиссы сильнее идти.
Цитата:
1) просто никакое разрешение: даже если отдать под это дело 8 портов по 8 ног (64 ноги) будет лишь 6 бит разрешения...
Это как? Я почему-то думал что даже 8-битный порт даст 8 битов разрешения? Могут быть 8 битов в разных состояниях. Я что-то упускаю? Но вот штука мегагерцевых частот на рассыпухе покажет... ну явно не то что у STM32 в даташите про их ADC написано про ошибки, линейность и проч.
про разрешение: 8 бит будет если ноги как попало меняются, а тут набор компараторов (как линейка уровня сигнала на магнитофоне) т.е 8 ног - 9 состояний (от "0" на всех, "1" на одном, "1" на 2х, ..., "1" на всех 8ми ногах).
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения