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

 
 
> Помогите с PCF8563 и LM75
Kassiopay
сообщение Aug 12 2009, 09:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Доброго времени суток...

Мои проблемы заключаются в следующем:

1) Собрал устройство ATMEGA32, PCF8563, LM75 и WH1602 при запуске, PCF инициализируеться нормально даже на выходе светодиодом начинает мигать, при считывании времени она мне показывает какойто бред, во первых секунды считаються неправильно т.е 0,1,2,3,4,5,6,7,0,1,0,1,2,3... и ещё минуты могут посчитаться в - т.е. было к примеру 12:21 минута прошла стало 12:20 потом после следующей минуты 12:22, а бывает что и 12:21-12:20-12:21-12:20...
При эмуляции в PROTEUS-е PCF работает нормально выдаёт правильное время...
Что делать незнаю помогите...

2) На этом же устройстве при работе LM75 она выдаёт одно и тоже значение 64746 если часто включать выключать устройство то можно добиться что LM будет выдавать 00240 т.е. 24,0 градусов хотя в комнате около 30...

Для обоих микросхем использую CVAVR V2.03.9, I2C програмная, библиотеки работы с ними тоже встроенные...
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 15)
Kassiopay
сообщение Aug 12 2009, 10:32
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



С PCF8563 разобрался...
Оказываеться мешалась AT24C08 адреса то одинаковые... А вот LM75 попрежнему работает както непонятно...
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 12 2009, 13:47
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Наверняка тоже что-то где-то мешается, LM75 же тоже по I2C работает. В CV должен быть пример, попробуйте его запустить. Подтяжки ла линии клока-даннных поставили?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 12 2009, 16:13
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Резисторы и на такт и на данные по 10 к
Мешаться больше ничего неможет осталась только PCF-ка и LM-ка...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 12 2009, 16:34
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Kassiopay @ Aug 12 2009, 19:13) *
Резисторы и на такт и на данные по 10 к

Да многовато будет, я обычно ставлю не более 3.3 к. Проблем не возникало.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 12 2009, 16:51
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Цитата(IgorKossak @ Aug 12 2009, 20:34) *
Да многовато будет, я обычно ставлю не более 3.3 к. Проблем не возникало.

Проблем не возникало именно с LM75???
Если да то какой код используете, стандартную библиотеку или свой???
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Aug 12 2009, 18:32
Сообщение #7


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Kassiopay @ Aug 12 2009, 19:51) *
Проблем не возникало именно с LM75???
Если да то какой код используете, стандартную библиотеку или свой???

Я по поводу резисторов.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 12 2009, 18:49
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



А что резисторы...
PCF-ка же нормально работает...
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 12 2009, 20:19
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Вообще то есть требования к подтяжке I2C, почитайте даташит на LM75 какие там рекомендуют подтяжки ставить? Я давно уже не работал с I2C но помню что нужно было ставить не более 5к(или около того) при питании 5в. Я тогда работал с DS1307 тоже в CV с использованием встроенных библиотек.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 13 2009, 12:55
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Ну в общем никто мне так дельного совета и не дал...
Сегодня пробовал перепаять резисторы на 3к3 то же самое...
Выпаял совсем PCF-ку тоже самое...
На шине больше ничего нету!!!
Может это какаято модификация глючная???
Я уже перепробовал:
LM75BIM-3
LM75AD.112
LM75AD.118

Из всех стабильно запускалась только первая и то показывала 80 градусов...
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 13 2009, 13:29
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Так как же вам помогать то, если вы никаких подробностей не говорите? Питание на микросхеме проверяли, сколько у вас питание? Осцилогрвфом линии данных смотрели? В даташите на ЛМ75 четко написано что подтяжки должны быть 5к, адресные линии подтянуты как надо, вывод О.С. подтянут? Схему неплохо бы приввести, может текст программы, вы приме для ЛМ75 из CV запускали? Нас то нет рядом с вами, мы телепатически, по вашему, должны подробности узнавать?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 13 2009, 15:15
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Отвечаю попорядку::
Питание 4,5
Осциллографа нету
В даташите, покрайней мере в моём написано по 10к
А вывод ОС разве нужно подтягивать??? Я его неиспользую...
А какая там схема, к микроконтроллёру подключена LM-ка, резисторы, экранчик WH1602 и всё...
Код из стандартной CVAVR-овской библиотеки т.е. lm75_init(0,75.80,0) и lm75_temperature_10(0)
CODE
int x;
unsigned char y;

x=lm75_temperature_10(0);

lcd_gotoxy(0,1);
y=0;
while (x>=10000){
x=x-10000;
y++;
};
lcd_putchar(y+0x30);
y=0;
while (x>=1000){
x=x-1000;
y++;
};
lcd_putchar(y+0x30);
y=0;
while (x>=100){
x=x-100;
y++;
};
lcd_putchar(y+0x30);
y=0;
while (x>=10){
x=x-10;
y++;
};
lcd_putchar(y+0x30);
lcd_putchar(x+0x30);


использовал и демку из хелпа:

CODE
int x;

x=lm75_temperature_10(0);
sprintf(display_buffer,"%-i.%-u%cC",x/10,abs(x%10),0xdf);
lcd_gotoxy(0,1);
lcd_puts(display_buffer);


результаты одинаковые только второй вариант больше места жрёт...

Сообщение отредактировал Kassiopay - Aug 13 2009, 15:32
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 13 2009, 18:31
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



LM75 выпускает несколько фирм, какая конкретно микросхема у вас я не знаю, но, думаю что в плане подтяжек следует руководствоваться даташитом на конкретную микросхему. Для любых микросхем выполненных по технологии КМОП необходимо ВСЕМ неиспользуемым выводам придать определенное состояние, т.е. поставить подтяжку, если нет внутренней - это общее правило. Из вашего куска кода видно лишь как вы оригинально выделяете цифры из числа для вывода на дисплей, тут вам есть над чем поработать, но это не имеет никакого отношения к проблеме. Для нас важна начальная инициализация регистров и портов, а так же неплохо бы посмотреть настройки проекта. Какая частота выставлена в настройках проекта, на какой частоте реально работает контроллер, какая частота выбрана для I2C? Нет ли ошибок в монтаже, соплей, непропаев, доходит ли питание до микросхем, доходят ли линии данных? Не пробовали ли кардинально снизить частоту I2C? К каким ножкам порта подключена LM75, совпадает ли это с настройками проекта, не перепутали ли чего в этом месте, нумерацию выводов и т.д. и т.п. Вы читате LM75 по нулевому адресу, а ножки адреса на LM75 посажены на землю?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 14 2009, 09:13
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Работает на 8 МГц от внутренней РЦ цепочки, в настройках проекта тоже 8...
В монтаже ошибок нет! LM75 откликаеться именно по своему адресу! но выдаёт постоянное, неменяющееся значение, судя по даташиту (LM-ка Филипс) её можно вообще неинициализировать...
Все регистры и так в нужное состояние станут...
А как можно снизить частоту програмного И2Ц???
И ещё вчера пробовал программировать Фусы на внешний кварц:
CKSEL0=0
CKSEL1=1
CKSEL2=1
CKSEL3=1
SUT0=0
SUT1=1
По даташиту вроде так, конденсаторы по 20 пф...
А микроконтроллёр начинает както совсем непонятно работать...
Выводит какието кракозябры на экран, неимеющие отношения к программе...
Частоту в настройках проекта под кварц менял, кстати кварц 14,3 (с материнки сдохшей).
Насчёт начальной инициализации нет там ничего особенного все ноги на входы, а операторами:
i2c_init();
lcd_init(16);
ножки сами установятся в нужном направлении...

Обнаружил также интересную особенность берёш отрезок пробода уменя был конец от мультиметра, тыкаеш его либо та общий либо на + и микроконтроллёр перегружаеться... Из за чего это может происходить??? На ножке сброса резистор 10к.

И напоследок а что в моём коде выделения не так? Над чем там поработать?
Мне кажеться очень просто и понятно...
Go to the top of the page
 
+Quote Post
GDI
сообщение Aug 14 2009, 13:32
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Возможено, перегрели LM75 при монтаже, попробуйте паять нагревая каждый вывод не более 1-2секунд, возможно статикой что то пробили, если паяльник напрямую от сети питается.
Скорость И2Ц меняется в настройках проекта, по крайней мере так было для DS1307 что использовал я.
Кварцы бывают разные, есть которые работают на первой гармонике, а есть которые работают на 3й и вот эти последние при определенных условиях могут запуститься на первой гармонике и реальная частота быдет ниже, естественно. Можно попробовать изменить номиналы конденсаторов.
У меня создалось такое ощущение что вы сами не пытаетесь решить свою проблему, по крайней мере вы не описываете никаких самостоятельных шагов, которые вы предприняли для этого. Чудес не бывает, искать проблему все равно придется самому, форум лишь может натолкнуть на решение, но для этого все таки надо потрудиться и дать по больше исходных данных и результатов самостоятельных действий, дать точную схему, в виде картинки, прикрепить файлы проекта и т.п. Помогите людям помочь вам.
Перезагрузка контроллера - это плохой признак, все ли земли соединены, стоят ли конденсаторы на питании, стоят ди блокирующие конденсаторы по питанию по 0,1мк около каждой микросхемы?
Вычислять операцию деления при помощи цикла - это не совсем хорошая идея, для этого придуманы математические операции деления, вычистение остатка от деления, умножение и т.п. И надо ли вообще работать с полным 16 битным числом? У вас вполне определенный диапазон от -85 до +125 градусов с точностью 2 градуса, т.е. можно вполне ограничиться всего 3мя цифрами с точностью до одного градуса.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
Kassiopay
сообщение Aug 14 2009, 14:35
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 12-06-09
Пользователь №: 50 227



Большое спасибо всем, разобрался...
У меня нестояло ниодного блокировочного кондесатора...
Откладывал на последок, думал у отлажу микросемыпотом...
Кейчас поаставил конденсаторов всё заработало нормально в LM-ка стала нормальные результаты выдавать 30 градусов от руки гдето до 32 нагреваеться...
и сбрасываться перестало и кварц заработал...
Никогда не думал что конденсаторы на питании сиграют такую роль...
Всем спасибо!!! rolleyes.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:02
Рейтинг@Mail.ru


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