Guest Semen

Ацп дает одинаковый резцльтат

8 posts in this topic

Guest Semen   
Guest Semen

Пользуюсь платой stm32f103vet6. Пытался запустить ацп и мерить напряжение на PA0 через потенциометр (10к) напряжение. Опорное = 3,3 волтта.  При подачи на  PA0 любого напряжения результат счета = 2000 +/-. И на ноге PA0 всегда висит 1.6 вольт если она никуда не подключена. Режим работы ацп - регулярный.  Помоги пожалуйста.

Share this post


Link to post
Share on other sites
straw    86

Вы ваш кусок кода где инициализируете ацп лучше покажите. И пробовали с другого пина считывать?

Share this post


Link to post
Share on other sites
Guest Semen   
Guest Semen

void init_adc(void)
{
  //включаем тактирование порта А
  RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
  //включаем тактирование АЦП
  RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
  //настраиваем порт А0 на аналоговый режим
  GPIOA->CRL &= ~((0x3 << GPIO_CRL_CNF0_Pos)|(0x3 << GPIO_CRL_MODE0_Pos));      // сбрасываем настройки порта
  
  //настраиваем ацп
  //ADC1->SMPR2 &= (~(0x7 << ADC_SMPR2_SMP0_Pos));//выбираем скорость выборки АЦП
  ADC1->SMPR2 |= (0x7 << ADC_SMPR2_SMP0_Pos);
  ADC1->CR2 |= ADC_CR2_EXTSEL; //преобразование простое, которое включается от SWSTART
  ADC1->CR2 |= ADC_CR2_CONT;   // постоянное преобразование
  //ADC1->CR2 &= ~ADC_CR2_CONT;   // одиночное преобразование
  
  //ADC1->CR2 |= ADC_CR2_ADON;    //включаем АЦП
  //ADC1->SMPR2 |= (0x0 << ADC_SMPR2_SMP0_Pos);
  
  ADC1->SQR1 &= 0x00000000;
  ADC1->SQR2 &= 0x00000000;
  ADC1->SQR3 &= 0x00000000;      
  ADC1->SQR3 |= 0x00000001;     //используем только нулевой
  ADC1->CR2 |= ADC_CR2_ADON;    //включаем АЦП
  ADC1->CR2 |= ADC_CR2_CAL;             //калибровка
  while((!(ADC1->CR2) & ADC_CR2_CAL));     //ждем пока не закончится колибровка
  ADC1->CR2 |= (4 << ADC_CR2_SWSTART_Pos); //включаем преобразование регулярной группы
  
}
 

Share this post


Link to post
Share on other sites

Старт складской программы по Wi-Fi/ Bluetooth-чипам от Espressif

На склад КОМПЭЛ поступили чипы, модули и отладочные платы от компании Espressif Systems на базе ESP8266 и ESP32. Стоимость всех изделий данной линейки – в 2-3 раза ниже ближайших аналогов, чипы занимают минимальное место на плате, энергоэффективны и универсальны в применении

Подробнее...

BARS_    989
В 26.05.2019 в 00:22, Гость Semen сказал:

И на ноге PA0 всегда висит 1.6 вольт если она никуда не подключена.

Тут два варианта, либо она куда-то подтянута на плате, либо, что более вероятно, криво настроена. Настройка должна выглядеть примерно так:

GPIOA -> CRL &= ~ GPIO_CRL_MODE0;
GPIOA -> CRL &= ~ GPIO_CRL_CNF0;

 

А настройка АЦП примерно так:

RCC->CFGR    &= ~RCC_CFGR_ADCPRE;      
RCC->CFGR    |= RCC_CFGR_ADCPRE_DIV2;      

RCC->APB2ENR |=  RCC_APB2ENR_ADC1EN;  

ADC1->SQR3   |=  ADC_SQR3_SQ1_0; 
ADC1->CR2    |=  ADC_CR2_EXTSEL;       
ADC1->CR2    |=  ADC_CR2_EXTTRIG;      

ADC1->CR2    |=  ADC_CR2_ADON;        

ADC1->CR2 |= ADC_CR2_CAL;   
while (!(ADC1->CR2 & ADC_CR2_CAL));

ADC1->CR2    |=  ADC_CR2_SWSTART;     

 

И на форме ответа есть кнопка вставки кода...

Share this post


Link to post
Share on other sites

Вебинар Литиевые ХИТы FANSO или что нужно знать инженеру о батарейках»

20 июня компания Компэл приглашает всех желающих принять участие в вебинаре, посвященном литиевым батарейкам FANSO. На вебинаре будет рассказано о параметрах батареек, их зависимости от режима работы и эксплуатации. Будет дана информация о том, на какие параметры следует обращать внимание, выбирая литиевый ХИТ, и как избежать некоторых проблем.

Подробнее...

Guest Semen   
Guest Semen

мультиметр показывает 1,6 В. есть подозрение что делитель (красный круг) в работе находится, т.е. не отключается. Хотя настраиваю на аналоговый вход.

И кстати BARS_ твой код не проходит цикл while (!(ADC1->CR2 & ADC_CR2_CAL));, по каким то причинам бит калибровки не ставится.

Порты.png

Share this post


Link to post
Share on other sites
Guest Semen   
Guest Semen

BARS_ извини все ставится. Но проблема все таки осталась. если даю на порт А0 любое напряжение от 0 до 3,3 вольта, результат измерения ацп не меняется. все так же около 2000 +\-

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By IgnatiusF
      Не удается проинициализировать работу UART2 на скорость 19200 бод.
      Не вызывается прервание совсем, отсылаются постоянно нули на всех скоростях, если ставить System clock switch в 01 (HSE). При работе от RC генератора выдает уже просто не то, что нужно. 
      Кварц рабочий, и вообще все работает, при использовании библиотек HAL.
      SysTick выключил потому, что были подозрения на конлфикт приоритетов.
      Внизу представлена именно та часть кода программы, которая не работает, то есть сам UART.
      Проект скоро сдавать, а использовать готовую библиотеку HAL не хочется совсем, уже несколько дней парюсь и не могу найти проблему. Попробовал разобраться что пишет в регистры HAL, однако не смог т.к. не хватает знаний, значения регистров все такие же, кроме PLL (не используется) и RCC_CR1 (в HAL почему-то полностью равен 0). Проверял передачей данных по UART. Регистр BRR не удалось считать т.к. он только для записи. У меня записано так:
      USART1->BRR = 0x412;  //20MHz/16/19200 = 65,104.
      Где искать следует ошибку?
    • By small girl
      Привет, ребят! Кто возьмется написать на С протокол взаимодействия для сети микроконтроллеров. База: STM32 с bluetooth модулем HC-06,- slave. ПК - master?

      За вознаграждение
    • By COKPOWEHEU
      Захотелось сделать устройство с минимальным потреблением. Первоначально хотел попробовать на f103, но глянул в даташит и ужаснулся: в любом режиме сна у него потребление больше, чем у AVR-ок. Ну хорошо, в standby сравнимо, но этот режим мне не подходит. Поискал аналоги, вроде бы серия L1 больше подходит для автономных устройств. Да еще там есть вкусности вроде сенсорных кнопок и управления ЖКИ (не то чтобы необходимо, но поиграться стоит).
      Собрал макетную плату с высокочастотным (8 МГц) и низкочастотным (32768) кварцами, стабилизатором, кнопками и светодиодами (из кода понятно что где висит). Запускаю RTC с пробуждением раз в секунду (в финальном устройстве просыпаться будет еще чаще) и пытаюсь увести в режим stop. Но вместо потребления в единицы микроампер получаю пол-миллиампера. Либо я какую-то периферию не отключил (да я их и не включал вроде...), либо как-то неправильно увожу в сон (вроде все по даташиту...), либо лыжи не едут.
      Вот ключевые моменты кода (остальное во вложении):
      void enable_btn(){ RCC->AHBENR |= RCC_AHBENR_GPIOBEN; GPIO_config(JBTN); //настройка на вход с минимальной скоростью, без подтяжке } void disable_all(){ GPIOA->MODER = 0xFFFFFFFF; //all to analog in GPIOB->MODER = 0xFFFFFFFF; //all to analog in GPIOC->MODER = 0xFFFFFFFF; //all to analog in GPIOD->MODER = 0xFFFFFFFF; //all to analog in GPIOA->OSPEEDR = 0; //all to low speed (наверное, неважно) GPIOB->OSPEEDR = 0; //all to low speed (наверное, неважно) GPIOC->OSPEEDR = 0; //all to low speed (наверное, неважно) GPIOD->OSPEEDR = 0; //all to low speed (наверное, неважно) GPIOA->OTYPER &=~ 0x0000FFFF; GPIOB->OTYPER &=~ 0x0000FFFF; GPIOC->OTYPER &=~ 0x0000FFFF; GPIOD->OTYPER &=~ 0x0000FFFF; RCC->AHBENR &=~ (RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIODEN); clock_MS(); } void go_sleep(){ RCC->APB1ENR |= RCC_APB1ENR_PWREN;//вкл тактирование PWR SCB->SCR |= SCB_SCR_SLEEPDEEP; //для M3 разрешаем sleepdeep PWR->CR &=~PWR_CR_PDDS;//выбираем режим Power Down Deepsleep PWR->CR &=~PWR_CR_CWUF ; //очищаем wakeup flag PWR->CR |= PWR_CR_LPSDSR; //уменьшаем voltage regulator __WFI(); } ... //когда нужно заснуть disable_all(); go_sleep(); enable_btn(); Пробовал совсем не переключаться с MSI на HSE, это влияет только на рабочий режим, во сне как было 500 мкА так и остается.
      L1_sleep.rar
    • By IgnatiusF
      Появилась надобность в микроконтрллере STM32 для проектирования устройства. И вопрос вот в чем - в программировании этих стм-ов. Прочитал несколько статей по их программированию - что вообще для этого нужно. Выяснил, что в них (во всех?) есть вшитый bootloader, который может сам прошить МК.
      То есть для этого необходимо подключить какой-либо ...to UART преобразователь, а именно TX, RX, VCC и gnd к соответсвующим ногам микроконтроллера и все? Или надо еще куда-то подавать управляющий сигнал?
      Еще вопрос по поводу бутлоадера - если он занимает 8 КБ (или по разному?), то МК с 16 КБ памяти, по сути, будет иметь 8 КБ для программ?
      Datasheet я только начинаю читать и пока еще не нашел точной информации, так что за помощь буду очень признателен
  • Сообщения

    • Я поясню, почему нет смысла спорить по статье в ссылке: - Для того, чтобы написать статью в негативном свете, нужно  доходчиво обьяснить  причину быстрого износа тех или иных узлов или деталей и аргументированно обьяснить, почему это произошло при эксплуатации на газу и почему этого не происходит на бензине.  И с этими обьяснениями сложно спорить  потому, что факты предьявляются простые и всем понятные -  раньше присутствовала смазка за счет несгоревших смол, а теперь ее нет итд.  Но все эти износы и прогары на практике не происходят и ходят детали в полтора-два раза дольше.  Поэтому спор будет не о том, что клапан не смазывается, а о том, чтобы такой пострадавший от газа клапан был вообще в природе. И зазоры не уходят. На вазах нет компенсаторов и поэтому ответственные люди приезжают на регламентные работы строго по пробегу, а им говорят, чтобы еще столько же поездили, тогда и можно будет подрегулировать и масло поменять(полтора-двойной пробег). Свечи еще гораздо реже менялись. Про экономию бензина нет смысла говорить. Если кто спросит, а какие все-таки недостатки у газа, ведь без них ничего не бывает, то скажу, что это запах (для некоторых, мне пофиг), немногочисленность заправок  и невозможно с собой в канистре взять. Но у меня одним разьемом подключался второй баллон. Зимой его не снимал для загрузки задней оси.  В день проезжал 65-70 км на работу, заправки хватало на месяц.
    • Кому такая дурь известна? Если только в палате номер 6? АМ имеет плохую помехозащищённость, если в радиовещании  -  соглашусь. Но в остальном полнейшая ересь.    Осциллограммы где?? Что что то там "звучит" это никому не интересно. Где осциллограммы? И тупить не надо. Цитатами и вырезками решил стрелки перевести. ОСЦИЛЛОГРАММЫ ДАВАЙ!
    • Нормальные. Сюда пойдут. Почти похожи на мотороллы MJ15003 - понизкочастотнее, но крепкие. Всем кажется, что так лучше. Но это не факт. При однополярке не нужна защита АС от постоянки на выходе например. В этой схеме уже есть стабилизатор. А выходной каскад не так чуствивтелен к пульсациям.
    • Аллилуйя!
      Идите...... и не грешите больше!

      А мы, сирые , уж как нибудь.
    • Ничего такого в моем ЧМ-демодуляторе нет. АМ не пригодна для качественного звука-это всем известно. кроме некоторых отвязавшихся.. У меня уже все изготовлено и отлично работает. Седни слушал и сравнивал с SONY ST-SA5ES который с ФАПЧ, ну... на уровне оба. Записал семплов и еще запишу. Sony дает отличное разделение каналов и там хитро...ная микруха CXA1064 с пьезорезонатором. Запишу видео и звук подклею. А то на эту сони нормальных видосов нет. Не позорился бы со своими АМ-детекторами, когда космические корабли бороздят...эфир.    
    • Нахожусь в процессе изучения темы... Тяжело с самого начала "въехать". Видимо первая страница на самом деле не самая первая, уже на ней ссылаются на какую-то версию 4.42... Ну и видимо первые страниц 10 хорошо пропололи.. непонятные ссылки, какие-то скачки.. но неудивительно, сколько лет прошло.. Что понял из пока прочитанного: защита от обрыва - излишество. Событие шибко редкое, таких событий (приводящих к подъему напряжения) может быть много, от всех не перестрахуешься. Тем более обрыв вот прямо в процессе... А в остальных случаях по вольтметру сразу видно. Так что себе ее точно делать не буду. Далее. Светодиоды в управлении... Думаю это неправильно. Всего пара транзисторов добавляется и исчезают проблемы. Кроме риска выхода из строя самих светодиодов (и как следствие подъем напряжения) имеем разную их яркость (особенно если они разного цвета и даже марки). Так что для себя выбрал вариант без светодиодов в управлении. Далее. Термозащита.. Считаю ее не должно быть в составе платы управления. Есть много вариантов реализации, к тому же система управления кулером все равно обязательно будет, вот она-же будет заодно выполнять функцию  термозащиты. Это сервисная функция и нечего ей делать в составе управления. Но возможность ее подключения должна быть. В связи с наличием тумблера оперативного отключения (считаю это нужно) появилась мысль... Не силен я в этих вещах, поэтому попробую по деревенски изложить, авось поймете. Ввести в схему некий элемент (реле, тиристор, оптрон или та-же ТЛка) назовем его Х, который при внешнем сигнале будет отключать силовую часть (так как сейчас действовать будет добавленная кнопка отключения.) А вот включение этого элемента через развязывающие диоды может происходить от разных сигналов. Сейчас одна Тлка управляется термозащитой, другая - тумблером отключения, третья защитой и все они ведут к одному действию - отключению силовой части. так вот пускай это будет один элемент (Х) управляемый разными сигналами. Тогда систему термозащиты можно делать какую угодно (отдельно) и ее сигнал будет приходить на Х, отключая блок. К этому-же элементу Х через свой диод подключен тумблер отключения. На него-же может приходить сигнал от любого другого устройства (хоть от часов, хоть от датчика фазы луны) и все они через этот элемент будут приводить к одному действию - отключению. Да хоть фотодатчик подключить и блок будет включаться утром и отключаться вечером. Примерно так когда-то  мы проектировали системы аварийных блокировок для спецтехники, когда разные события приводят к одному результату. Или это глупости и не стоит усложнять схему? Это просто мысль вслух, лирическое отступление, не более. Возникающие вопросы пока записываю, если не найду ответов, буду спрашивать. Пока неясен момент с радиаторами для 7815 и транзистора опорного. Какие там токи? Нужен реальный радиатор или достаточно куска пластины. Почти на всех схемах написано "U3 - защита входа", но пока нигде не нашел пояснения защита чего, от чего и как работает. Видимо описание поэлементно когда-то было, но осталось где-то в предисловии, которое не попало сюда. И еще: если светодиоды не в управлении, а они питаются от генератора тока - то выходит нет возможности регулировать по отдельности яркость каждого? Даже если резистор последовательно поставить, то ток все равно будет тот-же. А если светодиоды разные?  Ну например один сверхяркий 3мм красный, а другой например простой 10 мм зеленый - естественно яркость будет разная). Или их нужно одинаковые ставить? А если один из них будет моргающий? Может в их питании нужен не генератор тока, а стаб напряжения? Тогда можно последовательно с каждым ставить свой резистор, тем самым изменяя яркость? В любом случае большое спасибо Владимиру, автору этой весьма удачной конструкции, который поддерживает тему уже много  много лет...
    • Я знаю, что такое правильный УНЧ, а вот вы и близко не знаете. Если УНЧ начинает вносить искажения в звук - это гамно, а не УНЧ, и место ему на помойке. Единственный случай, когда такой УНЧ имеет право на жизнь - это когда кривизна звука УНЧ компенсирует кривизну звука АС.   Ну да. Есть нормальные люди, которые слушают музыку, а есть не совсем нормальные, которые слушают искажения УНЧ. Лично у меня собран JLH, который имеет линейную АЧХ во всем диапазоне (смотрел лично практически от нуля и 20КГц). И он дает шикарный, собраный низ, высокую детализацию, хорошую сцену. И при этом всем имеет высокую верность воспроизведения, чего не скажешь ни о лампах, ни о германии. Еще раз повторюсь, УНЧ должен УСИЛИВАТЬ, а не звучать. "Звучание" УНЧ замашки аудиофилов, не более.