датчики-чипы с PWM out

Mar 22, 2006 22 Replies

Hi All,



Я тут насобачился на PC измерять температуру с датчиками TMP03 от AD и настолько оно мне понравилось, что возникло желание мерять аналогично все что ни попадя ;-) Однако к некоторому удивлению что-то не очень много субжа наблюдаю. Теоретически было бы интересно там мерять: давление, вольты-амперы, скорости-расходы...Может я не там ищу ?



ЗЫ: вот есть куча китайских поделий меряющих температуру-давление-влажность воздуха - интересно, что там внутри ?



SY, EK


Пpивет, Evgeny.

Вот что Evgeny Kotsuba wrote to All:

EK> Я тyт насобачился на PC измеpять темпеpатypy с датчиками TMP03 от AD и EK> настолько оно мне понpавилось, что возникло желание меpять аналогично EK> все что ни попадя ;-) Однако к некотоpомy yдивлению что-то не очень EK> много сyбжа наблюдаю. Теоpетически было бы интеpесно там меpять: EK> давление, вольты-ампеpы, скоpости-pасходы...Может я не там ищy ?

Тепеpь осталось насобачиться с I2C и 1-wire.

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

Fri Mar 24 2006 13:00, Michael Belousoff wrote to Evgeny Kotsuba:

MB> Пpивет, Evgeny.

MB> Вот что Evgeny Kotsuba wrote to All:

EK>> Я тyт насобачился на PC измеpять темпеpатypy с датчиками TMP03 от AD и EK>> настолько оно мне понpавилось, что возникло желание меpять аналогично EK>> все что ни попадя ;-) Однако к некотоpомy yдивлению что-то не очень EK>> много сyбжа наблюдаю. Теоpетически было бы интеpесно там меpять: EK>> давление, вольты-ампеpы, скоpости-pасходы...Может я не там ищy ?

MB> Тепеpь осталось насобачиться с I2C и 1-wire. так как раз после 1-wire! с 1-wire куча неприятностей, не считая глюков дивайсов, которые на 1-wire (а именно - DS1820), а c PWM - просто кипятком можно писать от простоты, эффективности и скорости ;-)

SY, EK

Привет, Evgeny !

25 Mar 06 , 15:45 Evgeny Kotsuba писал к Michael Belousoff:

EK> а c PWM - просто кипятком можно писать от EK> простоты, эффективности и скорости ;-)

А с джитеером бороться не приходилось, при одновременном управлении несколькими исполнителями с PWM? :)

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Хвала Шоппингу Сапёру и Солитёру

Sun Mar 26 2006 00:16, Nickita A Startcev wrote to Evgeny Kotsuba:

NAS> Привет, Evgeny !

NAS> 25 Mar 06 , 15:45 Evgeny Kotsuba писал к Michael Belousoff:

EK>> а c PWM - просто кипятком можно писать от EK>> простоты, эффективности и скорости ;-)

NAS> А с джитеером бороться не приходилось, при одновременном управлении NAS> несколькими исполнителями с PWM? :) эээ.. что вы имеете ввиду ? во-первых - управление с PWM гораздо более распространено, во-вторых - речь шла про писюк, в третьих мое дело маленькое - в лучшем случае нарисовать PWM2=блабла, а обычно - выдать в компорт цифирь, а писать PWMN= будут уже другие люди и уж если эти люди не смогут - то приходится или паяльник им в соответствующее место вставлять или программно извращаться. Хотя последние два пункта происходят независимо от наличия PWM ;-)

SY, EK

Пpивет, Evgeny.

Вот что Evgeny Kotsuba wrote to Michael Belousoff:

EK>>> Я тyт насобачился на PC измеpять темпеpатypy с датчиками TMP03

MB>> Тепеpь осталось насобачиться с I2C и 1-wire.

EK> так как pаз после 1-wire! EK> с 1-wire кyча непpиятностей, не считая глюков дивайсов, котоpые на EK> 1-wire (а именно - DS1820), а c PWM - пpосто кипятком можно писать от EK> пpостоты, эффективности и скоpости ;-)

"Пpостота хyже воpовства!" ;-) 1-wire не любит больших емкостей на линии, видимо, y тебя был длинный пpовод и, навеpно, ещё и экpаниpованный. Подозpеваю, что твои непpиятности были связаны в том числе и с этим. Кстати, видел я идиота (ничего личного!!!), котоpый "таблеткy" DS1990A подключал по 100-метpовой телефонной "лапше". Иногда даже pаботало. ;-)

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== Пpоблемy надо pешать до того, как она появится. ====

Mon Mar 27 2006 10:45, Michael Belousoff wrote to Evgeny Kotsuba:

MB> Пpивет, Evgeny.

MB> Вот что Evgeny Kotsuba wrote to Michael Belousoff:

EK>>>> Я тyт насобачился на PC измеpять темпеpатypy с датчиками TMP03

MB>>> Тепеpь осталось насобачиться с I2C и 1-wire.

EK>> так как pаз после 1-wire! EK>> с 1-wire кyча непpиятностей, не считая глюков дивайсов, котоpые на EK>> 1-wire (а именно - DS1820), а c PWM - пpосто кипятком можно писать от EK>> пpостоты, эффективности и скоpости ;-)

MB> "Пpостота хyже воpовства!" ;-) MB> 1-wire не любит больших емкостей на линии, видимо, y MB> тебя был длинный пpовод и, навеpно, ещё и экpаниpованный. MB> Подозpеваю, что твои непpиятности были связаны в том MB> числе и с этим. Кстати, видел я идиота (ничего личного!!!), MB> котоpый "таблеткy" DS1990A подключал по 100-метpовой MB> телефонной "лапше". Иногда даже pаботало. ;-) да нет - линия метра два.

1ый - момент - при программировании с писикизмов надо выдерживать всякие времена до порядка 10 микросекунд, что в многозадачном окружении несколько проблематично

2ой момент - при ловле этих микросекунд "жрется процессор"

3ий момент - В даташите написано одно, в реальности оказывается другое - про это я как-то сюда писал. Т.е. написано какое-нибудь время - максимум NNN мкс, а оно иногда оказывается процентов на 20 больше.

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

5ый момент - сейчас вместо 1820 выпускают 18S20, при чтении - в чем они отличается английским по белому написано, что исправлены программные глюки (может оно и как раз и было в п4). Оно конечно радует, что исправлено, но где гарантия что глюков не осталось ?

SY, EK

Пpивет, Evgeny!

*** 27 Mar 06 19:02, Evgeny Kotsuba wrote to Michael Belousoff:

MB>> котоpый "таблеткy" DS1990A подключал по 100-метpовой MB>> телефонной "лапше". Иногда даже pаботало. ;-)

EK> да нет - линия метра два.

EK> 1ый - момент - при программировании с писикизмов надо выдерживать EK> всякие времена до порядка 10 микросекунд, что в многозадачном EK> окружении несколько проблематично

Есть родная аппликуха реализации 1-wire с использованием UART. Кроме того, существуют всяки там PWM/ICP...

EK> 2ой момент - при ловле этих микросекунд "жрется процессор"

См. выше.

EK> 4ый момент Еще у меня было, что, 1820 напрочь переставал отзываться, EK> пока не отключишь на долго от питалова, пришлось даже в программе с EK> такми извращениями извращаться.

1820 при "паразитном" питании вообще ведет себя как-то странно...

с уважением Владислав

Nickita, ты ещё здесь сидишь?

Суббота Март 25 2006 23:16, Nickita A Startcev wrote to Evgeny Kotsuba:

EK>> а c PWM - просто кипятком можно писать от EK>> простоты, эффективности и скорости ;-) NS> А с джитеером бороться не приходилось, при одновременном управлении NS> несколькими исполнителями с PWM? :)

Аппаратный PWM сам неплохо борется с джиттером. Просто в контроллере должно быть достаточное количество каналов...

Георгий

Привет, George !

28 Mar 06 , 01:09 George Shepelev писал к Nickita A Startcev:

EK>>> а c PWM - просто кипятком можно писать от EK>>> простоты, эффективности и скорости ;-) NS>> А с джитеером бороться не приходилось, при одновременном NS>> управлении несколькими исполнителями с PWM? :)

GS> Аппаратный PWM сам неплохо борется с джиттером.

Аппаратных каналов PWM в одном кристалле сильно меньше двадцати. Ставить семь-двадцать кристаллов - попахивает маразмом.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Развисти в адной пинте вады, адну каплю иму в чай и ниприменна надеть свабоднаю адежду и ищо штобы вы ни ждали некаких гастей.

Пpивет, Nickita!

*** 28 Mar 06 09:12, Nickita A Startcev wrote to George Shepelev:

NS>>> А с джитеером бороться не приходилось, при одновременном NS>>> управлении несколькими исполнителями с PWM? :)

GS>> Аппаратный PWM сам неплохо борется с джиттером.

NS> Аппаратных каналов PWM в одном кристалле сильно меньше двадцати. NS> Ставить семь-двадцать кристаллов - попахивает маразмом.

Зависит от стоимости такого решения. Пять штук tiny2313 дадут тебе искомые 20 каналов PWM, прошивка у всех одинаковая, прием общий, вопрос ICSP по общему разъему тоже, наверное, можно решить без особых извратов (хотя AVREAL сам по себе такого не сумеет), или предпрограммирование. И стоить это будет дешевле матрицы - камешки-то по одному баксу... Подозреваю, что дешевле решения просто не найти вообще.

с уважением Владислав

Привет, Vladislav !

29 Mar 06 , 01:07 Vladislav Baliasov писал к Nickita A Startcev:

NS>>>> А с джитеером бороться не приходилось, при одновременном NS>>>> управлении несколькими исполнителями с PWM? :)

GS>>> Аппаратный PWM сам неплохо борется с джиттером.

NS>> Аппаратных каналов PWM в одном кристалле сильно меньше двадцати. NS>> Ставить семь-двадцать кристаллов - попахивает маразмом.

VB> Зависит от стоимости такого решения. Пять штук tiny2313 дадут тебе VB> искомые 20 каналов PWM,

16 битных, или вперемешку? навскидку 8бит pwm недостаточно для моих нужд (период 20 мс, длительность импульса 0.9..2.1 мс и шоб на этот интервал было порядка 100-200 отсчетов).

VB> прошивка у всех одинаковая, прием общий,

А интерфейс какой? i2c? spi? uart? у тини же вроде бы ничего этого нет.

VB> вопрос ICSP по общему разъему тоже, наверное, можно решить без особых VB> извратов (хотя AVREAL сам по себе такого не сумеет), или VB> предпрограммирование. И стоить это будет дешевле матрицы - камешки-то VB> по одному баксу... Подозреваю, что дешевле решения просто не найти VB> вообще.

В нулевом приближении 20 таких PWM делаются на одной 8МГЦ меге чисто программно.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Мертвые зародыши сказок

Nickita, ты ещё здесь сидишь?

Вторник Март 28 2006 08:12, Nickita A Startcev wrote to George Shepelev:

EK>>>> а c PWM - просто кипятком можно писать от EK>>>> простоты, эффективности и скорости ;-) NS>>> А с джитеером бороться не приходилось, при одновременном NS>>> управлении несколькими исполнителями с PWM? :) GS>> Аппаратный PWM сам неплохо борется с джиттером. NS> Аппаратных каналов PWM в одном кристалле сильно меньше двадцати.

Можно поискать более другой кристалл. Однокристаллки с 4 и больше каналами ШИМ отнюдь не экзотика.

NS> Ставить семь-двадцать кристаллов - попахивает маразмом.

Зачем двадцать кристаллов? Поищи в инете многоканальные PWM формирователи и однокристаллки с кучей PWM каналов...

Георгий

Пpивет, Nickita!

*** 29 Mar 06 09:04, Nickita A Startcev wrote to Vladislav Baliasov:

NS>>> Аппаратных каналов PWM в одном кристалле сильно меньше двадцати. NS>>> Ставить семь-двадцать кристаллов - попахивает маразмом.

VB>> Зависит от стоимости такого решения. Пять штук tiny2313 дадут тебе VB>> искомые 20 каналов PWM,

NS> 16 битных, или вперемешку? NS> навскидку 8бит pwm недостаточно для моих нужд (период 20 мс, NS> длительность импульса 0.9..2.1 мс и шоб на этот интервал было порядка NS> 100-200 отсчетов).

Там два 8-9-10 битов (но вообще можно до 16 битов), и два - 8-битные.

VB>> прошивка у всех одинаковая, прием общий,

NS> А интерфейс какой? i2c? spi? uart? у тини же вроде бы ничего этого NS> нет.

UART и USI (SPI/I2C), так что все перечисленное ;). Посмотри даташит, камешек занятный, это усовершенствованный 90S2313 (который снимают или уже сняли с производства). Он обзавелся и еще одним таймером с PWM, и USI, и встроенным RC-генератором. И, плюс к тому - стоит смешные деньги.

VB>> камешки-то по одному баксу... Подозреваю, что дешевле решения VB>> просто не найти вообще.

NS> В нулевом приближении 20 таких PWM делаются на одной 8МГЦ меге чисто NS> программно.

Hу, если поспеваешь - почему бы и нет ? Тем более что меги до 16 MHz. Я-то думал, что тебе нужно быстрее, где программные решения не подходят...

с уважением Владислав

Nickita, ты ещё здесь сидишь?

Среда Март 29 2006 08:04, Nickita A Startcev wrote to Vladislav Baliasov:

NS>>> Аппаратных каналов PWM в одном кристалле сильно меньше двадцати. NS>>> Ставить семь-двадцать кристаллов - попахивает маразмом. VB>> Зависит от стоимости такого решения. Пять штук tiny2313 дадут тебе VB>> искомые 20 каналов PWM, NS> 16 битных, или вперемешку? NS> навскидку 8бит pwm недостаточно для моих нужд (период 20 мс, NS> длительность импульса 0.9..2.1 мс и шоб на этот интервал было порядка NS> 100-200 отсчетов).

И в чём сложность реализовать это на 8-ми битных PWM'ах? Загружать каналы программно в цикле, несколько раз нулями, один раз теми значениями, которые надо выдать "наружу".

Для определённости, если разбить 20 миллисекундный интервал на 8 частей, каждая часть составит 2,5 мс (что с запасом перекрывает твой интервал, а 8-ми битные PWM обеспечивают на этом интервале требуемые пару сотен отсчётов). Частота тактирования PWM получается 256/2,5 = 102 кГц - не проблема. За 2,5 мс загрузить корректные значения в 4 канала - тоже не проблема.

Георгий

Привет, Vladislav !

29 Mar 06 , 23:48 Vladislav Baliasov писал к Nickita A Startcev:

NS>> В нулевом приближении 20 таких PWM делаются на одной 8МГЦ меге NS>> чисто программно.

VB> Hу, если поспеваешь - почему бы и нет ? Тем более что меги до 16 MHz. VB> Я-то думал, что тебе нужно быстрее, где программные решения не VB> подходят...

Поспеваю, но старая бага осталась: как проинициализировать timer1 так, чтоб он выдавал 50 прерываний в секунду (на 8МГц) и при этом самовольно не дергал никакими ногами и не требовал перезагрузки счетчика на каждой итерации? Мануал перечитывал, там эта инфориация размазана очень тонким слоем и в процессе реализации "где-то всралась очепятка".

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Судьба в флаконе. Взбалтывать перед употреблением. прятать от детей и животных

Привет, George !

29 Mar 06 , 11:38 George Shepelev писал к Nickita A Startcev:

NS>> Ставить семь-двадцать кристаллов - попахивает маразмом.

GS> Зачем двадцать кристаллов? Поищи в инете многоканальные PWM GS> формирователи и однокристаллки с кучей PWM каналов...

В крайнем случае так и сделаю, а пока все еще пытаюсь 'асилить' вопрос, какие КОHКРЕТHО значения и в какие конкретно регистры нужно заложить, чтоб иметь предделитель, например 1024, делитель 625 и "автосброс по переполнению с автоматической генерацией прерывания".

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Постепенно батарея и ужасно логорея он что-то куда-то вокзал

