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

Технический семинар по STM32(Москва, проводил Компел)

дак расскажите мне про нечто большее касательно STM32, не дайте помереть дурнем.

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

Кроме того, вы похоже не знаете, чем отличается точность измерения от разрядности.

 

Ха-ха-ха... в какой манере начали, в такой и продолжаете. Вы, похоже, не можете без наездов.

Вот Вам малоногий чип: (девайс справа). post-5759-1244545537_thumb.jpg

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

 

Ув. Алекс, Вы можете продолжать полемику сколько угодно, только имеет ли это значение? Судя по Вашему посту, недопонимание работы одного из периферийных блоков Вы уже называете претензией. А правильно ли это? Может сначала стоит внимательнее прочитать документацию?:laughing:

Поделиться сообщением


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

Гость MALLOY2

Использую STM32 F101CBT6, 3 канала АЦП, плата разведена по требованиям разводки со смешанными питаниями, есмкости и фериты присутствуют там где надо, стабилизатор ULtra Low Noise (TPS79433DGNT) один для 2 питаний !!!! , Fs ~400 кГц, на плате отсутствуют мощные потребители, колебания АЦП на коротко замкнутом входе на расстоянии 0.5 см от куорпуса составляет 2 еденицы (НЕ РАЗРЯДА !!!!), также на вход подавался эталонный сигнал 1.217в (что то такое уже точно не помню) колебания теже , тобиш все соответствует мануалу :). Существует 4 варианта разводки схемы, разницы никакой. Единственное не получилось погонять при разных температурах.

Поделиться сообщением


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

Использую STM32 F101CBT6, 3 канала АЦП, плата разведена по требованиям разводки со смешанными питаниями, есмкости и фериты присутствуют там где надо, стабилизатор ULtra Low Noise (TPS79433DGNT) один для 2 питаний !!!! , Fs ~400 кГц, на плате отсутствуют мощные потребители, колебания АЦП на коротко замкнутом входе на расстоянии 0.5 см от куорпуса составляет 2 еденицы (НЕ РАЗРЯДА !!!!), также на вход подавался эталонный сигнал 1.217в (что то такое уже точно не помню) колебания теже , тобиш все соответствует мануалу :). Существует 4 варианта разводки схемы, разницы никакой. Единственное не получилось погонять при разных температурах.

 

Вы же сами сказали, что калибруете по опоре ~1,2В. Т.е используете при ее измерении ~10 разрядов АЦП, а не 12. Вот вам и цена отсутствия честного входа Vref - снижение эффективной разрядности до 10бит. Плюс к этому необходимость немедленного пересчета каждого измерения (умножение на коэффициент равный отношению Vdda/Vref) пока основное питание не уплыло + периодическое измерение Vref и вычисление поправочного коэффициента. Не бог весть какие затраты для Кортекса, однако существенное ограничение функциональности при использовании ПДП. Такое впечатление, что специально все задумано, чтобы для требовательных к точности и производительности применений использовали 100-ногие МК.

Поделиться сообщением


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

Гость MALLOY2
Вы же сами сказали, что калибруете по опоре ~1,2В.

я не говорил что калибрую, ~1,2 стоит понимать как не помню номинал выходного напряжения, но меня заверили что он выдает точность 4 знака после запятой. Тест проводился так АЦП постоянно молотил, для отсчетов вычеслялися мин. средние и макс значения. В итоге разница между мин и макс составила 2-3 единицы. После чего было измерено входное напряжение и напряжение Vdda и пересчитано на значение отсчета все соответствовало измеренному вольтметром. Линейность во всем диапазоне не проверял, но устройство с боевым алгоритмом прекрасно работает, была бы большая нелинейность алгоритм давал бы сбои.

 

Плюс к этому необходимость немедленного пересчета каждого измерения (умножение на коэффициент равный отношению Vdda/Vref) пока основное питание не уплыло

 

Это проблемы разработчика, уплыть может и Vref причем тут АЦП ?

 

Я не вижу проблем в том что Vdda и Vref соединены вместе, просто для этой схемы нужен источник опорного напряжения более мощный который сможет еще запитать и другой аналог.

Поделиться сообщением


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

я не говорил что калибрую, ~1,2 стоит понимать как не помню номинал выходного напряжения, но меня заверили что он выдает точность 4 знака после запятой. Тест проводился так АЦП постоянно молотил, для отсчетов вычеслялися мин. средние и макс значения. В итоге разница между мин и макс составила 2-3 единицы. После чего было измерено входное напряжение и напряжение Vdda и пересчитано на значение отсчета все соответствовало измеренному вольтметром. Линейность во всем диапазоне не проверял, но устройство с боевым алгоритмом прекрасно работает, была бы большая нелинейность алгоритм давал бы сбои.

