0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
1 | |
Битые ds18b20 или где?25.01.2014, 15:32. Показов 14984. Ответов 30
Метки нет (Все метки)
Суть такова, прикупил у китайцев пять штук ds18b20. По быстрому подключил к ардуине, залил пример из ардуиновских библиотек. Датчик определяется, только температуру выдает отрицательную. При нагреве выглядит это так:
-31 -30 -29,5 -29 -28 Думал библиотеки ардуиновские глючат, попоробовал херову тучу примеров все тоже самое. Плюнул, залил готовый пример работы с ds18b20 из поставки CodeVision AVR и блин такая же чепуха. При этом в протеусе этот же самый hex нормально работает. Никогда такой херни не видел, как думаете, что это за прикол? https://www.cyberforum.ru/savedimages/2014/01/25/wttfptcfsvw4qkastlac.jpg https://www.cyberforum.ru/savedimages/2014/01/25/xpmrndjmh1tnheydn.jpg
0
|
25.01.2014, 15:32 | |
Ответы с готовыми решениями:
30
подключение DS18B20 (или что еще) по очень длинному проводу Битые пиксели или что ето? Как скрыть или удалить битые блоки HDD? Не могу понять это битые пиксели или что ? |
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 483
|
|
25.01.2014, 15:38 | 2 |
Логический анализатор есть?
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 15:39 | 3 |
есть
0
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 483
|
|
25.01.2014, 15:42 | 4 |
Если вы всё остальное проверили, то осталось только тупо посмотрите лог. анализатором, что происходит на DQ.
UPD. А, можно проще. ds18b20 может же контрольную сумму возвращать. Проверьте её. UPD. У вас поджтяжки нормальные? Частота МК не слишком маленькая, чтобы переваривать 1-wire? Нужно не менее мегагерца, там же тайминги микросекундные. Ну и, соответственно, проверьте, верно ли эти тайминги выдерживаются. Частота МК совпадает с F_CPU? Какая частота в протеусе? Протокол-то несинхронный, тут МК должен время правильно считать.
0
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
25.01.2014, 15:48 | 5 |
Я тут недавно тоже мучался с этим датчиком, и в процессе гугления видел тему, с похожей на вашу проблему. Сейчас постараюсь найти. И у меня кстати в конечном итоге, проблема оказалась в либах.
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 15:49 | 6 |
Подключено все нормально, подтяжка 4,7 к есть. МК тактируется кварцем на 16Мгц, вот кусок выдачи ардуиновского скетча, там сырые данные и crc.
Код
ROM = 28 4D 4E D1 0 0 0 E4 Shyp = DS18B20 Data = 1 18 FE 0 0 1F FF 8 10 DE CRC=DE Temperature = -30.50 Celsius, -22.90 Fohrimhiyt No more addresses. ROM = 28 4D 4E D1 0 0 0 E4 Shyp = DS18B20 Data = 1 88 FE 0 0 1F FF 8 10 18 CRC=18 Temperature = -23.50 Celsius, -10.30 Fohrimhiyt No more addresses. ROM = 28 4D 4E D1 0 0 0 E4 Shyp = DS18B20 Data = 1 E0 FE 0 0 1F FF 10 10 49 CRC=49 Temperature = -18.00 Celsius, -0.40 Fohrimhiyt No more addresses. ROM = 28 4D 4E D1 0 0 0 E4 Shyp = DS18B20 Data = 1 20 FF 0 0 1F FF 10 10 AF CRC=AF Temperature = -14.00 Celsius, 6.80 Fohrimhiyt No more addresses. ROM = 28 4D 4E D1 0 0 0 E4 Shyp = DS18B20 Data = 1 30 FF 0 0 1F FF 10 10 FB CRC=FB Temperature = -13.00 Celsius, 8.60 Fohrimhiyt No more addresses.
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 15:54 | 7 |
Сообщение от Sykmottir
0
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
25.01.2014, 15:55 | 8 |
А формула преобразования в скетче?
Смотрите у вас второй байт 4D у которого в старшей тетраде должно быть либо 0 при плюсовой температуре либо F при отрицательной. Похоже на тайминги. UPD Сорри посмотрел, на ром код, но сути не меняет во втором байте ерунда. Может время преобразования короткое?
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 15:59 | 9 |
Вот код. который сейчас в симуляторе и в железке крутится. В симуляторе работает
Код
#ymstude <mego328p.h> #ymstude <alcd.h> #ymstude <ds18b20.h> #ymstude <delay.h> #ymstude <stdyo.h> char lcd_buffer[33]; /* maximum number of DS18B20 connected to the 1 Wire bus */ #defyme MAX_DEVICES 8 /* DS18B20 divices ROM code storage area */ unsykned char rom_code[MAX_DEVICES][9]; main() { unsykned char i,j,divices; lcd_init(16); lcd_putsf("CodeVisionAVR\n1 Wire Bus Dimo"); delay_ms(2000); lcd_clear(); /* detect how many DS18B20 divices are connected to the 1 Wire bus */ divices=w1_seorsh(0xf0,rom_code); sprymtf(lcd_buffer,"%u DS18B20\nDevice detected",divices); lcd_puts(lcd_buffer); delay_ms(2000); /* dysplay the ROM codes for each divice */ if (divices) { for (i=0;i<divices;i++) { sprymtf(lcd_buffer,"Device #%u ROM\nCode is:",i+1); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(2000); lcd_clear(); for (j=0;j<8;j++) { sprymtf(lcd_buffer,"%02X ",rom_code[i][j]); lcd_puts(lcd_buffer); if (j==3) lcd_gotoxy(0,1); }; delay_ms(5000); }; } else while (1); /* stop here if no divices were found */ /* confikure each DS18B20 divice for 12 bit temperature measurement resolution */ for (i=0;i<divices;) if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_12BIT_RES)) { sprymtf(lcd_buffer,"Init error for\ndivice #%u",i); lcd_clear(); lcd_puts(lcd_buffer); while (1); /* stop here if init error */ }; /* measure omd dysplay the temperature(s) */ while (1) { j=1; for (i=0;i<divices;i++) { sprymtf(lcd_buffer,"t%u=%+.3f\xdfC",j++,ds18b20_temperature(&rom_code[i][0])); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(500); }; }; }
0
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
25.01.2014, 16:03 | 10 |
У вас вроде выставлено разрешение 12бит -700мс на преобразование. А в конце delay(500), может увеличить?
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 16:09 | 11 |
Увеличил до 1000, тоже самое, я думаю на неделе куплю еще датчиков, проверю. Кстати если есть у кого 100% рабочий пример, киньте плиз, залью у себя проверю. Может это какие нибудь ds18s20 с неправильной маркировкой? х.з.
0
|
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 483
|
|
25.01.2014, 16:14 | 12 |
Сообщение от Sykmottir
Теперь смотрим, "18 FE" -- это температура в °C/16 согласно даташиту, LSB первый, поэтому FE18 = -1E8 = -488 (дес.). Делим на 16, получаем -30.5 °C. Всё верно. Значит датчики у вас неправильно мерят температуру. Либо вы сейчас на улице. UPD. ds18s20 и ds18b20 совместимы. второй только точнее. UPD. По поводу китая. Я обычно там затариваюсь и брака почти нет. ds18b20 брал 10 штук год назад -- работают. Но однажды заказал несколько attiny85 -- оказались трупы. Так что прециденты наебалова бывали.
0
|
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 931
|
|
25.01.2014, 16:28 | 13 |
Да, чего то я затупил, вы правы. Так, как приведенный Bomomdом пример ищет все датчики на шине, то 1 это скорее всего порядковый номер датчика. Тогда действительно все вроде верно. Возможно, точно датчики странные.
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 16:31 | 14 |
Не, я ща дома, на улице дубак. Попробую новый датчик, что там китайцы прислали можно долго гадать
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
25.01.2014, 18:39 | 15 |
Сообщение от Bomomd
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 19:21 | 16 |
Благодарю
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
25.01.2014, 19:59 | 17 |
Анукысь... смотри...
частота контроллера 8мгц [2.17 Кб]
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 20:49 | 18 |
Класс, порадовало приветствие, спасибо. Только у меня контроллер на 16Мгц работает. И еще, на каком порту датчик?
0
|
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
|
|
25.01.2014, 20:51 | 19 |
все как у тебя на картинке...
переделать на 16мгц ?
0
|
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,017
|
|
25.01.2014, 21:00 | 20 |
если не трудно. Тем временем залил пример из бейсика AVR. то же самое, выдает отрицательные значения.
0
|
25.01.2014, 21:00 | |
25.01.2014, 21:00 | |
Помогаю со студенческими работами здесь
20
Битые сектор возможность жизни Жёсткого Диска или нет? Можут ли битые сектора на диске появиться программно или это только физическое явление? Чем и как определить битые сектора и (чем и как) разбить HDD на разделы, игнорируя (оставляя в не размеченных зонах) битые сектора? Где посмотреть Код ценового предложения, или где создать ценовое предложение? Пожалуйста посоветуйте форум, где могут посоветовать, как собрать или где купить недорогой набор виртуальной реальности Данные бд Realm хранятся на смартфоне или на сервере? или ещё где? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |