Сообщение от Easyrider83
|
|
Почитайте эту тему. Мы там здорово нафлудили, но нужные вам библиотеки там имеются.
|
Спасибо, может слишком бегло прочитал но кажется что там дисскуссия касается полностью программно-реализованного алгоритма поиска (побитово: ЧитатьБит ЧитатьБит ВписатьБит), у мну малость другая ситуация,
DS2480B как посредник основную часть этого алгоритма осуществляет в железе и в этом некий плюс и некий минус. Минус в том что я вынужден верить документации, которая допускает двусмысленность по ключевым нюансам. Тоесть я не побитово а сразу 128бит вливаю в DS2480B - он отвечает 128-ю битами (64 пары чередующихся бит_адреса:бит_конфликта). И этот дальнейший поиск у меня никчему другому не приводит как к коллизии (в паре оба бита =1 это РАЗ, появляются изниоткуда новые конфликтные биты адресов хотя физически на шине никого нового не подключали - это ДВА). Программный алгоритм проще, описание можно найти в гугле по словам
Application Note 192 "Using the DS2480B Serial 1-Wire Line Driver". Причину в схеме как косяк с моей стороны тоже не могу предполагать - первая последовательность то (когда забиваю просто 128 нулей) работает исправно. Значит либо я алгоритм и/или предконфиг понимаю неправильно (99.9%) либо Search Accelerator не соответствует документации, всё прочее ещё более фантастично.
+ у мну не STM32 а гораздо более скудный вариант, поставленный условием, там много кода написать не выйдет. Мне сейчас даже не весь алгоритм актуален а вопрос построения 128битной последовательности, которая не вызовет коллизий и даст мне хотяб адрес №2