реклама на сайте
подробности

 
 
> Странное поведение DS18b20
Halfback
сообщение Jan 27 2016, 17:45
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Всем доброго времени суток!
Есть проблема с датчиками DS18b20
Заказал пару штук этих датчиков во влагозащищенном исполнении.
Подключил один из них по 2-проводной схеме - т.е. красный и черный провод объединил и посадил на "землю". Желтый провод сделал PullUP (к 3,3В через 3,3кОм) посадил на передатчик USART4.
МК - STM32F103RE (отладочная плата - Махаон).
Для упрощения жизни запустил CubeMX последней версии, настроил USART4 на HalfDuplex.
И ситуация следующая: на F0 датчик отвечает E0, а вот на остальные команды не отвечает вообще никак. Ни на 0хсс 0хBE (чтение памяти 9 байт) ни на 0x33.
Собственно, результаты смотрел в отладчике Keil и осциллографом. Скорость UART меняется адекватно, оценивал длительность импульсов согласно скорости.

Код ниже:

Код
        
uint8_t TxCmdReset=0xF0;
uint8_t RxAnswReset1;
uint8_t RxData[100];
uint8_t ow_buf[8];

HAL_HalfDuplex_EnableReceiver(&huart4);
        
    MX_UART4_Init_wBoudRate(9600); //Reset
    HAL_UART_Receive_IT(&huart4,&RxAnswReset1,1);    
    HAL_UART_Transmit(&huart4, &TxCmdReset, sizeof(TxCmdReset), 2);    
    for(i=0;i<1000;i++) {__NOP();}
        
    MX_UART4_Init_wBoudRate(115200);
    HAL_UART_Receive_IT(&huart4, RxData, sizeof(RxData));
    OW_toBits(0xCC, ow_buf);
    HAL_UART_Transmit(&huart4, (uint8_t *)ow_buf, 8, 3);
    OW_toBits(0xB4, ow_buf);
    HAL_UART_Transmit(&huart4, (uint8_t *)ow_buf, 8, 3);
    HAL_Delay(2);
    while(1);


Код
void MX_UART4_Init_wBoudRate(uint32_t BoudRate)
{
  huart4.Instance = UART4;
  huart4.Init.BaudRate = BoudRate;
  huart4.Init.WordLength = UART_WORDLENGTH_8B;
  huart4.Init.StopBits = UART_STOPBITS_1;
  huart4.Init.Parity = UART_PARITY_NONE;
  huart4.Init.Mode = UART_MODE_TX_RX;
  huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart4.Init.OverSampling = UART_OVERSAMPLING_16;
  
  HAL_HalfDuplex_Init(&huart4);
}


Функция преобразования байта в 8 байт для отправки заимствован. Тем не менее его в отладчике проверял - замечаний нет.

Код
void OW_toBits(uint8_t ow_byte, uint8_t *ow_bits) {
        uint8_t i;
        for (i = 0; i < 8; i++) {
               if (ow_byte & 0x01) {
                        *ow_bits = OW_1;
                } else {
                        *ow_bits = OW_0;
                }
                ow_bits++;
                ow_byte = ow_byte >> 1;
        }
}


Пробовал оба датчика - ведут себя одинаково. Значит есть надежда что ошибка в коде.
Может кто прояснит в чем я не прав?

Сообщение отредактировал Halfback - Jan 27 2016, 17:57
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Halfback   Странное поведение DS18b20   Jan 27 2016, 17:45
- - k155la3   Насколько мне не изменяет (?) память, DS18B20 рабо...   Jan 28 2016, 07:13
- - adnega   Цитата(Halfback @ Jan 27 2016, 20:45) Про...   Jan 28 2016, 07:28
- - Halfback   Спасибо что откликнулись. Тайминги на соответствие...   Jan 28 2016, 08:33
|- - adnega   Цитата(Halfback @ Jan 28 2016, 11:33) Что...   Jan 28 2016, 08:48
- - AHTOXA   Цитата(Halfback @ Jan 27 2016, 22:45) Для...   Jan 28 2016, 10:13
- - k155la3   Вот подвернулось тут. Работа с DS18B20 По ссылке, ...   Jan 29 2016, 06:27
- - Halfback   Частично разобрался. Решил пока забить на UART и с...   Jan 29 2016, 13:52
|- - adnega   Цитата(Halfback @ Jan 29 2016, 16:52) Час...   Jan 29 2016, 14:04
||- - jcxz   Цитата(Halfback @ Jan 29 2016, 19:52) Реш...   Feb 1 2016, 05:16
||- - rx3apf   Цитата(jcxz @ Feb 1 2016, 08:16) И причём...   Feb 1 2016, 10:39
|- - k155la3   Цитата(Halfback @ Jan 29 2016, 17:52) Час...   Jan 31 2016, 14:56
|- - adnega   Цитата(k155la3 @ Jan 31 2016, 17:56) Запр...   Jan 31 2016, 17:30
||- - k155la3   Цитата(adnega @ Jan 31 2016, 20:30) ))) О...   Feb 3 2016, 10:54
|- - Леонид Иванович   Цитата(k155la3 @ Jan 31 2016, 18:56) Запр...   Feb 4 2016, 22:09
|- - jcxz   Цитата(Леонид Иванович @ Feb 5 2016, 04:0...   Feb 5 2016, 06:09
|- - Сергей Борщ   Цитата(jcxz @ Feb 5 2016, 08:09) Алгоритм...   Feb 5 2016, 07:50
|- - Леонид Иванович   Цитата(jcxz @ Feb 5 2016, 09:09) За 75 ил...   Feb 5 2016, 10:55
|- - jcxz   Цитата(Леонид Иванович @ Feb 5 2016, 16:5...   Feb 5 2016, 16:22
|- - CrimsonPig   Цитата(jcxz @ Feb 5 2016, 16:22) Здесь ра...   Feb 5 2016, 16:39
|- - adnega   Цитата(CrimsonPig @ Feb 5 2016, 19:39) Мо...   Feb 5 2016, 18:55
|- - jcxz   Цитата(CrimsonPig @ Feb 5 2016, 22:39) Во...   Feb 6 2016, 09:15
- - ILYAUL   Самый простой способ работать с 1-wire через UART ...   Feb 9 2016, 16:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 10:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016