Программирование STM8
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4166546#p4166546"]kvn234, 1. Требуется калибровка из-за наличия ошибки смещения.
2. Нестабильность частоты тактового генератора
3. Слишком высокая частота семплирования
4. Недостаточная пауза для стабилизации перед началом конвертации
Пока хватит?[/uquote]
1. Причем тут ошибка смещения. Проблема в том , что показания скачут, а не имеют ошибку смещения.
2. Поменял контроллер - проблема осталась. Да и USART работает без сбоев (принимаю на комп).
3. Частота RC генератора 16МГц. Затем стоит делитель на 8. Итого 2МГц.
4. Посмотрите мое сообщение. Я привел функции инициализации и чтения по ним видно что частоты минимальные, а задержки максимальные. Я так же в цикл вносил задержки, но положительного эффекта не получил.
2. Нестабильность частоты тактового генератора
3. Слишком высокая частота семплирования
4. Недостаточная пауза для стабилизации перед началом конвертации
Пока хватит?[/uquote]
1. Причем тут ошибка смещения. Проблема в том , что показания скачут, а не имеют ошибку смещения.
2. Поменял контроллер - проблема осталась. Да и USART работает без сбоев (принимаю на комп).
3. Частота RC генератора 16МГц. Затем стоит делитель на 8. Итого 2МГц.
4. Посмотрите мое сообщение. Я привел функции инициализации и чтения по ним видно что частоты минимальные, а задержки максимальные. Я так же в цикл вносил задержки, но положительного эффекта не получил.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4166546#p4166546"]kvn234, 1. Требуется калибровка из-за наличия ошибки смещения.[/uquote]
Если Вы не путаете с STM32, хотелось бы посмотреть на функцию калибровки.
Если Вы не путаете с STM32, хотелось бы посмотреть на функцию калибровки.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, Я же явно с самого начала озвучил, какой документ почитать. В нем калибровка так же описана. И есть ссылки на исходники.
Re: Программирование STM8
[uquote="kvn234",url="/forum/viewtopic.php?p=4166557#p4166557"]2. Поменял контроллер - проблема осталась. Да и USART работает без сбоев (принимаю на комп).[/uquote]Попробуйте почитать температурный сенсор. Если с него показания получаются стабильные (как и с Vref), то возможно что-то не так с питанием или разводкой внешних каналов.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="jcxz",url="/forum/viewtopic.php?p=4167412#p4167412"][uquote="kvn234",url="/forum/viewtopic.php?p=4166557#p4166557"]2. Поменял контроллер - проблема осталась. Да и USART работает без сбоев (принимаю на комп).[/uquote]Попробуйте почитать температурный сенсор. Если с него показания получаются стабильные (как и с Vref), то возможно что-то не так с питанием[/uquote]
Но если показания Vref стабильные, разве это не говорит о стабильности питания?
Добавлено after 8 minutes 38 seconds:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167378#p4167378"]kvn234, Я же явно с самого начала озвучил, какой документ почитать. В нем калибровка так же описана. И есть ссылки на исходники.[/uquote]
Вы теоретик или у Вас есть исходники функций? В интернете много информации но не всегда знаешь где искать нужную. Прочитал данную тему 90% общих рассуждений и сообщений "кто круче".
Но если показания Vref стабильные, разве это не говорит о стабильности питания?
Добавлено after 8 minutes 38 seconds:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167378#p4167378"]kvn234, Я же явно с самого начала озвучил, какой документ почитать. В нем калибровка так же описана. И есть ссылки на исходники.[/uquote]
Вы теоретик или у Вас есть исходники функций? В интернете много информации но не всегда знаешь где искать нужную. Прочитал данную тему 90% общих рассуждений и сообщений "кто круче".
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, я, по Вашему, что-ли должен открывать AN3137 и исходники, на которые он ссылается, и копировать избранное оттуда на этот форум, только потому, что Вам самому лениво?
Пока Вы не поймете, что здесь никто Вам ничего не должен, пользы от общения на этом форуме не получите. Лично я считаю бессмысленным обсуждать ADC в STM8L с человеком, категорически отказывающимся прочитать документ производителя именно об ошибках преобразования ADC в STM8L и о способах их минимизации. Причем ссылки на все исходники этот документ содержит.
Пока Вы не поймете, что здесь никто Вам ничего не должен, пользы от общения на этом форуме не получите. Лично я считаю бессмысленным обсуждать ADC в STM8L с человеком, категорически отказывающимся прочитать документ производителя именно об ошибках преобразования ADC в STM8L и о способах их минимизации. Причем ссылки на все исходники этот документ содержит.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167561#p4167561"]kvn234, я, по Вашему, что-ли должен открывать AN3137 и исходники, на которые он ссылается, и копировать избранное оттуда на этот форум, только потому, что Вам самому лениво?[/uquote]
Можно дать ссылку на конкретную страницу.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167561#p4167561"]kvn234,Пока Вы не поймете, что здесь никто Вам ничего не должен, пользы от общения на этом форуме не получите.[/uquote]
Если бы Вы прочитали мое сообщение, а не торопились показать свою крутизну, Вы бы поняли, что вопрос был не о точности измерений, а об их нестабильности. И я привел исходники не очень большие.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167561#p4167561"]kvn234 Лично я считаю бессмысленным обсуждать ADC в STM8L с человеком, категорически отказывающимся прочитать документ производителя именно об ошибках преобразования ADC в STM8L и о способах их минимизации.[/uquote]
С чего Вы взяли, что я не читал данный документ?
Я Вас не просил отвечать. Я хочу получить ответы от человека который сталкивался с данной проблемой и нашел решение.
А такие теоретики засрали весь форум.
Можно дать ссылку на конкретную страницу.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167561#p4167561"]kvn234,Пока Вы не поймете, что здесь никто Вам ничего не должен, пользы от общения на этом форуме не получите.[/uquote]
Если бы Вы прочитали мое сообщение, а не торопились показать свою крутизну, Вы бы поняли, что вопрос был не о точности измерений, а об их нестабильности. И я привел исходники не очень большие.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167561#p4167561"]kvn234 Лично я считаю бессмысленным обсуждать ADC в STM8L с человеком, категорически отказывающимся прочитать документ производителя именно об ошибках преобразования ADC в STM8L и о способах их минимизации.[/uquote]
С чего Вы взяли, что я не читал данный документ?
Я Вас не просил отвечать. Я хочу получить ответы от человека который сталкивался с данной проблемой и нашел решение.
А такие теоретики засрали весь форум.
Последний раз редактировалось kvn234 Вт янв 25, 2022 11:28:46, всего редактировалось 1 раз.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, Вас в гугле забанили?
https://www.google.com/search?client=fi ... d&q=AN3137
Не открывается?
https://www.google.com/search?client=fi ... d&q=AN3137
Не открывается?
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167582#p4167582"]kvn234, Вас в гугле забанили?
https://www.google.com/search?client=fi ... d&q=AN3137
Не открывается?[/uquote]
Кроме ссылке на AN3137, ни какой конкретике.
Посмотрите мои исходники (если Вы разбираетесь в программировании STM8), что там не так.
https://www.google.com/search?client=fi ... d&q=AN3137
Не открывается?[/uquote]
Кроме ссылке на AN3137, ни какой конкретике.
Посмотрите мои исходники (если Вы разбираетесь в программировании STM8), что там не так.
Re: Программирование STM8
[uquote="kvn234",url="/forum/viewtopic.php?p=4167546#p4167546"]Но если показания Vref стабильные, разве это не говорит о стабильности питания?[/uquote]Нет не говорит. У вас один канал - стабилен, другие - нет. Т.е. - возможно проблема с коммутацией каналов в последовательности преобразований разных каналов.
Я предлагаю проверить случай с несколькими каналами, только внутренними (чтобы дополнительно отсечь проблемы с ногами).
Так же можно изменить порядок последовательности каналов; проверить стабильность при чтении только одного канала и т.д.
Добавлено after 5 minutes 33 seconds:
[uquote="kvn234",url="/forum/viewtopic.php?p=4167546#p4167546"]В интернете много информации но не всегда знаешь где искать нужную. Прочитал данную тему 90% общих рассуждений и сообщений "кто круче".[/uquote]Не надо копаться в той куче. Для программирования STM8L151 достаточно 2-х документов: "datasheet STM8L151" и "reference manual RM0031". Ну иногда ещё может errata.
Я предлагаю проверить случай с несколькими каналами, только внутренними (чтобы дополнительно отсечь проблемы с ногами).
Так же можно изменить порядок последовательности каналов; проверить стабильность при чтении только одного канала и т.д.
Добавлено after 5 minutes 33 seconds:
[uquote="kvn234",url="/forum/viewtopic.php?p=4167546#p4167546"]В интернете много информации но не всегда знаешь где искать нужную. Прочитал данную тему 90% общих рассуждений и сообщений "кто круче".[/uquote]Не надо копаться в той куче. Для программирования STM8L151 достаточно 2-х документов: "datasheet STM8L151" и "reference manual RM0031". Ну иногда ещё может errata.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="jcxz",url="/forum/viewtopic.php?p=4167643#p4167643"][uquote="kvn234",url="/forum/viewtopic.php?p=4167546#p4167546"]Но если показания Vref стабильные, разве это не говорит о стабильности питания?[/uquote]Нет не говорит. У вас один канал - стабилен, другие - нет. Т.е. - возможно проблема с коммутацией каналов в последовательности преобразований разных каналов.[/uquote]
reference manual RM0031 читал.
Как я понимаю.
У ADC нет отдельного питания и питание подается с ножки питания микроконтроллера(МК).
В МК имеется ИОН к которому можно подключить внутренний канал ADC_IN VREFINT (Vref).
При изготовлении МК в VREFINT_Factory_CONV byte ((uint8_t *)0x4910) записывается значение ADC при подключении ИОН при подачи питания на МК 3000мв +- допуск.
Соответственно измеряя Vref и зная VREFINT_Factory_CONV мы можем вычислить напряжение питания и если измерения Vref стабильны то можно сделать вывод о стабильности питания.
А в чем могут быть проблемы с MUX. Что внутренний, что внешние каналы заведены на один MUX. И я не случайно указал, что 4 внешних канал подключены к батарейке. Это чтобы не было разговора о необходимости подключения к источнику с малым выходным сопротивлением.
reference manual RM0031 читал.
Как я понимаю.
У ADC нет отдельного питания и питание подается с ножки питания микроконтроллера(МК).
В МК имеется ИОН к которому можно подключить внутренний канал ADC_IN VREFINT (Vref).
При изготовлении МК в VREFINT_Factory_CONV byte ((uint8_t *)0x4910) записывается значение ADC при подключении ИОН при подачи питания на МК 3000мв +- допуск.
Соответственно измеряя Vref и зная VREFINT_Factory_CONV мы можем вычислить напряжение питания и если измерения Vref стабильны то можно сделать вывод о стабильности питания.
А в чем могут быть проблемы с MUX. Что внутренний, что внешние каналы заведены на один MUX. И я не случайно указал, что 4 внешних канал подключены к батарейке. Это чтобы не было разговора о необходимости подключения к источнику с малым выходным сопротивлением.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, Да скачайте, наконец, исходники. предоставляемые производителем. Вот если с ними ситуацию не удастся исправить - тогда уже спрашивайте здесь.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167714#p4167714"]kvn234, Да скачайте, наконец, исходники. предоставляемые производителем. Вот если с ними ситуацию не удастся исправить - тогда уже спрашивайте здесь.[/uquote]
Скачал, что дальше? Что касается моего вопроса о не стабильности измерений?
Там столько наворочено, какое отношение к моему вопросу имеет LCD?
Если Вы разбираетесь в вопросах программирования STM8 укажите какой кусок исходника мне посмотреть.
Может Вы, чтобы заболтать вопрос, посоветуйте мне скачать и проанализировать исходники Windows или еще чего ни будь.
Я уже писал, какие у Вас замечания к моим функциям?
Скачал, что дальше? Что касается моего вопроса о не стабильности измерений?
Там столько наворочено, какое отношение к моему вопросу имеет LCD?
Если Вы разбираетесь в вопросах программирования STM8 укажите какой кусок исходника мне посмотреть.
Может Вы, чтобы заболтать вопрос, посоветуйте мне скачать и проанализировать исходники Windows или еще чего ни будь.
Я уже писал, какие у Вас замечания к моим функциям?
Re: Программирование STM8
[uquote="kvn234",url="/forum/viewtopic.php?p=4167735#p4167735"]Я уже писал, какие у Вас замечания к моим функциям?[/uquote]Функции написаны красиво - спору нет. Только толку от них столько же, что от исходников винды, на которые вы ссылаетесь.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="jcxz",url="/forum/viewtopic.php?p=4167739#p4167739"][uquote="kvn234",url="/forum/viewtopic.php?p=4167735#p4167735"]Я уже писал, какие у Вас замечания к моим функциям?[/uquote]Функции написаны красиво - спору нет. Только толку от них столько же, что от исходников винды, на которые вы ссылаетесь.[/uquote]
В чем красота? Насколько я разобрался в регистрах ADC это необходимые функции для инициализации и одиночного чтения.
Я их привел не для того чтобы кто то восхищался красотой, а привел критические замечания или предложения.
Возможно я что то упустил и показания скачут. Вначале хотелось получить более или менее стабильные показания, ну а затем применить обработку среднее, медианное ...
Мне бы хотелось получить ответ от человека практически применившего 12 разрядное ADC STM8L151, насколько стабильны показания и имеет ли смысл использовать данный ADC, а не упражняться в словоблудии и кто круче.
Прорабатываю вариант использования STM8L151 с 12разрядными ADC и DAC в универсальном зарядном устройстве.
Имеются два ЗУ одно с INA226 ATMega32 второе с ADS1115 ATMega 328 NANO и внешнее DAC.
Хочу попробовать упростить и сделать на STM8L151 с 12разрядными ADC и DAC или аналогичном STM32.
ЗЫ Зарядка универсальная. В памяти может хранить до 32 алгоритма и при необходимости загружать любые алгоритмы зарядки. Ведется запись зарядки напряжение, ток, температура в течении недели.
Процесс зарядки можно контролировать по WiFi (время, напряжение, токи, температура (в виде графиков и значений), емкость , положение коммутаций). Ну и т.д
В чем красота? Насколько я разобрался в регистрах ADC это необходимые функции для инициализации и одиночного чтения.
Я их привел не для того чтобы кто то восхищался красотой, а привел критические замечания или предложения.
Возможно я что то упустил и показания скачут. Вначале хотелось получить более или менее стабильные показания, ну а затем применить обработку среднее, медианное ...
Мне бы хотелось получить ответ от человека практически применившего 12 разрядное ADC STM8L151, насколько стабильны показания и имеет ли смысл использовать данный ADC, а не упражняться в словоблудии и кто круче.
Прорабатываю вариант использования STM8L151 с 12разрядными ADC и DAC в универсальном зарядном устройстве.
Имеются два ЗУ одно с INA226 ATMega32 второе с ADS1115 ATMega 328 NANO и внешнее DAC.
Хочу попробовать упростить и сделать на STM8L151 с 12разрядными ADC и DAC или аналогичном STM32.
ЗЫ Зарядка универсальная. В памяти может хранить до 32 алгоритма и при необходимости загружать любые алгоритмы зарядки. Ведется запись зарядки напряжение, ток, температура в течении недели.
Процесс зарядки можно контролировать по WiFi (время, напряжение, токи, температура (в виде графиков и значений), емкость , положение коммутаций). Ну и т.д
Re: Программирование STM8
[uquote="kvn234",url="/forum/viewtopic.php?p=4167783#p4167783"]Я их привел не для того чтобы кто то восхищался красотой, а привел критические замечания или предложения.[/uquote]Какие "практические замечания" вы ожидаете услышать, не приведя код инициализации? Здесь нет ясновидящих, кто угадает что там внутри ваших красивых функций.
[uquote="kvn234",url="/forum/viewtopic.php?p=4167783#p4167783"]Мне бы хотелось получить ответ от человека практически применившего 12 разрядное ADC STM8L151, насколько стабильны показания и имеет ли смысл использовать данный ADC, а не упражняться в словоблудии и кто круче.[/uquote]Словоблудием занимаетесь здесь вы, написав кучу сообщений, но так и не приведя инициализации АЦП.
С STM8L151 не вы первый занимаетесь. У меня проект на нём уже больше года вполне себе нормально работает. Правда там используются только 2 канала АЦП: Vrefint и термодатчик. Проблем не замечал - показания стабильны. Более того - показания термодатчика отличаются всего на пару десятых градуса от другого термометра, находящегося в этом же помещении.
Но опять-же - советы посмотреть работу термодатчика совместно с Vrefint, вы проигнорили. И кто после этого словоблудит?
[uquote="kvn234",url="/forum/viewtopic.php?p=4167783#p4167783"]Мне бы хотелось получить ответ от человека практически применившего 12 разрядное ADC STM8L151, насколько стабильны показания и имеет ли смысл использовать данный ADC, а не упражняться в словоблудии и кто круче.[/uquote]Словоблудием занимаетесь здесь вы, написав кучу сообщений, но так и не приведя инициализации АЦП.
С STM8L151 не вы первый занимаетесь. У меня проект на нём уже больше года вполне себе нормально работает. Правда там используются только 2 канала АЦП: Vrefint и термодатчик. Проблем не замечал - показания стабильны. Более того - показания термодатчика отличаются всего на пару десятых градуса от другого термометра, находящегося в этом же помещении.
Но опять-же - советы посмотреть работу термодатчика совместно с Vrefint, вы проигнорили. И кто после этого словоблудит?
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="jcxz",url="/forum/viewtopic.php?p=4167879#p4167879"][uquote="kvn234",url="/forum/viewtopic.php?p=4167783#p4167783"]Я их привел не для того чтобы кто то восхищался красотой, а привел критические замечания или предложения.[/uquote]Какие "практические замечания" вы ожидаете услышать, не приведя код инициализации? Здесь нет ясновидящих, кто угадает что там внутри ваших красивых функций.[/uquote]
Вы не ясновидящей, а вообще не видящей.
Под spoiler находилась функция init_adc. Вы не видите, что это инициализация ADC.
void init_adc(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC1->CR1 |= ADC_CR1_ADON;
}
Если Вы работали с ADC STM8L Вы должны были это понять или нужно было комментировать каждую строчку.
Вы не ясновидящей, а вообще не видящей.
Под spoiler находилась функция init_adc. Вы не видите, что это инициализация ADC.
void init_adc(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC1->CR1 |= ADC_CR1_ADON;
}
Если Вы работали с ADC STM8L Вы должны были это понять или нужно было комментировать каждую строчку.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: Программирование STM8
kvn234, комментировать не нужно, а, для примера, указать включен ли триггер Шмитта на используемом входе или явно его выключить в коде стоило бы.
-
kvn234
- Потрогал лапой паяльник
- Сообщения: 323
- Зарегистрирован: Вс апр 17, 2011 09:51:26
- Откуда: Тула
Re: Программирование STM8
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=4167996#p4167996"]kvn234, комментировать не нужно, а, для примера, указать включен ли триггер Шмитта на используемом входе или явно его выключить в коде стоило бы.[/uquote]
Триггер Шмитта выключался в функции чтения. Но сейчас я выключение триггера Шмитта перенес в инициализацию.
Но это как я и предполагал не повлияло на стабильность измерений.
void init_adc(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_0, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_1, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_2, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_4, DISABLE);
ADC_VrefintCmd(ENABLE);
ADC1->CR1 |= ADC_CR1_ADON;
}
uint16_t GetChannel(ADC_Channel_TypeDef Channel)
{
uint32_t res;
ADC_ChannelCmd(ADC1, Channel, ENABLE);
ADC1->CR1 |= ADC_CR1_START;
while (!(ADC1->SR & ADC_FLAG_EOC));
res = ADC_GetConversionValue(ADC1);
ADC_ChannelCmd(ADC1, Channel, DISABLE);
return (uint16_t)res;
}
Когда мы наконец разобрались где находились функции, не могли ли Вы высказать конкретные замечания по функциям.
Что нужно учесть в инициализации ADC или чтении?
Триггер Шмитта выключался в функции чтения. Но сейчас я выключение триггера Шмитта перенес в инициализацию.
Но это как я и предполагал не повлияло на стабильность измерений.
void init_adc(void)
{
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
ADC_DeInit(ADC1);
Vrefint = *Factory_VREFINT;
Vrefint += 0x600;
ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit,ADC_Prescaler_2);
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_384Cycles);
ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels, ADC_SamplingTime_384Cycles);
/* Disable the specified ADC DMA request */
ADC1->SQR[0] |= ADC_SQR1_DMAOFF;
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_0, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_1, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_2, DISABLE);
ADC_SchmittTriggerConfig(ADC1, ADC_Channel_4, DISABLE);
ADC_VrefintCmd(ENABLE);
ADC1->CR1 |= ADC_CR1_ADON;
}
uint16_t GetChannel(ADC_Channel_TypeDef Channel)
{
uint32_t res;
ADC_ChannelCmd(ADC1, Channel, ENABLE);
ADC1->CR1 |= ADC_CR1_START;
while (!(ADC1->SR & ADC_FLAG_EOC));
res = ADC_GetConversionValue(ADC1);
ADC_ChannelCmd(ADC1, Channel, DISABLE);
return (uint16_t)res;
}
Когда мы наконец разобрались где находились функции, не могли ли Вы высказать конкретные замечания по функциям.
Что нужно учесть в инициализации ADC или чтении?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Программирование STM8
Я дико извиняюсь: а когда ацп измеряет Vref, что служит опорным? Я как бы предполагаю, что измерение опорного относительно самого себя всегда будет идеальным по определению... Или нет?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!