mic320 0 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба Всем Доброго времени суток! Нужна помощь в реализации обмена с датчиком температуры DS18B20 без использования конструкций типа: while (480 мкс) {ничего не делать}; есть таймер, двунаправленный порт с открытым коллектором, контроллер прерываний и проц 51 с тактовой 32 Мгц. Вопрос: что со всем этим делать)))? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 3 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба а UARTа лишнего нет ? А то можно и на нем eng rus Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба http://we.easyelectronics.ru/STM32/stm32-1-wire-dma.html ..вот тут борются с 1wire c помощью USARTa . Соответственно никаких задержек нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба ..вот тут борются с 1wire c помощью USARTa . Соответственно никаких задержек нет. Это для формирования тайм-слота. А вопрос был про пресенс импульс. Хотя с ним как раз проблем нет, допуски достаточно большие. Можно тупо поллить флаг таймера в основном цикле Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба есть таймер... Вопрос: что со всем этим делать)))? Если в лоб - конечный автомат в прерывании таймера. Альтернативы - УАПП + конечный автомат в прерывании, УАПП + ПДП, SPI + конечный автомат в прерывании, SPI + ПДП или таймер + ПДП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mic320 0 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба Если в лоб - конечный автомат в прерывании таймера. Альтернативы - УАПП + конечный автомат в прерывании, УАПП + ПДП, SPI + конечный автомат в прерывании, SPI + ПДП или таймер + ПДП. таймер+ПДП очень итересно! подробнее можно? вариант с УАПП и СПИ не очень, требует аппаратной реализации 1-wire. хотелось обойтись 1-м выводом SOC. Это для формирования тайм-слота. А вопрос был про пресенс импульс. Хотя с ним как раз проблем нет, допуски достаточно большие. Можно тупо поллить флаг таймера в основном цикле проблема как раз в словах "цикле" система заодно выполняет z-stack, так что никаких циклов опроса флага таймера! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба таймер+ПДП очень итересно! подробнее можно?Также, как по ссылке Lmx2315, только выводимые отсчеты при помощи одного канала DMA выводятся не в УАПП, а в порт по сигналам таймера и вторым каналом DMA считываются обратно не с УАПП, а с этого порта в память. После окончания обмена анализ считанных отсчетов. У x51 вроде была отраженная на порты бит-адресуемая область памяти? На 48 МГц STM32 я делал подобным образом через ноги трех портов одновременный ввод и вывод нескольких каналов ARINC-429 на 100 кБит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба это еще надо чтобы ДМА было, а то у МК на 51 ядре обычно не так богато с периферией как у stm32. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mic320 0 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба это еще надо чтобы ДМА было, а то у МК на 51 ядре обычно не так богато с периферией как у stm32. ДМА есть штук 5 и таймеров 3. это CC2530 Также, как по ссылке Lmx2315, только выводимые отсчеты при помощи одного канала DMA выводятся не в УАПП, а в порт по сигналам таймера и вторым каналом DMA считываются обратно не с УАПП, а с этого порта в память. После окончания обмена анализ считанных отсчетов. У x51 вроде была отраженная на порты бит-адресуемая область памяти? На 48 МГц STM32 я делал подобным образом через ноги трех портов одновременный ввод и вывод нескольких каналов ARINC-429 на 100 кБит. Спасибо, попробую разобраться как это происходит и где менять режимы таймера посоветуете? Там есть возможность подключить к порту выход таймера и менять счетчик по ПДП, также есть режим захвата у таймера. можно переключать. только как определять моменты переключений??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 17 декабря, 2014 Опубликовано 17 декабря, 2014 · Жалоба Там есть возможность подключить к порту выход таймера и менять счетчик по ПДП, также есть режим захвата у таймера. можно переключать. только как определять моменты переключений???Такой вариант думайте сами. Я предлагал несколько другое - забиваем в память массив 111100111100..... и выдаем его в порт по таймеру, одновременно читая порт обратно в массив. В конце получим что-то вроде 111100110000... и из этого находим, что датчик отвечал нулем во втором бите. Как-то так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 18 декабря, 2014 Опубликовано 18 декабря, 2014 · Жалоба ...51 с тактовой 32 Мгц.Вопрос: что со всем этим делать)))? программировать, что же ещё то? Отлично работает на 51 тактовая 24, внутренняя 2мГц. куча датчиков 1wire (практически ограничение - кол-во ног), сканирование менее секунды, по всем датчикам. ногодрыг. отдельный таймер. конечный автомат с загрузкой адресса перехода при отработке. если сильно присмотритесь к протоколу - то увидите что точность тайм-аута необходимо выдержать только между синхро импульсом начала слота на чтении и записи. всё остальное настолько большие интервалы для ваших частот - что без проблем, вместе с ослинными ушами прячется любой слон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mic320 0 18 декабря, 2014 Опубликовано 18 декабря, 2014 · Жалоба программировать, что же ещё то? Отлично работает на 51 тактовая 24, внутренняя 2мГц. куча датчиков 1wire (практически ограничение - кол-во ног), сканирование менее секунды, по всем датчикам. ногодрыг. отдельный таймер. конечный автомат с загрузкой адресса перехода при отработке. если сильно присмотритесь к протоколу - то увидите что точность тайм-аута необходимо выдержать только между синхро импульсом начала слота на чтении и записи. всё остальное настолько большие интервалы для ваших частот - что без проблем, вместе с ослинными ушами прячется любой слон. слон прячется - носорог вылазит. весь обмен с датчиком нужно запихивать в прерывание или ПДП. по ПДП не очень понятно как дергать одной ногой, а не всеми (порт 8 ног в разном состоянии вход-выход) конечный автомат в прерывании по таймеру для меня пока сложноосмысливаемая штука... таймслот стека 320 мкс короче одного сброса датчика - 480. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 18 декабря, 2014 Опубликовано 18 декабря, 2014 · Жалоба ... по ПДП не очень понятно как дергать одной ногой, а не всеми (порт 8 ног в разном состоянии вход-выход)...таймслот стека 320 мкс 1) пдп вроде как должен настраиваться по ножкам конкретно (какие выводятся). согласитесь - пдп с выводом в порт не имел бы смысла, если бы не имел селективность по конкретным пинам. далее - думаю надо смотреть конкретный МК и конкретные примеры счупать. 2) тайм слот (тот который критичен) это между строб импульс при формировании одного бита. эти величины около 2-6 мкс. Что при указанных скоростях можно поддержать без труда. а 320 или там 480мс - то уже не принципиальные тайм ауты. т.е. плюс-минус пару десятков микросекунд - Вас никто не расстреляет. поверьте дураку. дальше рекомендую вкуривать мануалы по 1Wire и построить рыпку пример для более уверенного понимания нижнего уровня. Только финально тестируйте на длинных кабелях > 20 метров. тайм-ауты выпрямите получше. с осцилом завалы видны хорошо в линии. так-же рекомендую потестировать с помощью рашпель-метода постановки помех. так-же софт отшлифуете. в боевом варианте у вас потом будет как танк по пром зонам и на десятки метров... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mic320 0 18 декабря, 2014 Опубликовано 18 декабря, 2014 · Жалоба 1) пдп вроде как должен настраиваться по ножкам конкретно (какие выводятся). согласитесь - пдп с выводом в порт не имел бы смысла, если бы не имел селективность по конкретным пинам. далее - думаю надо смотреть конкретный МК и конкретные примеры счупать. 2) тайм слот (тот который критичен) это между строб импульс при формировании одного бита. эти величины около 2-6 мкс. Что при указанных скоростях можно поддержать без труда. а 320 или там 480мс - то уже не принципиальные тайм ауты. т.е. плюс-минус пару десятков микросекунд - Вас никто не расстреляет. поверьте дураку. дальше рекомендую вкуривать мануалы по 1Wire и построить рыпку пример для более уверенного понимания нижнего уровня. Только финально тестируйте на длинных кабелях > 20 метров. тайм-ауты выпрямите получше. с осцилом завалы видны хорошо в линии. так-же рекомендую потестировать с помощью рашпель-метода постановки помех. так-же софт отшлифуете. в боевом варианте у вас потом будет как танк по пром зонам и на десятки метров... длинные линии, помехи, осциллографы как для человека с радиотехническим образованием (меня) совершенно родные вещи, а датчик планируется для измеренияя температуры в домике в деревне как внутри так и снаружи, по результатам управляем теплым полом и электроотоплением (зима на дворе). максимальная длина шлейфа датчиков - метра полтора. остальное принял к исполнению.. изучаю нижний уровень. спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 мая, 2015 Опубликовано 11 мая, 2015 · Жалоба Ребята! Нигде не могу найти информацию об очередности передачи бит. Старшими вперед или младшими идет передача\прием? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться