Страница 4 из 5
Добавлено: Вт июл 07, 2009 07:49:07
urry
добавьте таймаут на время приема, иначе при сбое обмена выйти можно будет только по 3 клавишам.
Код: Выделить всё
COMMTIMEOUTS rCommTimeouts;
rCommTimeouts.ReadTotalTimeoutConstant =4000; // 4000 миллисекунд
rCommTimeouts.ReadTotalTimeoutMultiplier = 1;
port.SetTimeouts(rCommTimeouts);
if( port.Read(rBuf,4)!=4) // количество принятых байт (4) за время Timeout
//не соответствует ожидаемому
{
port.Close();
MessageBox("Контроллер не подключен !","Ответ отсутствует или искажен!",MB_OK);
Re: Сколько DS18B20 может обслужить Atmega16
Добавлено: Вт июл 07, 2009 21:08:02
Yellow Tiger
lkote68 писал(а):Да уже все работает ...
Ну и отлично.

Сколько DS18B20 может обслужить Atmega16
Добавлено: Чт июл 23, 2009 12:15:07
lkote68
Тигра помоги разобраться с оценкой свободной памяти. В приложении скриншот билдинга проекта.
Вопрос:
1.что за data stack и как вычислился его размер?
2. Зона глобальных переменных 500байт
у меня всего то их
char PLC_Id[] = "PLC_N02";
char Num[3];
char buff[20];
signed char Values[70];
unsigned char LanN,pockcnt,k,Mode,DevLan_0,DevLan_1,DevLan_2,DevLan_3,DevLan_4,DevLan_5,DevLan_6,DevLan_7;
#define RX_BUFFER_SIZE 20
char rx_buffer[RX_BUFFER_SIZE];
unsigned char rx_wr_index,rx_rd_index,rx_counter;
ну никак не 500байт
и насчет Hardware stack Ну пусть какие то настройки но не на 260байт
Re: Сколько DS18B20 может обслужить Atmega16
Добавлено: Чт июл 23, 2009 17:50:12
Yellow Tiger
lkote68 писал(а):1.что за data stack и как вычислился его размер?
2. Зона глобальных переменных 500байт ... у меня всего то их ... ну никак не 500байт
Да тут не сами переменные упомянуты - тут сегменты под них указаны, с размерами. Вот, глянь сюда и узнаешь "те же лица":

Узнаешь "
брата Колю"?
Надо тебе прочитать в хэлпе "Setting the C Compiler Options" и "memory models" (в разделе про опции есть ссылка на статью про модели памяти). Там не супер-подробно, но-таки - да... есть.

Сколько DS18B20 может обслужить Atmega16
Добавлено: Вт сен 29, 2009 12:50:58
lkote68
Уважаемые коты И снова здрасьте Не прошло много времени как моя разработка начала чихать Все было хорошо пока на датчиках было в районе 50 градусов. А после 76 взбрык. Я еще точно не разобрался но виню пулап ключ подтягивающий сеть датчиков во время зарядки.
И того сбоят у меня две линии длина которых самая большая и самые горячие. Пулап у меня собран по схеме данной в приложении. Может кто то что то умное скажет по этому поводу. Особо надеюсь на советы ТигроКота. В моей схеме по идее напряжение в момент подтяжки микролана не бывает больше (Uвых линии контроллера - 1.4в). Хотелось бы поднять напругу. А вообще то по уму бы поставить полевик. Да не силен

Добавлено: Вт сен 29, 2009 15:31:31
clawham
у меня такое же было....3 датчика...только один из них на компрессор поставил как всё умерло - это слабый выход у микроконтроллера.....поставил резюк не килоом а пол кила - всё снова заработало
Сколько DS18B20 может обслужить Atmega16
Добавлено: Вт сен 29, 2009 15:54:07
lkote68
У меня резюком ниче не добьешься До входа в банку метров 7-8 и подвеска 16 Тута только пулап нужен
Добавлено: Вт сен 29, 2009 16:45:35
clawham
дак эт я к тому что именно пуллапа не хватает...видать транзюки встроенные утечку давать начинают на высокой температуре....ессесmyf круто было б провести ещё один провод к банке и там посреди линии поставить стабилизатор на 5 вольт кренку, ну и подавать на неё +12 с микроконтроллера каким-нить ключем
Re: Сколько DS18B20 может обслужить Atmega16
Добавлено: Вт сен 29, 2009 21:22:05
Yellow Tiger
lkote68 писал(а):До входа в банку метров 7-8 и подвеска 16 Тута только пулап нужен
24 метра, в общем-то, еще не слишком много, но погонная емкость ведь зависит от кабеля. В общем, почитай еще разок апнот 148 - если с емкостью всё нормально, то можно пуллап уменьшить до 1к (бывает и меньше), а если нет, то, действительно, придется думать об активных промежуточных устройствах на линии. Сравни осциллографом фронты на выходе м/к и в конце линии - сильно ли исказились?
Схему я как-то не очень внятно представил; там, что - резистор шунтирует составной транзистор? И почему это всё упирается не в землю, а в C0?

Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 09:31:13
lkote68
Смотри Тигра я вложил кусок из даташита у меня по сути то же самое.
в землю оно и не должно упираться. По одной линии опрашиваются данные и она подтянута резистором и этого хватает для того что бы прочесть адреса. Для считывания температуры на эту же линию вешается ключ и после команды 44H (начать преобразование) подаю туда питание. И система работала 3 месяца, а потом с подъемом температуры дык. Но дык какой то странный вообще то (глючат линии 1и2) отключаешь все остальные линии кроме 1 все работает только цепляешь вторую происходит какой то дык. и уже эти две линии показывют то ли одни адреса то ли второй линни вообще не видно.
Сделали адаптер, я написал прогу для компа вроде видит эти линии по отдельности. А осцила у меня нет, да и что он даст ты ж на нем ничего толком не увидишь сигналы то не периодические. А такого чтоб с запоминанием ну это для нас сильно круто будет.
Добавлено: Ср сен 30, 2009 11:54:57
clawham
ещё раз отвечаю на ваш вопрос - не хватает питания! проседает линия или ключ слабый или источник не 5 выдаёт а 4.8
ну или банальный ВЧ "звон" в проводах - когда "повезло" и длина кабеля = длине волны в кабеле

но эт редкость
попробуйте резюк на 500 ом поставить
Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 11:59:06
lkote68
Вот сейчас ребята подкинули новые две подвески и все на том же расстоянии работает но не в банке те температура градусов 30 Завтра кинут в банку, потом банку заполнят вот и глянем в чем баг.
И мысль подкинуть диод под кренку те поднять на 0,7в у меня была сегодня утром. Но надо глянуть пределы на Atmega16 ST485 и 6N136 чтоб не перебрать. Вот щас померял на выходе кренки 4,99
Добавлено: Ср сен 30, 2009 12:21:36
clawham
вопрос 2
а вы уверены что транзюк сажающий линию на землю способен до земли эту линию дотянуть? какой там транзик? сколько у него сопротивление в открытом виде?
это раз
второе..а почему 815 транзюк? он-то открывается током между эммитером и базой....а какой же будет ток если эммитер в принципе-то в воздухе висит?
надо 817 брать чтоб его эммитер на + сидел а коллектором он подтягивал линию конечно применение 315 для усиления выхода мк очень правильное эти (815-817) транзюки имеют всего 18 коэф усиления по току....
в общемкогда нужно активировать пулап тащите на землю базу 817 транза который эммитером на+ сидит а коллектор подтяните килоомом на землю...так правильнее будет...
Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 12:26:45
lkote68
Может я не совсем что то разъяснил Транзюк подтягивает не к земле а к +5В. Глянь в редыдущем посте кусок из даташита. А транс там стоит составной 315+815 Знаю бага в том что я поставил его как эмитерный повторитель Нуна бы поменять схему включения Но и платы уже протравлены.....
Добавлено: Ср сен 30, 2009 12:29:27
clawham
у вас должно быть 3 транзюка учавствующих в этой шине - одним вы делаете сброс и передаете в линию 0, вторым ты поднимаете в процессе передачи линию в +5 чтоб передать 1 и третий мощный транзюк обеспечивает мощную подтяжку на время преобразования температуры всеми приборами на линии
Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 12:36:56
lkote68
Три совершенно излишне. Посмотрите даташит в предыдушем посте.
Даже при реализации всего на транзисторах их нужно 2. Смотри приложение
Добавлено: Ср сен 30, 2009 12:46:08
clawham
вы имеете ввиду то что ножка МК работает без транзисторов?
Я говорю применительно к нашему случаю....
транзюк в МК который тянет ножку в землю имеет сопротивление 33 ома(примерно для АтМега 8-16-32) такой же но примерно 40 ом - на питание....они слабые...пожтому им нужно помогать внешними ключами....хотя бы ещё одним(третим) внешним подтягивающим на +5
Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 12:49:36
lkote68
Но даташит то чего то стоит. Раз там написано пером что вполне хватит только подтягивающего к +5в значит не вырубишь топором. Посмотрите мои вложения.
Добавлено: Ср сен 30, 2009 12:59:47
clawham
если у вас всё по даташиту и всё сделано нормально то оно и рабоатет а раз оно не работает то я вам говорю почему может не работать!!! у меня была подобная ситуация....вложение что вы прикрепили больше напоминает выходную цепь ножки МК

разница только в мощности ключей...+ в том же даташите черным по белому написано что еслю юзать термометры с паразитным питанием - надо ЕЩЁ ОДИН жестко подтягивающий на + питания шину транзюк!
так что я больше и не знаю что сказать - у меня была именно такая проблема - 4 термометра работали нормально но как только один поставил на компрессор сразу выяснилось что при температуре больше 60 начинаются проблемы - встроенный транзюк в термометре начинает подмыкать линию на массу....следовательно её надо сильнее на + поднимать вот и всё! и у меня это решилось просто резюком на 500 ом шину на +5 внешних транзюков у меня вообще нет...только те хилые что в мк ножку дергают - мне их хватает
Сколько DS18B20 может обслужить Atmega16
Добавлено: Ср сен 30, 2009 13:30:03
lkote68
Сделано почти по даташиту. Там полевик надо. Я поставил составной.
Потому что с полевиками не на Вы но все же почти никогда не пользовался. Сейчас понимаю что нужно бы перевернуть тразистор коллектором а не делать эмитерный повторитель.Он же мне еще 1.4в съедает. Специфика проекта в том что нет не осцилографа чтоб глянуть ни толком времени. Сделал увидели что до 60гр работает заказали плат. Я им грю надо бы поэкспериментировать.-А че экспериментировать 3 месяца работает Значит все ок. На кружке 82гр проверили все типа Ок А когда вот 10 датчиков выше 75 посыпались глюки.
Мне бы переделать на полевик вот и собираю сведения Потому что в даташите толком не указано.