Easyelectronics.ru • Просмотр темы - USART ds18b20 не может подтянуть сигнал к нулю

Easyelectronics.ru

Электроника для всех
Текущее время: 16 авг 2018, 18:52

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 28 ноя 2017, 17:55 
Здравствуйте!

Зарегистрирован: 27 ноя 2017, 19:07
Сообщения: 4
Здравствуйте!
Пытаюсь подружить STM32F103 blue pill с ds18b20 и испытываю проблемы. Надеюсь на помощь опытных коллег)
Сконфигурировал USART в полудуплексном режиме и использую подходы, описанные тут:http://we.easyelectronics.ru/STM32/esche-raz-o-stm32-i-ds18b20-podpravleno.html
http://we.easyelectronics.ru/STM32/stm32-1-wire-dma.html
Пробовал схемы подключения из обеих статей (uart+диод шоттки) и half-duplex uart. Проблема актуальна в обоих случаях.

Датчик послушно отзывается на сигнал сброса.
Но когда доходит доходит до чтения его ответов, складывается ощущение что он не может подтянуть уровень к земле на достаточное время. Под спойлером размещаю осциллограммы с комменнтарием.
Show Осциллограммы


Я трактую осциллограммы как попытки датчика притянуть к земле уровень на шине, но он почемуто не может удержать этот уровень достаточное время.