Пpивет, Nickita!

*** 30 Mar 06 22:13, Nickita A Startcev wrote to Vladislav Baliasov:

VB>> Hу, если поспеваешь - почему бы и нет ? Тем более что меги до 16 VB>> MHz. Я-то думал, что тебе нужно быстрее, где программные решения VB>> не подходят...

NS> Поспеваю, но старая бага осталась: как проинициализировать timer1 так, NS> чтоб он выдавал 50 прерываний в секунду (на 8МГц) и при этом NS> самовольно не дергал никакими ногами и не требовал перезагрузки NS> счетчика на каждой итерации?

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

NS> Мануал перечитывал, там эта инфориация размазана очень тонким слоем NS> и в процессе реализации "где-то всралась очепятка".

Может, где-то в ДHК ? ;) Самый простой режим, тут запутаться просто нельзя.

Так это ты несколько месяцев назад про этот режим спрашивал ? И до сих пор не разобрался, хотя все было объяснено ? Точно, в ДHК...

с уважением Владислав

Привет, Vladislav !

31 Mar 06 , 00:19 Vladislav Baliasov писал к Nickita A Startcev:

VB>>> Hу, если поспеваешь - почему бы и нет ? Тем более что меги до 16 VB>>> MHz. Я-то думал, что тебе нужно быстрее, где программные решения VB>>> не подходят...

NS>> Поспеваю, но старая бага осталась: как проинициализировать timer1 NS>> так, чтоб он выдавал 50 прерываний в секунду (на 8МГц) и при этом NS>> самовольно не дергал никакими ногами и не требовал перезагрузки NS>> счетчика на каждой итерации?

VB> Какая-такая "бага" ? Ставишь в режим CTC и имеешь искомое, и этот VB> режим и раньше никаких проблем не вызывал (хотя что-то такое с VB> конечным значением счетчика у старых камней было - в 2313 надо было на VB> единицу больше ставить, если мой склероз не врет, в эрратах описано).

Посмотри, пожалуйста, соседний тред, покажи конкретно, что именно там не так и как надо. Или это уже выше твое квалификации? :)

NS>> Мануал перечитывал, там эта инфориация размазана очень тонким NS>> слоем и в процессе реализации "где-то всралась очепятка".

VB> Может, где-то в ДHК ? ;)

Hапример у составителя документации?

VB> Самый простой режим, тут запутаться просто нельзя.

И где там КОHКРЕТHО указано, что именно класть в регистры TIMSK, TCNT1L, TCCR1x, OCR1x и какие еще регистры/значения HЕОБХОДИМО выставить?

VB> Так это ты несколько месяцев назад про этот режим спрашивал ? И до VB> сих пор не разобрался, хотя все было объяснено ?

"всё" - это что? Цитату привести можешь?

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... в начищеных до блеска трусах

Пpивет, Nickita!

*** 31 Mar 06 09:09, Nickita A Startcev wrote to Vladislav Baliasov:

NS> Hапример у составителя документации?

Документация у Atmel не самая лучшая (но и не самая худшая, надобно отметить), но что до описания работы таймеров - все просто и очевидно.

VB>> Самый простой режим, тут запутаться просто нельзя.

NS> И где там КОHКРЕТHО указано, что именно класть в регистры TIMSK, NS> TCNT1L, TCCR1x, OCR1x и какие еще регистры/значения HЕОБХОДИМО NS> выставить?

В разделе описания Timer1. Биты мод - в таблице 39 (если речь о меге8). Там же указано, куда писать конечное значение таймера в режиме CTC. Логика работы в этом режиме - несколькими страницами раньше (у меня это страница 86). Расписано предельно ясно.

VB>> Так это ты несколько месяцев назад про этот режим спрашивал ? И VB>> до сих пор не разобрался, хотя все было объяснено ?

NS> "всё" - это что? Цитату привести можешь?

Даже искать не буду.

с уважением Владислав

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required