|
Чудеса, паразитные импульсы |
|
|
|
Nov 17 2012, 14:19
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Друзья, выручайте. Возникли проблемы с получением генератора прямоугольных импульсов. Микроконтроллер ATMEGA48. Вобщем суть такова: для одной схемки нужно было прилепить пул ап к выводу и на определённый промежуток прижимать его к земле. В протеусе всё летает как нужно. В итоге перенёс все на железо и тут понеслось: ничего не работает.(Это просто лирическое отступление и в суть программы вдаваться не стоит). Долго маялся и не мог понять в чём проблема. В итоге запилил простейший генератор прямоугольного сигнала и вот что я увидел на экране осциллографа:
Я уже несколько недель маюсь с этой проблемой. Думал, что проблема в питалове. Подключал и ЛБП и батарейки. На входе стоит кондер на 10 мкф, такты задаются кварцем на 12 МГц. Пробовал и на внутреннем rc, ничего не изменилось. Есть ли какие нибудь соображения? А по поводу той программки, что я писал вначале. Она должна прижать ногу микрухи на 500 мкс. На осциллографе этого не происходило, был просто моментальный скачёк до 0 и тут же отпускал:
И ещё я пробовал на 2 микрухах везде оно и то же.
|
|
|
|
|
Nov 17 2012, 14:28
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135

|
Цитата(MySOL @ Nov 17 2012, 20:19)  Я уже несколько недель маюсь с этой проблемой. Думал, что проблема в питалове. Подключал и ЛБП и батарейки. На входе стоит кондер на 10 мкф, такты задаются кварцем на 12 МГц. Пробовал и на внутреннем rc, ничего не изменилось. Есть ли какие нибудь соображения? И ещё я пробовал на 2 микрухах везде оно и то же. Осциллограф не всегда может показать то что есть на самом деле, например из-за низкой полосы рабочих частот или большой ёмкости измерительного кабеля...
--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
|
|
|
|
|
Nov 17 2012, 15:00
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Цитата(ILYAUL @ Nov 17 2012, 18:24)  Что-то мне подсказывает , что проблемка именно а программке, ибо протеус вещь не подвластная разуму. Код RES_DS: LDI TEMP, 0B00000000 ; Сброс OUT PORTB, TEMP ; Посылаем 0 в течении 500 мкс
LDI DELAY1, RP/3 ;RP=500 ( указан DSEG)
SUBI DELAY1, 1 ; Задержка 500 мкс BRNE PC-1 ;
CBI DDRB, 0 ; Меняем вывод на ввод SBIC PINB, 0 ; Ждём пока датчик утопит шину RJMP PC-1
SBIS PINB, 0 ; Ждём пока датчик будет готов к RJMP PC-1 ; следующей команде
RET Вобщем говоря это подпрограмма для 1-WIRE программы для проверки готовности датчика. Отправляем 0 в течении 500 мкс после чего ждём ответ ( в виде 0) от датчика. Думаю программа вполне понятна и объяснений не требует. И опять же повторюсь в протеусе осциль показал все как надо. А вот на железке задержка в 500 мкс отсутствует ( вторая картинка). Я прошу прощения. Тут скорее всего без нормальной осциллограмы мало что понятно. Я надеялся, что возможно с этим уже кто-то сталкивался. Я постараюсь сегодня завтра скинуть их. Просто у меня флешки сейчас нету
|
|
|
|
|
Nov 17 2012, 15:02
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(MySOL @ Nov 17 2012, 23:19)  ... нужно было прилепить пул ап к выводу и на определённый промежуток прижимать его к земле... Для выхода с открытым стоком и pull-up так и должно быть. Вот фрагмент сигнала на 1-Wire для DS1820:
|
|
|
|
|
Nov 17 2012, 15:09
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Цитата(ae_ @ Nov 17 2012, 19:02)  Для выхода с открытым стоком и pull-up так и должно быть. Вот фрагмент сигнала на 1-Wire для DS1820:
Вы меня наверное не поняли. Все дело в том, что сигнал с мк не такой, какой должен быть
|
|
|
|
|
Nov 17 2012, 15:13
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(MySOL @ Nov 18 2012, 00:09)  Вы меня наверное не поняли. Все дело в том, что сигнал с мк не такой, какой должен быть А какой сигнал должен быть? Какое напряжение питания, сопротивление подтяжки и ёмкость нагрузки + ёмкость линии ?
|
|
|
|
|
Nov 17 2012, 15:31
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Цитата(ae_ @ Nov 17 2012, 19:13)  А какой сигнал должен быть? Какое напряжение питания, сопротивление подтяжки и ёмкость нагрузки + ёмкость линии ? Скажем так. Вы угадали с датчиком. Всё это писалось для DS1820 ну и подключал всё как рекомендуется в дс. Проблемы с presence pulse. Я про него и говорил. Просто это хотелось бы пока не ввязываться в него и решить всё таки вопрос откуда беруться те "лишние" импульсы.
Сообщение отредактировал MySOL - Nov 17 2012, 15:43
|
|
|
|
|
Nov 17 2012, 15:45
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(MySOL @ Nov 18 2012, 00:31)  ... решить всё таки вопрос откуда беруться те "лишние" импульсы. Ответьте хотя бы, какое сопротивление подтяжки ? Какова длина линии 1-wire ? "лишние" импульсы могут выдавать другие устройства, подключенные к 1-wire. Сделайте программно генератор импульсов 500мкс, отключите все остальные устройства, кроме резистора подтяжки, что видно на осциллографе?
|
|
|
|
|
Nov 17 2012, 16:42
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Цитата(ae_ @ Nov 17 2012, 19:45)  Ответьте хотя бы, какое сопротивление подтяжки ? Какова длина линии 1-wire ? "лишние" импульсы могут выдавать другие устройства, подключенные к 1-wire. Сделайте программно генератор импульсов 500мкс, отключите все остальные устройства, кроме резистора подтяжки, что видно на осциллографе? Проблема решилась. Всему виной был осциллограф. Просто опыта обращения с ним мало, а у него есть свои особенности (осциллограф цифровой). Теперь видимо проблема того, что датчик молчит - это то, что я его запорол. Обидно. Я прошу прощение за беспокойство. Просто столько сил угрохал и времени, а тут не пашет и как обычно до конца хотелось верить, что проблема не в монтаже.
|
|
|
|
|
Nov 17 2012, 16:52
|

Профессионал
    
Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339

|
Если , честно то - кошмар. Начнём с начала Из чего состоит импульс сброс присутствие - из 2-х фаз Сброса 480us- посылаемого MCU и ответа DS - присутствие Код LDI TEMP, 0B00000000 ; Сброс OUT PORTB, TEMP ; Посылаем 0 в течении 500 мкс Меняется на Код cbi PORTB, PD0 Задержка 500us Код sbi PORTB, PD0 CBI DDRB, PD0 ; Меняем вывод на ввод SBIC PINB, PD0 ; Ждём пока датчик утопит шину RJMP PC-1
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
Nov 17 2012, 19:14
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(MySOL @ Nov 17 2012, 15:00)  Код LDI DELAY1, RP/3;RP=500 ( указан DSEG) SUBI DELAY1, 1; Задержка 500 мкс BRNE PC-1 ; При 12 МГц тактовой и однобайтном счётчике, у вас программная задержка будет максимум на 64 мкс, а не на 500 мкс. Вам следует использовать 2-х байтный счётчик задержки. Вернее всего, датчик у вас нормальный, просто не успевает среагировать на короткий импульс. Ниже, для примера, приведен реальный код для начала работы с 1-wire, вроде бы Fклок=10 МГц, проверьте Код rs1820: cbi PORTB,0 ldi hdelay,high(1249);500us ldi ldelay,low(1249) rs1: sbiw ldelay,1 brne rs1 sbi PORTB,0 ldi temp1,0x1E ;PB0-input out DDRB,temp1 ldi hdelay,high(169);68us ldi ldelay,low(169) rs2: sbiw ldelay,1 brne rs2 ldi temp3,13 ;TempSensor failed sbic PINB,0 rjmp rs4 ldi hdelay,high(1079);432us ldi ldelay,low(1079) rs3: sbiw ldelay,1 brne rs3 ldi temp1,0x1F ;PB0-output out DDRB,temp1 clc ret rs4: ldi temp1,0x1F ;PB0-output out DDRB,temp1 ret
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Nov 21 2012, 16:15
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 11-03-05
Из: Подмосковье
Пользователь №: 3 260

|
Запороть DS1820 можно толь ко кувалдой. Вылизывайте все таймиги и все заработает на ура.
|
|
|
|
|
Nov 22 2012, 12:45
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 17-06-12
Пользователь №: 72 370

|
Благодарю за информацию, надеюсь заработает рано или поздно
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|