Не в нелинейности дело, а в погрешности коэффициента. Даже при идеальной статической характеристике АЦП и идеальном эталоне 1,2В при Vdda = 3,3В ваш АЦП покажет 1489. С погрешностью дискретизации +/-0,5. При полном отсутствии остальных погрешностей погрешность измерения, например, напряжения 3,3В уже будет 0,5*4095/1489 = +/-1,37, а не 0,5 как при честной опоре 3,3В. При реальных 2-3 единицах на 1,2В получаете после пересчета вполне реальную погрешность измерения 6...9 единиц вблизи конца шкалы.

Cкажете, что измеренное значение эталона не 1489, а 1489,1 (после статистической обработки)? Так это еще доказать надо, что случайный процесс стационарный и вы имеете право на такие действия. А это весьма сложная метрологическая задача. К тому же в реальности процесс стационарен только в течение весьма малого интервала времени.

 

Это проблемы разработчика, уплыть может и Vref причем тут АЦП ?

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

 

Я не вижу проблем в том что Vdda и Vref соединены вместе, просто для этой схемы нужен источник опорного напряжения более мощный который сможет еще запитать и другой аналог.

Дело в том, что выходной ток и точность выходного напряжения величины взаимно конфликтующие. Если выходной ток большой, то такой девайс сильно греется, его выходное напряжение дрейфует вследствии изменения температуры. Из-за закона Ома чем больше ток, тем больше падение напряжения на выходном сопротивлении и т.п. Увы, таковы законы физики.

Плюс к этому уже упоминавшийся мною ранее нюанс: все ресеты, в т.ч. и BOD завязаны на Vdda, а не Vdd. И разница между Vdd и Vdda не может быть больше 0,3В. Т.е. единственный (как мне кажется) реальный выход сделать АЦП в малоногих чипах более-менее честным - это использовать шунтовую (типа TL431) опору 3В. Обычные (как правило более точные) опоры не годятся, т.к. гробят BOD.

 

И как резюме. Я совсем не спорю с вами. Действительно, в малоногих STM32 существует некое подобие АЦП, которым можно воспользоваться для своих целей. Но то, что там есть трудно назвать классическим АЦП в устоявшемся смысле. В классике соединять ноги питания и Vref категорически не рекомендуется. По вышеизложенным соображениям. STM же из маркетинговых соображений (чтобы покупали ее более дорогие многовыводные чипы) СПЕЦИАЛЬНО воткнула палку в колеса, чтобы ее вытаскивание не обошлось дешевле, чем купить 100-ногий чип.

Тем не менее это право фирмы так зарабатывать деньги. Но зачем же врать, что эта периферия называется классический АЦП, что она 12-разрядная и что имеет такое же быстродействие, как и в 100-ногих чипах?

Поделиться сообщением


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

вот материалы с диска к семинару

http://www.klen.org/Files/Seminar_COMPEL.7z

 

до кучи схема терровского махаона, который на семинаре приобрел.

http://www.klen.org/Files/Schematic_TE_STM32F103.7z

Поделиться сообщением


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

klen, у меня по твои ссылки не работают, открывается ерунда какая-то

Так сохранить объект как ...

filename.7z указать ручками, по умолчанию не известно расширение.

В браузер и выдается архив :laughing:

Поделиться сообщением


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

2 L83

klen, у меня по твои ссылки не работают, открывается ерунда какая-то

Нормально всё открывается.

Написали бы, чем Вы эти ссылки открываете. MSWord-ом? Не сваливайте на других своё неумение...

Download Master прекрасно сохранил файлы, опера 9.64 тоже - использовать надо "сохранить объект как" (см. совет mdmitry выше) .

А если кликнули по ссылке, и у Вас начало в окне открываться всякая абракадабра, дождитесь окончания загрузки этой абракадабры - и затем "Файл/сохранить как" и сожраните с нужным именем.

Для интереса откройте текстовым редактором этот файл, и Вы увидите

...открывается ерунда какая-то

Поделиться сообщением


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

А я в своих традициях сотворил модуль встраиваемый на stm32f103ret6 все по минимуму :)) воть в низу инфо по нему

STM32F103RET6.pdf

STM32F103RET6_PCB.pdf

post-8220-1245494645_thumb.jpg

Поделиться сообщением


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

По поводу ADC заметил ещё один косяк(по крайней мере я так думаю :) ). Камень STM32F103RET6, sysclk = 28Мц, adcclk=14Мц. Десяток каналов оцифровываются группой по схеме 1.5+12.5=14 cycles(получается 1Мц). В группе на трёх каналах трёхфазное сетевое напряжение размахом ~3000 ед. (из 12 бит), на следующий канал (после третьей фазы) идёт наводка(синусоида амплитудой до 50ед. , в местах перехода через ноль оборвана). При этом если немного изменить последовательность каналов, переместив "аффектный" канал дальше(в группе), то он приходит в норму. Похоже что мультиплексор, который меняет каналы на оцифровку, не успевает. Сейчас в последовательность каналов просто вставил пустышку(его значение не использую). Кто-то наблюдал подобное?

 

ps: проблема не в разводке: перепахали всю плату, все симптомы указывают в контроллер.

Поделиться сообщением


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

По поводу ADC заметил ещё один косяк(по крайней мере я так думаю :) ). Камень STM32F103RET6, sysclk = 28Мц, adcclk=14Мц. Десяток каналов оцифровываются группой по схеме 1.5+12.5=14 cycles(получается 1Мц). В группе на трёх каналах трёхфазное сетевое напряжение размахом ~3000 ед. (из 12 бит), на следующий канал (после третьей фазы) идёт наводка(синусоида амплитудой до 50ед. , в местах перехода через ноль оборвана). При этом если немного изменить последовательность каналов, переместив "аффектный" канал дальше(в группе), то он приходит в норму. Похоже что мультиплексор, который меняет каналы на оцифровку, не успевает. Сейчас в последовательность каналов просто вставил пустышку(его значение не использую).

А какие именно каналы используете и в какой последовательности? Нет ли среди них РА0? И нет ли по какому-то из каналов, пусть даже неиспользуемому (или вообще по какому-то из пинов МК) перегруза выше питания или ниже общего? Т.е. не текут ли токи через защитные диоды?

Использовал совсем недавно STM32 для оцифровки звука по 4 каналам, проникания из канала в канал не заметил, хотя детально именно в этом направлении не проверял.

Поделиться сообщением


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

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

 

static const uint_fast8_t chanels[COUNT2CONV][2] =
   {
    { ADC_Channel_1,  ADC_SampleTime_1Cycles5 },
    { ADC_Channel_2,  ADC_SampleTime_1Cycles5 },
    { ADC_Channel_3,  ADC_SampleTime_1Cycles5 },
    { ADC_Channel_12, ADC_SampleTime_1Cycles5 },
    { ADC_Channel_13, ADC_SampleTime_1Cycles5 },
    { ADC_Channel_0,  ADC_SampleTime_1Cycles5 },
    { ADC_Channel_16, ADC_SampleTime_71Cycles5 },
    { ADC_Channel_14, ADC_SampleTime_1Cycles5 },
    { ADC_Channel_11, ADC_SampleTime_1Cycles5 },
    { ADC_Channel_16, ADC_SampleTime_1Cycles5 }	
   };

Первые три канала это напряжение(размашистая синусоида). На следующих каналах пока постоянный уровень. Но вот на 12 то о чём я говорил. PA0 - находится ниже и с ним порядок(эрату читал, не мой случай). Увеличение sampletime уменьшает амплитуду наводки, а просто смещение 12-го канала вниз полностью избавляет от неё. В общем что бы не стояло на месте 12-го - оно портиться. Для наглядности приведу парочку графиков:

 

1) http://electronix.ru/forum/index.php?act=a...st&id=37881

 

2) http://electronix.ru/forum/index.php?act=a...st&id=37882

 

на первом рисунке наводка на 12-ый канал, для приведённой выше группы. А на втором рисунке график снятый со встроенного датчика температуры(ch_16) помещённого на место 12-го канала. Про датчик написано, что его нужно мерять более долго чем 1.5цикла, но в данном случае привёл просто чтобы продемонстрировать. Его "колбасит" уже значительно , хорошо виден характер наводки(обрывы).

Перегруза вроде тоже нет.

 

 

ps: шумно конечно, но после сглаживания получаю графики очень красивые, так что это меня пока не беспокоит.

post-42680-1257428326_thumb.png

post-42680-1257428346_thumb.png

Поделиться сообщением


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...