Двухпроводная схема ds18b20

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

Мяу коты.

Столкнулся с проблемой, не работает датчик при 2х проводной схеме, постоянно выдает 85. Подтяжка к 3,3В 2,2к.
3х проводная схема работает, с ней нет проблем.

Я вычитал что во время преобразования нужно порт перенастроить в пуш пулл, что бы обеспечить питание.

Собственно код. После подачи команды конвертации, настраиваю на пуш пулл, далее жду время, и далее перенастраиваем вывод обратно в режим опен драин.

Код: Выделить всё

   DS18B20_writeByte(convert_t); //44

	//out pp
	GPIOA->MODER &= ~GPIO_MODER_MODER0;
	GPIOA->MODER |= GPIO_MODER_MODER0_0;
	GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0;	
	GPIOA->BSRR |= GPIO_BSRR_BS_0;

	delay(delay_wait_convert);

	//50MHz out open-drain
	GPIOA->MODER &= ~GPIO_MODER_MODER0;
	GPIOA->MODER |= GPIO_MODER_MODER0_0;
	GPIOA->OTYPER |= GPIO_OTYPER_OT_0;
	GPIOA->OSPEEDR |= GPIO_OSPEEDR_OSPEEDR0;
	GPIOA->BSRR |= GPIO_BSRR_BS_0;

Правда это не помогает. В чем может быть проблема? :? :cry:
Контактная информация:
Реклама
Собутыльник Кота
Сообщения: 2905
Зарегистрирован: Ср ноя 29, 2017 06:58:50

Сообщение BlackKilkennyCat »

Очень любопытно увидеть схему, а не код. Потому что изначально 1-wire подразумевает физически 3 провода. Возможно, проблема всё-таки в аппаратной реализации "PowerOver1-Wire"
О, не знал, что так умеет. Странно, как это проглядел.
Последний раз редактировалось BlackKilkennyCat Сб дек 14, 2019 16:50:56, всего редактировалось 1 раз.
Меня здесь больше нет
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 54
Зарегистрирован: Сб июн 06, 2009 11:13:56

Сообщение bevice »

а зачем вы передергиваете MODER и остальное?

Код: Выделить всё

GPIOA->BSRR |= GPIO_BSRR_BS_0;
GPIOA->OTYPER &= ~GPIO_OTYPER_OT_0;   // включили Push-pull с выходом в 1
delay(...)
GPIOA->OTYPER  |= GPIO_OTYPER_OT_0; //  включили OD
остальное трогать вам вроде бы не нужно, а еще на пару тактов в HiZ переводите порт
После нас - хоть потоп (с) Лойсо
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2564
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Что это за "судороги"?
1. Зачем MODER дёргать, если значение в нём в результате остаётся то же?
2. OSPEEDR зачем трогать?
3. GPIOA->BSRR |= GPIO_BSRR_BS_0; это вооооообще что? Что ты из BSRR читать собрался?

Впрочем, всё это к датчику мало относится. Берём осциллограф и смотрим шину на соответствие протоколу.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 20183
Зарегистрирован: Пт фев 04, 2011 17:57:51
Откуда: Рыбинск

Сообщение Martin76 »

alex38779 писал(а):не работает датчик при 2х проводной схеме, постоянно выдает 85. Подтяжка к 3,3В 2,2к.
А ДСка то вообще знает, что ее на паразитное питание перевели?
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 386
Зарегистрирован: Чт окт 31, 2013 10:54:32

Сообщение alex38779 »

Коты разобрался! Всем спасибо.

оказался один тайминг не правильный.
Контактная информация:
Реклама
Ответить

Вернуться в «ARM»