Взаимодействие с UART используя HAL. Большая часть инициализации сгенерирована CubeMX.
Инициализация пинов:
Код:
    /**USART3 GPIO Configuration   
    PB10     ------> USART3_TX
    PB11     ------> USART3_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_11;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


Во время экспериментов пришел к блокирующей записи с активированным DMA на чтение.
Код получается такой:
Код:
uint8_t dma_buf[8];
HAL_UART_Receive_DMA(&huart3, dma_buf, 8);
if (HAL_UART_Transmit(&huart3, (uint8_t *) ow_buf, 8, 100000)
      != HAL_OK) {
   // Transfer error in transmission process
   Error_Handler();
}
HAL_UART_DMAStop(&huart3);

//далее анализ прочитанного


Поведение сохраняется как при трехпроводной схеме подключения с полноценным питанием, так и в случае паразитного питания. Напряжение 3.3В, резисторы пробовл 4к7 и 2к7. Все делаю на макетной плате, расстояния минимальные. Сам датчик рабочий -- с ардуиной пашет на ура.
Может у кого нибудь есть мысли, в чем корень моих проблем?
Спасибо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 28 ноя 2017, 20:29 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
morphal писал(а):
в чем корень моих проблем?

Калокуб, аурдунья и нежелание изучать железо.

Вывод должен быть в OD а не пушпул, и с внешним пуллапом...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 28 ноя 2017, 22:32 
Здравствуйте!

Зарегистрирован: 27 ноя 2017, 19:07
Сообщения: 4
dosikus_2 писал(а):
Вывод должен быть в OD а не пушпул, и с внешним пуллапом...


Внешняя подтяжка присутствует.
В half-duplex варианте подключения OD режим выставлен -- осциллограмму я приводил, проблема в наличии.
В подключении по схеме c диодом Шоттки высталение OD режима Tx-ноге не помогает.
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 28 ноя 2017, 23:14 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
Завтра могу скинуть рабочий проект для F0...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 28 ноя 2017, 23:23 
Здравствуйте!

Зарегистрирован: 27 ноя 2017, 19:07
Сообщения: 4
dosikus_2 писал(а):
Завтра могу скинуть рабочий проект для F0...


Скиньте, пожалуйста, если есть возможность. Буду благодарен


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 29 ноя 2017, 09:25 
Старожил

Зарегистрирован: 16 ноя 2012, 07:47
Сообщения: 2668
Работал в полудуплексе(одна нога Tx, OD режим) на F1 и F4, проблем не было. Но у меня подтяжка по 1 ком и питание датчиков +5,+3.3. А после выдачи команды 0x44 при активном питании, датчик вообще притягивает линию к земле на время измерения (на 12 бит около 750 мс) ? Можно попробовать провод поменять, вдруг херовый контакт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 29 ноя 2017, 10:04 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
http://rgho.st/8sL5VQNjq


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 09:08 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
DS18B20 и не только.
http://open-plc.blogspot.in/2018/01/l0w1gpioru.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 10:11 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2528
Откуда: КЧР, поселок Нижний Архыз
leocat3 писал(а):

И не стыдно такие ссылки давать? Мало того, что SPL, так еще и ногодрыг!!!
Зачем здесь распинаются про таймеры, UART и прочие методы аппаратно реализовать то, что создатели микроконтроллера не захотели воплощать?

Вообще, кажется ненормальным, что ST упорно продолжает выпускать МК новых серий без аппаратной поддержки 1-wire!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 12:48 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
Eddy_Em писал(а):
leocat3 писал(а):

И не стыдно такие ссылки давать? Мало того, что SPL, так еще и ногодрыг!!!
Зачем здесь распинаются про таймеры, UART и прочие методы аппаратно реализовать то, что создатели микроконтроллера не захотели воплощать?

Вообще, кажется ненормальным, что ST упорно продолжает выпускать МК новых серий без аппаратной поддержки 1-wire!

Да, мне очень стыдно, за вас.
Не то, чтобы попробовать, как это работает, но только увидев "дрыгоногание", тут же критиканить начинаете...
Да, стыдно, очень...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 12:58 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2528
Откуда: КЧР, поселок Нижний Архыз
Нечего за меня стыдиться, лучше постыдиться за себя!
У меня все кошерно: таймер+DMA и как резерв могу сделать на UART(+DMA).
Ногодрыг же — абдуринщина какая-то!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:30 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
Eddy_Em писал(а):
Нечего за меня стыдиться, лучше постыдиться за себя!
У меня все кошерно: таймер+DMA и как резерв могу сделать на UART(+DMA).
Ногодрыг же — абдуринщина какая-то!

Статью прочитайте. Желательно ВНИМАТЕЛЬНО. Потом пообщаемся.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:34 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2528
Откуда: КЧР, поселок Нижний Архыз
Я не собираюсь читать говноверстку! Что за [censored] текст пихают в столбик шириной меньше 90% ширины страницы? И шрифт ужасный. Только глаза ломать.

Глянул-таки по-диагонали. Офонарел с этого бреда:
Цитата:
Ключ «Таблетка» расчитан на работу с уровнем сигнала 5V. Уровень сигнала МК = 3.3V, поэтому для корректной работы нужно использовать преобразователи уровня.

Какой, к чертовой матери, преобразователь? "таблетке" 3.3В за глаза хватит, чтобы определить лог. единицу. А у STM32 предостаточно 5v-tolerant ног, чтобы не париться с этим!!! Выбираем таймер или UART на 5v-tolerant (обычно UART1 по дефолту всегда на этих ногах, с таймерами тоже нет проблем) и работаем!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:42 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
leocat3, ну давайте начнем с начала.
Проект создан по старым "кухаркиным рецептам" , не собирается в новых версиях кайла, сделан через ж.
Мало?
Это что? Очевидно же не читан RM ни разу.
Код:
USART_ClearITPendingBit( USART1, USART_IT_RXNE );


И да - 1wire ногодрыгом? Да здравствует аурдунья?????????

И я что-то не пойму - у вас ноги на 1wire в PP сконфигурированы????


Последний раз редактировалось dosikus_2 21 фев 2018, 14:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:48 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
dosikus_2 писал(а):
[b]...
не собирается в новых версиях кайла, сделан через ж.

Ну, за вашу рукожопость я не в ответе:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:51 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
leocat3, милок рукожоп именно ты .
Файлы CMSIS давным-давно , то бишь с кухаркиных статей, НЕ ИСХОДНИКИ А ХЭДЕРЫ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 14:58 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
dosikus_2 писал(а):
leocat3, милок рукожоп именно ты .
Файлы CMSIS давным-давно , то бишь с кухаркиных статей, НЕ ИСХОДНИКИ А ХЭДЕРЫ.

Уважаемый, я вам не хамил!
Дайте ссылки на свой вариант. Оценим.

P.S.
Честно говоря я не думал что ольгинские и сюда доберутся...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 16:04 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
leocat3 писал(а):
P.S.
Честно говоря я не думал что ольгинские и сюда доберутся...


Я не знаю что такое "ольгинские" и зачем вы "ольгинский" сюда добрались.
Вы не знаете основ, и даже основ создания проекта.
Вы не знаете что в 1wire необходим OD а не PP.
Вы не знаете что флаг RXNE сбрасывается вычиткой буфера.

Короче вы ни чего не знаете...

Цитата:
Уважаемый, я вам не хамил!

У вас еще и память девичья -за вашу рукожопость


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 16:48 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
2 dosikus_2:
Отлично!
Так мы увидим ваш красиво работающий код?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 16:58 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
Осталось лишь научиться юзать поиск...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 17:46 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2528
Откуда: КЧР, поселок Нижний Архыз
leocat3, зайдите на http://mcu.goodboard.ru/ и посмотрите!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 18:10 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
Eddy_Em писал(а):
leocat3, зайдите на http://mcu.goodboard.ru/ и посмотрите!

Оригинальный способ накрутить посещения...
Ткните меня носом в конкретный код для 1-Wire!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 18:40 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4818
Ну коли искать не можете, хотя все здесь http://we.easyelectronics.ru/STM32/stm3 ... henie.html
Тыкаю - http://rgho.st/8MBMfZnbQ
Вытерта богомерзкая SPL .
STM32F0 discovery
1wire на PA2(USART2), вывод на USART1 PA9, PA10.
Пуллап внешний-4,7К. DQ датчика на PA2 . Датчик DS18B20.


Последний раз редактировалось dosikus_2 21 фев 2018, 18:44, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 21 фев 2018, 18:44 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2528
Откуда: КЧР, поселок Нижний Архыз
leocat3, ну можно же немножко гугол освоить!
Вот мое старое. Если вдруг понадобится когда-нибудь опять столкнуться с этим говном (я про 1-wire), немного переделаю (во-первых, надо выбросить opencm3 и оставить чистый CMSIS; во-вторых, убрать блокировки, реализовав как конечный автомат).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USART ds18b20 не может подтянуть сигнал к нулю
СообщениеДобавлено: 01 мар 2018, 14:28 
Заглядывает иногда

Зарегистрирован: 02 май 2017, 18:54
Сообщения: 89
Eddy_Em писал(а):
...
Если вдруг понадобится когда-нибудь опять столкнуться с этим говном (я про 1-wire),
...

Плохому танцору ... тапочки жмут.
Да и какое отношение теория автоматов имеет к 1-Wire? Слышали звон, да не знаете откуда он...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 31 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: alexsam


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB