Объясните на предмет АЦП из портов
Объясните на предмет АЦП из портов
Возмём STM32F103C8T6, у него куча портов, почему бы из них не сварганить АЦП? Ставим на порты транзисторы, на них делители напряжения, так - чтоб каждый из них открывал каждый транзистор на индивидуальном значении напряжения на входе, регистрируем единицы и нули, строим из них число. Получается АЦП с большой частотой выборки. Плюсы - дёшево и быстродействующе. Как думаете?
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18629
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Объясните на предмет АЦП из портов
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Объясните на предмет АЦП из портов
Интересно, для чего может понадобиться АЦП с частотой выше, чем у штатного встроенного, но с погрешностью плюс-минус километр и разрядностью 4-5 бит (если задействовать почти все порты)?
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Объясните на предмет АЦП из портов
транзисторов по числу ног, плюс на каждый делитель... где тут дешево?

Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Объясните на предмет АЦП из портов
Берем МК с неплохим АЦП, работающим по ДМА нахаляву, паяем вокруг него мешок транзисторов и резюков и получаем тоже АЦП, только на порядки медленее, менее точно и берущий 100% ресурсов ядра - профит -))))
- Реклама
Re: Объясните на предмет АЦП из портов
Забыли еще добавить - с разрядностью на порядок меньшей 
Re: Объясните на предмет АЦП из портов
Зато "с большой частотой выборки". Надо наверное на ПЛИС такое собирать 
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Re: Объясните на предмет АЦП из портов
[uquote="Morroc",url="/forum/viewtopic.php?p=3303722#p3303722"]Зато "с большой частотой выборки".[/uquote]
Самое смешное, что и этого не будет.
Хотя, некоторые после атмег все считают, что раз ядро на 120Мхз фигачит, то и ногами со 120Мхз можно дергать -))
Самое смешное, что и этого не будет.
Хотя, некоторые после атмег все считают, что раз ядро на 120Мхз фигачит, то и ногами со 120Мхз можно дергать -))
Re: Объясните на предмет АЦП из портов
[uquote="Satyr",url="/forum/viewtopic.php?p=3303799#p3303799"][uquote="Morroc",url="/forum/viewtopic.php?p=3303722#p3303722"]Зато "с большой частотой выборки".[/uquote]
Самое смешное, что и этого не будет.
Хотя, некоторые после атмег все считают, что раз ядро на 120Мхз фигачит, то и ногами со 120Мхз можно дергать -))[/uquote]
120 может и не будет, но 50МГц для махания лапками даташиты на полном серьезе указывают. APB2 пресловутого F103 - на полной частоте, 72МГц. Порты насколько я помню работают за 1 такт, и читать состояние можно каждый такт APB2. Но проц ничего другого делать не сможет. К тому же прочитанные данные наверное захочется куда-то сохранять, а то и вовсе обрабатывать или отсылать. И все станет интересно - куда девать, где на это время взять и какой джиттер.
Максимум применений который для этого изврата придумывается - ухватить "пакет" отсчетов в RAM и потом его куда-то отгружать или обсчитывать, забив на ADC на время. Но проще будет взять F3 и зарядить тамошние 3 ADC друг за другом, вытаскивая лопатой. Любители осцилов вроде делают, и в отличие от - проц под завязку не грузит, так что можно делать что-то еще. Подробнее можно посмотреть в ветке про осциллографы если интересно. А если надо еще больше, народ берет скоростные чипы ADC и FPGA. Потому что так лучше всего работает для этой задачи.
И все-же на посмеяться, на hackday висит RF передатчик на FM диапазон, чтоли, состоящий из ... attiny и батарейки. Конечно она не может в FM ногами дрыгать, но прямоугольный сигнал дает гармоники. Одна из них приходится на FM диапазон. Поэтому проц с батарейкой может быть RF передатчиком до кучи.
Самое смешное, что и этого не будет.
Хотя, некоторые после атмег все считают, что раз ядро на 120Мхз фигачит, то и ногами со 120Мхз можно дергать -))[/uquote]
120 может и не будет, но 50МГц для махания лапками даташиты на полном серьезе указывают. APB2 пресловутого F103 - на полной частоте, 72МГц. Порты насколько я помню работают за 1 такт, и читать состояние можно каждый такт APB2. Но проц ничего другого делать не сможет. К тому же прочитанные данные наверное захочется куда-то сохранять, а то и вовсе обрабатывать или отсылать. И все станет интересно - куда девать, где на это время взять и какой джиттер.
Максимум применений который для этого изврата придумывается - ухватить "пакет" отсчетов в RAM и потом его куда-то отгружать или обсчитывать, забив на ADC на время. Но проще будет взять F3 и зарядить тамошние 3 ADC друг за другом, вытаскивая лопатой. Любители осцилов вроде делают, и в отличие от - проц под завязку не грузит, так что можно делать что-то еще. Подробнее можно посмотреть в ветке про осциллографы если интересно. А если надо еще больше, народ берет скоростные чипы ADC и FPGA. Потому что так лучше всего работает для этой задачи.
И все-же на посмеяться, на hackday висит RF передатчик на FM диапазон, чтоли, состоящий из ... attiny и батарейки. Конечно она не может в FM ногами дрыгать, но прямоугольный сигнал дает гармоники. Одна из них приходится на FM диапазон. Поэтому проц с батарейкой может быть RF передатчиком до кучи.
Re: Объясните на предмет АЦП из портов
С этими 120, 50 Мхз я такой геморой имел. Причем у меня не 120MHz, у меня 300Mhz M7 и fpga'шка, использовал gpio для статусов - всякие там реди, бизи, доун и т.д. от фпгашки
Вобщем, попробуй простой эксперимент - две ноги снаружи соедини, дальше у одной меняй состояние, другое считывай - посчитай сколько тактов будет между двумя этими событиями -))
Вобщем, попробуй простой эксперимент - две ноги снаружи соедини, дальше у одной меняй состояние, другое считывай - посчитай сколько тактов будет между двумя этими событиями -))
Re: Объясните на предмет АЦП из портов
Я догадываюсь что будет, но может быть человеку этого спорта как раз и хочется?
В F7 с 300МГц наверняка особенностей еще больше.
Во всем этом деле довольно много "если". Какие wait state памяти откуда выполняется код. Какой код получился и сколько это циклов (на чистом асме 32F програмить - ну не знаю), и все такое. Прерывания дико испортят worst case, а совсем без них - гм! Посмотреть статус лапок - читать регистр порта можно за 1 цикл, Но само по себе это бесполезно. А что-то сделать или данные куда-то деть - циклы.
Так что 50Мгц актуально для фокусов когда изменения состояний лапок фигачатся максимально быстро, с полным пофигом на остальное. Нечто типа unrolled loop. Из RAM, там wait state-ов нет. С чтением порта и записью в буфер не прокатит - выполнение кода и запись буфера будут делить шину. А если из флеша, там у F103 0 WS только до 24МГц чтоли. Но если кому легких путей не ищется... то даташит не врет. Но говорит не всю правду
Во всем этом деле довольно много "если". Какие wait state памяти откуда выполняется код. Какой код получился и сколько это циклов (на чистом асме 32F програмить - ну не знаю), и все такое. Прерывания дико испортят worst case, а совсем без них - гм! Посмотреть статус лапок - читать регистр порта можно за 1 цикл, Но само по себе это бесполезно. А что-то сделать или данные куда-то деть - циклы.
Так что 50Мгц актуально для фокусов когда изменения состояний лапок фигачатся максимально быстро, с полным пофигом на остальное. Нечто типа unrolled loop. Из RAM, там wait state-ов нет. С чтением порта и записью в буфер не прокатит - выполнение кода и запись буфера будут делить шину. А если из флеша, там у F103 0 WS только до 24МГц чтоли. Но если кому легких путей не ищется... то даташит не врет. Но говорит не всю правду
Последний раз редактировалось linuxdude Вт фев 13, 2018 12:41:27, всего редактировалось 1 раз.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Объясните на предмет АЦП из портов
Транзисторы так не работают, компаратор на них придется делать (а это уже не один) или использовать ОУ. Дешевые транзисторы и ОУ не работают на МГцах нормально. И не забыть еще ИОН сконаебить.Cahes писал(а): Ставим на порты транзисторы, на них делители напряжения, так - чтоб каждый из них открывал каждый транзистор на индивидуальном значении напряжения на входе, регистрируем единицы и нули, строим из них число.
Re: Объясните на предмет АЦП из портов
[uquote="linuxdude",url="/forum/viewtopic.php?p=3307858#p3307858"]А если из флеша, там у F103 0 WS только до 24МГц чтоли. Но если кому легких путей не ищется...[/uquote]
Оно у всех так. И 60Мхз, и у 120Мхз, и у 300Мхз рабочая частота флеша 20-26Мхз. Дальше вводятся вейтстейты, которые уравновешиваются (с очень разной успешностью даже в разных семествах одного производителя -))) ) шириной, фифошками, предвыборкой, кешем.
Кстати, по той же причине, макс. производительность зачастую достигается не на макс. частоте ядра, а на макс частоте флеша умноженное на целое число.
Как пример - у фрискейла на MK22 (M4F) было особенно ярко - он 120Мхз, макс. часотата флеша 26.66Мхз. Но считает шустрее на 106.6Mhz.
26.6 x 4 шустрее 24 x 5 -)
Оно у всех так. И 60Мхз, и у 120Мхз, и у 300Мхз рабочая частота флеша 20-26Мхз. Дальше вводятся вейтстейты, которые уравновешиваются (с очень разной успешностью даже в разных семествах одного производителя -))) ) шириной, фифошками, предвыборкой, кешем.
Кстати, по той же причине, макс. производительность зачастую достигается не на макс. частоте ядра, а на макс частоте флеша умноженное на целое число.
Как пример - у фрискейла на MK22 (M4F) было особенно ярко - он 120Мхз, макс. часотата флеша 26.66Мхз. Но считает шустрее на 106.6Mhz.
26.6 x 4 шустрее 24 x 5 -)
Re: Объясните на предмет АЦП из портов
Я в курсе что флеш (и вообще память) отстает от проца. Это очень древний эффект. На атмелах он не вылезает лишь в силу мизерных рабочих частот
. Но за это есть своя цена - что либо считать на атмелах абсолютная порнография, как только это сложнее 2+2. И видеть весь мир только байтами... у них вроде до сих пор ADC 8 битов и тормозной как трактор, разве нет?
Кстати у F103 максимум 72, это 24 * 3, наверное как раз максимум с 2WS и ограничил частоты. Но у RAM вроде как WS всегда нулевой, из него быстрее будет, ЕСЛИ код в него не будет лазить попутно. А это не совсем удобное и простое требование для осмысленной активности кода. Особенно - чтения порта на скорость в допушении что результат чтения еще и интересовал.
Кстати у F103 максимум 72, это 24 * 3, наверное как раз максимум с 2WS и ограничил частоты. Но у RAM вроде как WS всегда нулевой, из него быстрее будет, ЕСЛИ код в него не будет лазить попутно. А это не совсем удобное и простое требование для осмысленной активности кода. Особенно - чтения порта на скорость в допушении что результат чтения еще и интересовал.
Re: Объясните на предмет АЦП из портов
Да, SRAM, во всяком случае TCM, всегда c частотой ядра. Но не TCM не всегда с нулевой латентностью -))
Из SRAMа не всегда быстрей. Классический пример - шифрование на основе сети фейстеля.
Когда у тебя в оперативке и код, и исходные данные, и результат, и основной шаг алгоритма - табличная трансляция, тормозить начинает сильнее, чем если все, кроме кода, в SRAMе.
У флеша предел в ~25Mhz похоже чтото фундаментальное их физики.
Из SRAMа не всегда быстрей. Классический пример - шифрование на основе сети фейстеля.
Когда у тебя в оперативке и код, и исходные данные, и результат, и основной шаг алгоритма - табличная трансляция, тормозить начинает сильнее, чем если все, кроме кода, в SRAMе.
У флеша предел в ~25Mhz похоже чтото фундаментальное их физики.
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Объясните на предмет АЦП из портов
По скорости выполнения кода я уже кое-что пробовал http://radiokot.ru/forum/viewtopic.php?f=59&t=151209
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Объясните на предмет АЦП из портов
1) просто никакое разрешение: даже если отдать под это дело 8 портов по 8 ног (64 ноги) будет лишь 6 бит разрешения...
2) скорость... во первых всю эту батарею надо зарядить и дождаться "устаканивания" напруги, во вторых надо эти порты опросить все (да результат обработать), а это будет медленнее, чем опрашивать 1-2 регистра, и в третьих нет никакой защиты от изменения входа во время замера.
3) если это всё на рассыпухе делать.....(тут много слов про стоимость, компактность и помехозащищенность)
2) скорость... во первых всю эту батарею надо зарядить и дождаться "устаканивания" напруги, во вторых надо эти порты опросить все (да результат обработать), а это будет медленнее, чем опрашивать 1-2 регистра, и в третьих нет никакой защиты от изменения входа во время замера.
3) если это всё на рассыпухе делать.....(тут много слов про стоимость, компактность и помехозащищенность)
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Re: Объясните на предмет АЦП из портов
В давние времена прикрутил АЦП к Спектруму. 6бит АЦП сделал из одной 561лн1. Получился мой первый осциллограф
.
Re: Объясните на предмет АЦП из портов
Я про микроконтроллеры говорил, у них обычно RAM рядом с ядром, WS обычно нет. У более жирных там кэш, иногда его даже можно как "явный" SRAM использовать. Сильно быстрее всего остального в таком случае.
Что до фейстеля - гонять алгоритм который что-то с RAM интенсивно делает, при том что код в RAM - плохо же. Из соображений активности шины. Говоря за себя я в состоянии прикинуть это, и про WS я в курсе. Я такие вещи наблюдал даже в 8-битных системах с внешними RAM/ROM. Флеш тормозил даже там, так что критичный код перегружали в SRAM
Кстати криптографы сейчас уходят от фейстеля. Проблем с ними, особенно на больших системах. Современные алгоритмы предпочитают быть кучкой математических действий, без таблиц. А что до пределов - быстрые процессоры вообще как-то оказалось делать проще чем быструю память. Реально за ядрами успевает только SRAM но она площадь кристалла очень расходует, много не поставишь, и от питания зависит. Кстати вроде в каких-то китайских клонах STM32 флеха оформленная отдельным кристаллом быстрее работает. На уровне физики флеха - массив полевиков с изолированным затвором, где заряд "пойман", при чтении определяется открыт полевик из-за заряда пойманного в затворе или нет. Сам по себе процесс определения открыт ли полевик вроде не имеет причин сильно тормозить. Возможно что для интеграции на один кристалл флеша и обычной логики приходится на какие-то компромиссы сильнее идти.
Что до фейстеля - гонять алгоритм который что-то с RAM интенсивно делает, при том что код в RAM - плохо же. Из соображений активности шины. Говоря за себя я в состоянии прикинуть это, и про WS я в курсе. Я такие вещи наблюдал даже в 8-битных системах с внешними RAM/ROM. Флеш тормозил даже там, так что критичный код перегружали в SRAM
Это как? Я почему-то думал что даже 8-битный порт даст 8 битов разрешения? Могут быть 8 битов в разных состояниях. Я что-то упускаю? Но вот штука мегагерцевых частот на рассыпухе покажет... ну явно не то что у STM32 в даташите про их ADC написано про ошибки, линейность и проч.1) просто никакое разрешение: даже если отдать под это дело 8 портов по 8 ног (64 ноги) будет лишь 6 бит разрешения...
- Ivanoff-iv
- Друг Кота
- Сообщения: 7077
- Зарегистрирован: Пт ноя 11, 2016 05:48:09
- Откуда: Сердце Пармы
Re: Объясните на предмет АЦП из портов
про разрешение: 8 бит будет если ноги как попало меняются, а тут набор компараторов (как линейка уровня сигнала на магнитофоне) т.е 8 ног - 9 состояний (от "0" на всех, "1" на одном, "1" на 2х, ..., "1" на всех 8ми ногах).
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...



