Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Сб дек 14, 2019 16:34:56

Мяу коты.

Столкнулся с проблемой, не работает датчик при 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:

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

Сб дек 14, 2019 16:43:52

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

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

Сб дек 14, 2019 16:44:50

а зачем вы передергиваете 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 переводите порт

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

Сб дек 14, 2019 16:47:04

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

Впрочем, всё это к датчику мало относится. Берём осциллограф и смотрим шину на соответствие протоколу.

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

Сб дек 14, 2019 17:04:01

alex38779 писал(а):не работает датчик при 2х проводной схеме, постоянно выдает 85. Подтяжка к 3,3В 2,2к.
А ДСка то вообще знает, что ее на паразитное питание перевели?

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

Сб дек 14, 2019 17:05:49

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

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