Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 13.11.2011, 15:25  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от Easyrider83 Посмотреть сообщение
Если возвращает два одинаковых - значит ошибка.
А в каком случае он может возвратить два одинаковых, вот что я имел ввиду? Или на эти ошибки можно не обращать внимания?
Реклама:
CMaxx22 вне форума  
Непрочитано 13.11.2011, 15:44  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от CMaxx22 Посмотреть сообщение
А в каком случае он может возвратить два одинаковых, вот что я имел ввиду?
Ну теоретически на ум приходит две причины - физические ошибки передачи (шумная линия, слабая подтяжка, не точно подобраны временные интервалы).
Только что опробовал симмуляцию в протеусе с восемью датчиками. Сейчас красиво оформлю и пришлю для ознакомления.
Сообщение от CMaxx22 Посмотреть сообщение
Или на эти ошибки можно не обращать внимания?
Ни в коем случае. Это критические ошибки. По ним мы собственно и будем диагностировать шину на стабильность.

Последний раз редактировалось Easyrider83; 13.11.2011 в 15:49.
Easyrider83 вне форума  
Непрочитано 13.11.2011, 16:32  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Ну вот. Я загнан в тупик. Ошибка аналогичная. Что-то процедура делает не так, как надо. Я слегка простудился и голова варит с трудом. Может быть из общественности кто поможет.
Удивительно то, что пример лабцентра C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for AVR\One-Wire\NETWORK ничем не отличается от того, что делаем мы. Только у них работает, а у нас нет )))
Думаю, проблема во временных интервалах. Будем думать.
Вложения:
Тип файла: rar LPC2101+1-Wire.rar (152.7 Кб, 65 просмотров)

Последний раз редактировалось Easyrider83; 13.11.2011 в 17:03.
Easyrider83 вне форума  
Непрочитано 13.11.2011, 18:56  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

А я уже спаял всё в один кусок чтобы исключить возможность шумной шины Всё равно показывает 3 ошибки. У вас такаяже неполадка, показывает ошибки на шине?
Вот пытаюсь вкуриться в это:
Цитата:
Микроконтроллер выполняет инициализацию 1-Wire устройств и посылает команду SEARCH ROM, которая инициирует цикл чтения 64 разрядного кода. Затем он формирует на 1-Wire шине два тайм слота чтения, в течение которых датчики DS18B20 должны выдать первый бит своего адреса и его инвертированное значение.
Если испускаемый бит адреса у всех датчиков один и тот же, например, единица, тогда в первый тайм слот микроконтроллер примет единицу, а во второй ноль.
Если испускаемый бит адреса у одного или нескольких датчиков отличается, например, у первого датчика бит – единица, у второго – ноль, тогда в оба тайм слота микроконтроллер примет ноль. Почему? Потому что датчики подключены к шине по схеме монтажного И, а значит логический ноль «перетянет» логические единицы.
Если на шине активных устройств нет - микроконтроллер в оба тайм слота примет единицу.
В ситуации, когда микроконтроллер принимает два нуля, возникает неоднозначность – непонятно у каких датчиков DS18B20 преданный бит адреса ноль, а у каких единица. Чтобы устранить эту неоднозначность микроконтроллер должен ответить датчикам, с какими из них он будет продолжать работу. Для этого он выставляет на шине соответствующий бит — ноль или единицу.
Эти 3 ошибки случайно не те самые неоднозначности?
CMaxx22 вне форума  
Непрочитано 13.11.2011, 20:12  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Да похоже на то. Вы совершенно правы. У меня поднялась температура я и уже совсем плохо соображаю. Так что попробуйте сами исправить процедуру. Я приду на помощь, когда немного полегчает.
Easyrider83 вне форума  
Непрочитано 13.11.2011, 21:48  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Хорошо я попробую. Выздоравливайте!
CMaxx22 вне форума  
Непрочитано 13.11.2011, 23:14  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Сообщение от Easyrider83 Посмотреть сообщение
Думаю, проблема во временных интервалах. Будем думать.
Откуда там проблеммы? Пишется по даташиту и всё работает. А шумы откуда. У вас что там.. километровые линии? ... с 20 датчиками на линии поиск работает до 50 метров устойчиво.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 13.11.2011 в 23:16.
picavr вне форума  
Непрочитано 13.11.2011, 23:53  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

picavr, я знаю все это. Ошибка в работе функции unsigned int DS1822_Search_Rom (unsigned long PIN, char sens_num)
Пока не могу догнать, как исправить.
Easyrider83 вне форума  
Непрочитано 14.11.2011, 10:21  
CMaxx22
Временная регистрация
 
Регистрация: 04.01.2008
Сообщений: 93
Сказал спасибо: 19
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
CMaxx22 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

Не могу раскурить. Плохо тянется. Вот функция поиска адреса которая тоже возвращает неоднозначность:
Цитата:
unsigned char OWI_SearchRom(unsigned char * bitPattern, unsigned char lastDeviation, unsigned char pin)
{
unsigned char currentBit = 1;
unsigned char newDeviation = 0;
unsigned char bitMask = 0x01;
unsigned char bitA;
unsigned char bitB;

// Send SEARCH ROM command on the bus.
OWI_SendByte(OWI_ROM_SEARCH, pin);

// Walk through all 64 bits.
while (currentBit ‹= 64)
{
// Read bit from bus twice.
bitA = OWI_ReadBit(pin);
bitB = OWI_ReadBit(pin);

if (bitA && bitB)
{
// Both bits 1 (Error).
newDeviation = OWI_ROM_SEARCH_FAILED;
return SEARCH_ERROR;
}
else if (bitA ^ bitB)
{
// Bits A and B are different. All devices have the same bit here.
// Set the bit in bitPattern to this value.
if (bitA)
{
(*bitPattern) |= bitMask;
}
else
{
(*bitPattern) &= ~bitMask;
}
}
else // Both bits 0
{
// If this is where a choice was made the last time,
// a '1' bit is selected this time.
if (currentBit == lastDeviation)
{
(*bitPattern) |= bitMask;
}
// For the rest of the id, '0' bits are selected when
// discrepancies occur.
else if (currentBit › lastDeviation)
{
(*bitPattern) &= ~bitMask;
newDeviation = currentBit;
}
// If current bit in bit pattern = 0, then this is
// out new deviation.
else if ( !(*bitPattern & bitMask))
{
newDeviation = currentBit;
}
// IF the bit is already 1, do nothing.
else
{

}
}


// Send the selected bit to the bus.
if ((*bitPattern) & bitMask)
{
OWI_WriteBit1(pin);
}
else
{
OWI_WriteBit0(pin);
}

// Increment current bit.
currentBit++;

// Adjust bitMask and bitPattern pointer.
bitMask ‹‹= 1;
if (!bitMask)
{
bitMask = 0x01;
bitPattern++;
}
}
return newDeviation;
}
Как видно она поболее нашей В основном изза комментов.

А эта по идее должна обрабатывать неоднозначности и заносить проверенные номера в массив:
Цитата:
unsigned char OWI_SearchDevices(OWI_device * devices, unsigned char numDevices, unsigned char pin, unsigned char *num)
{
unsigned char i, j;
unsigned char * newID;
unsigned char * currentID;
unsigned char lastDeviation;
unsigned char numFoundDevices;
unsigned char flag = SEARCH_SUCCESSFUL;

//сбрасываем адреса 1Wire устройств
for (i = 0; i ‹ numDevices; i++)
{
for (j = 0; j ‹ 8; j++)
{
devices[i].id[j] = 0x00;
}
}

numFoundDevices = 0;
newID = devices[0].id;
lastDeviation = 0;
currentID = newID;

do
{
memcpy(newID, currentID, ;
if (!OWI_DetectPresence(pin)){
return SEARCH_ERROR;
};
lastDeviation = OWI_SearchRom(newID, lastDeviation, pin);
currentID = newID;
numFoundDevices++;
newID=devices[numFoundDevices].id;
} while(lastDeviation != OWI_ROM_SEARCH_FINISHED);


// Go through all the devices and do CRC check.
for (i = 0; i ‹ numFoundDevices; i++)
{
// If any id has a crc error, return error.
if(OWI_CheckRomCRC(devices[i].id) != OWI_CRC_OK)
{
flag = SEARCH_CRC_ERROR;
}
else
{
(*num)++;
}
}
// Else, return Successful.
return flag;
}
Не хватает мозга перенести это в проект. Похоже нужно писать ещё одну процедуру для обработки неоднозначностей...
CMaxx22 вне форума  
Непрочитано 19.11.2011, 15:30  
AVK74
Вид на жительство
 
Регистрация: 15.03.2005
Сообщений: 381
Сказал спасибо: 11
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
AVK74 на пути к лучшему
По умолчанию Re: Отладочные платы для STM32

А что общественность думает о такой http://www.ebay.com/itm/ARM-NXP-LPC1...item1c16b91fd6 плате?
Я так понял отладчик в нее уже встроен и jlink не нужен для нее?
AVK74 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Технология изготовления печатной платы Tungus55 Делимся опытом 1165 06.01.2017 19:19
Книги dosikus Делимся опытом 11242 29.12.2015 23:45
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


Часовой пояс GMT +4, время: 13:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot