Перейти к содержанию

Mini Stm32 V3.0


CMaxx22

Рекомендуемые сообщения

А ты почитай раздел даташита посвященный выводам порта, а именно констрйкцией входов подключенных к АЦП, скорей всего у них высокое входное сопротивление, тогда потенциал с соседнего вывода может запросто передаваться через поверхность платы на висящий в воздухе вывод. Так сказать емкостная связь, помимо резистивной за счет сопротивления текстолита и загрязнений находящихся на его поверхности! Кроме того близкий потенциал может изменить напряжение на выводе непредсказуемо.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

А ты почитай раздел даташита посвященный выводам порта, а именно констрйкцией входов подключенных к АЦП, скорей всего у них высокое входное сопротивление, тогда потенциал с соседнего вывода может запросто передаваться через поверхность платы на висящий в воздухе вывод. Так сказать емкостная связь, помимо резистивной за счет сопротивления текстолита и загрязнений находящихся на его поверхности! Кроме того близкий потенциал может изменить напряжение на выводе непредсказуемо.

А можно подтянуть слегка ногу к массе посредством кода? Гдето слыхал, что в МК СТМ32 внутри стоят подтягивающие резюки и их можно задействовать... Это поможет? И как это сделать?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Да просто прицепи к выводу внешний резистор. Например на 10МОм... хотя это лучше смотреть исходя из заадчи. Если тебе вывод не нужен то величина резистора не так важна - можно от 1ком до 1МОм к выводу порта и на общий. Какая разница какое напряжение там будет если он программно не задействован?

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да просто прицепи к выводу внешний резистор. Например на 10МОм... хотя это лучше смотреть исходя из заадчи. Если тебе вывод не нужен то величина резистора не так важна - можно от 1ком до 1МОм к выводу порта и на общий. Какая разница какое напряжение там будет если он программно не задействован?

Что значит программно не задействован?

Ссылка на комментарий
Поделиться на другие сайты

Короче, какой тебе резон измерять напряжение неподключенного вывода?

Если надо несколько входов - реализуй аналоговый мультиплексор, например что-то вроде 561КТ1 но есть одна особенность - ни один аналоговый коммутатор не работает вблизи уровней равных выводам питания, а это значит что коммутатор не станет работать на нулевом напряжении при однополярном питании. Для этого надо создать искуственную точку "нуля" находящуюся примерно на половине диапазона АЦП, измерять это напряжение перед измерением остальных входов и вычитать его с результатов.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Короче, какой тебе резон измерять напряжение неподключенного вывода?

Если надо несколько входов - реализуй аналоговый мультиплексор, например что-то вроде 561КТ1 но есть одна особенность - ни один аналоговый коммутатор не работает вблизи уровней равных выводам питания, а это значит что коммутатор не станет работать на нулевом напряжении при однополярном питании. Для этого надо создать искуственную точку "нуля" находящуюся примерно на половине диапазона АЦП, измерять это напряжение перед измерением остальных входов и вычитать его с результатов.

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

А вот насчёт резона измерять неподключенный вывод - да, резона нет. Как только посадил датчик MPX5700AP на ногу РВ1 то его показания перестали зависеть от РВ0, это хорошо. Но шумит по прежнему сильно. Проверил VDDA и VSSA, они подводятся не напрямую, а через фильтр на 6ти конденсаторах и 2ух резисторах. Да и устройство запитано от USB (а когда будет готово и вовсе от батареи будет) так что с опорным должно быть всё ок. Но тем не менее с подключенным датчиком давления MPX5700AP и приведением показаний АЦП к вольтам получаем значение при атмосферном давлении 0.838 - 0.845. Это недопустимый разброс. Подскажите какой командой усыпить проц перед началом замеров и как его потом пробудить? Или что ещё сделать? Датчик подключен без обвязки, просто выходом на вход PB1... Питание датчика 5в.

Ссылка на комментарий
Поделиться на другие сайты

Внимательнейшим образом читать документацию как на датчик так и на даташит от контроллера. В разделе описывающем работу АЦП должны быть приведены рекомендации по минимизации шумов в т.ч. и специальные команды. Впрочем, шумами можно пренебречь - просто построить программный цифровой НЧ-фильтр или попросту усреднять результаты измерений. Например 8-16-32 результата...

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

Шум еще можно побороть статистическими методами, но это в ущерб быстродействия естественно.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Путём повышения делителя шины АЦП, установки большего сэмплирования и вводом кода для усреднения результата из 50 значений был достигнут разброс в показаниях +-2 тысячных После подключения к батарейке могут пропасть и они, это хороший результат, так сойдёт.

Ещё одно, если датчик давления показывает цифру 1045 то для приведения этого к атмосферам чтобы получить 1.04ата (а именно такое давление в наших краях) надо просто тупо разделить число на 1000 и вывести?

Ещё интересно, что датчик рассчитан на 7атм, так что при одной атм он показывает 1045, значит при 7 будет казать >>7000 ? При том, что разрешение датчика 4095...и это максимум 3.3в, а датчик может выдать все 5. Значит надо через резистор подключать датчик? Или можно опорное на АЦП вместо 3.3в подать 5 вольт и будет мерить как надо?

Кстати по спящему режиму что? Говорят можно ещё улучшить если усыплять проц. Это нужно задать прерывание на выполнение SLEEP после начала преобразования и по окончании выполнять WAKE? Или можно проще как-то? Если проще нельзя, то подскажите каким именно кодом прописывать эти SLEEP и WAKE?

Теперь бы и про шрифты кто рассказал... Как загрузить в МК шрифты поболее, ато там только наборы из 8*16 и 8*12, а это мало...

Ссылка на комментарий
Поделиться на другие сайты

Читай документацию. АЦП измеряет напряжение и делит опорное на 4096, т.е. при напряжении равном опорному у него код будет 4096.

Насчет датчика, ЧИТАЙ ДАТАШИТ, какая у него зависимость напряжения от давления, я не уверен что зависимость линейная от нуля. А если и так, то тебе нужно сигнал масштабировать до подачи на АЦП. Делителем, операционником - чем угодно.

В качестве опорного можно взять 5В но... я уверен что ты не найдешь источника опорного напряжения с НЕОБХОДИМОЙ точностью, ТКН и низкой стоимостью. всякие там 78L05 - не годятся на роль ИОН при такой разрядности АЦП и требуемой точности от датчика.

Если бы ты изучал метрологию, ты бы знал что погрешности в данном случае складываются - погрешность датчика, погрешность измерения АЦП(линейность в частности) и погрешность ИОН. Самое слабое звено как правило именно ИОН, они часто имеют ТКН и их напряжение зависит от температуры да так что при работе в широком диапазоне температур измерения могут уплывать аж за океан. По этой причине встроенный ИОН для точных измерений не используют. Проведи простой эксперимент - подключи батарейку на вход АЦП и попробуй нагревать контроллер и/или ИОН если он там реализован отдельно. Учти что изменения могут произойти не сразу, пока он прогреется...

Шрифты - это вечная проблема. Если штатно не предусмотрено, то рисуй графикой самостоятельно а здесь уж нет никаких ограничений на формат в котором будут хранится шрифты - сам рисуешь и сам выводишь в удобной для тебя форме.

Как правило много символов не нужно - основные надписи могут быть банально частью фонового изображения(тут хоть в фотошопе рисуй загогулины!), а то что меняется это как правило только цифры и некоторые символы типа точки, тире и т.д.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Читай документацию. АЦП измеряет напряжение и делит опорное на 4096, т.е. при напряжении равном опорному у него код будет 4096.

Насчет датчика, ЧИТАЙ ДАТАШИТ, какая у него зависимость напряжения от давления, я не уверен что зависимость линейная от нуля. А если и так, то тебе нужно сигнал масштабировать до подачи на АЦП. Делителем, операционником - чем угодно.

В качестве опорного можно взять 5В но... я уверен что ты не найдешь источника опорного напряжения с НЕОБХОДИМОЙ точностью, ТКН и низкой стоимостью. всякие там 78L05 - не годятся на роль ИОН при такой разрядности АЦП и требуемой точности от датчика.

Если бы ты изучал метрологию, ты бы знал что погрешности в данном случае складываются - погрешность датчика, погрешность измерения АЦП(линейность в частности) и погрешность ИОН. Самое слабое звено как правило именно ИОН, они часто имеют ТКН и их напряжение зависит от температуры да так что при работе в широком диапазоне температур измерения могут уплывать аж за океан. По этой причине встроенный ИОН для точных измерений не используют. Проведи простой эксперимент - подключи батарейку на вход АЦП и попробуй нагревать контроллер и/или ИОН если он там реализован отдельно. Учти что изменения могут произойти не сразу, пока он прогреется...

Шрифты - это вечная проблема. Если штатно не предусмотрено, то рисуй графикой самостоятельно а здесь уж нет никаких ограничений на формат в котором будут хранится шрифты - сам рисуешь и сам выводишь в удобной для тебя форме.

Как правило много символов не нужно - основные надписи могут быть банально частью фонового изображения(тут хоть в фотошопе рисуй загогулины!), а то что меняется это как правило только цифры и некоторые символы типа точки, тире и т.д.

Насчёт картинок идея хорошая! Можно и цыфры картинками сделать и подгружать бмпшки ;) Только вот я не уверен хватит ли у МК памяти 128кб на все эти бмп...

А с шумами на STM32 я разобрался, самый длинноногий шумный вывод (после пляски с тактами и делителями/усреднителями он всё ещё играл на +-3 единицы, теперь на +-1. Нормальные входы теперь кажут чистые 12 бит. Это у меня получилось случайно, я просто вписал загадочную строку __WFI() перед калибровкой АЦП, думал что проц заснёт и всё так как __WFЕ() нигде не вводил, ан нет, быстродействие не снизилось, проц не заснул, а точность измерений выросла хорошо!

Ссылка на комментарий
Поделиться на другие сайты

Увеличил в 3 раза шрифты, в процедуре попиксельной прорисовки символа изменил место, где ставится точка так, что точек стало ставится не одна, а 9 (8 вокруг исходной) и увеличил расстояние между точками. Получился большой квадратичный шрифт :) Не айс и жрёт много ресурсов, но на фоне ничего это уже чтото...

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...
Гость Александр

Описал свой первый проект - мигание светодиодами на stm32.

1387881101_img_20131224_104344.jpg

Основная проблема-нехватка литературы и готовых примеров.

Ссылка на комментарий
Поделиться на другие сайты

  • 8 месяцев спустя...

Освежу тему. У кого есть какие нибудь готовые проекты-примеры под эту плату?

Интересует uCOS, управление LCD и usb.

Нарыл кучу проектов, но без исходников: http://wiccoo.com/stm32/newpage.html

Скачал с micrium исходники, но они все под аналогичную плату на другом проце, и видимо, разводка или контроллер дисплея не совпадает с платой stm32f103rbt6 - в общем программа виснет.

Ссылка на комментарий
Поделиться на другие сайты

  • 7 месяцев спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...