|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||||||||||||||||
LazerTAG. Связь нескольких МК по SPI20.09.2013, 00:34. Показов 6311. Ответов 33
Метки нет (Все метки)
добрый.
упрощенно задача выглядит следующе есть 3 микроконтролла, например ATMega8 их нужно соединить для передачи "слов" последовательно 1=>2=>3, то есть на прямую с 1 на 3 передать нельзя, только через 2! для передачи данных взял протокол SPI, вроде все логично закодил, но наверное чего то напутал с регистрами MK1 (мастер): Кликните здесь для просмотра всего текста
MK2 Кликните здесь для просмотра всего текста
MK3 Кликните здесь для просмотра всего текста
судя из результата в протеусе, данные с МК1 поступают на МК2 (выводятся на порт D) но как их теперь передать на МК3, непонятно в чем баг.
0
|
||||||||||||||||
| 20.09.2013, 00:34 | |
|
Ответы с готовыми решениями:
33
Связь AD7714 по SPI Связь двух контроллеров по SPI. Связь по SPI с низковольтным АЦП |
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||||||
| 20.09.2013, 09:57 [ТС] | ||||||
|
как то все смотрят, смотрят, но походу никто не в курсе.
в продолжение темы, на протеусе мне удалось это дело таки запустить поменяв местами 2 строчки в прошивке МК2 (при этом оно не должно было работать, но в эмуляторе заработало)
но понаблюдав за схемой, я понял что для моих задач этот протокол не перспективен (не зря везде пишут что мастер в системе только 1), так как в случае одновременной передачи с нескольких контролов поймать ошибку не получится, будем разбираться с I2S
0
|
||||||
| 20.09.2013, 13:55 | |
|
Не по теме: ...насчет перспектив, зачем вам городить на плате 3 МК? Одним ваши дела не сделаются? Причины: ножек мало, мощности? Это все решаемо гораздо проще организации связи по SPI, ПЛИС ставим и забываем. SPI выгоден при навесных платах над базовой - связи с индикаторами, модулем ввода-вывода.
0
|
|
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
|
| 20.09.2013, 14:50 [ТС] | |
|
raxp, вопрос по теме, тут скорее моя ошибка я не вкурил всех особенностей/возможностей SPI
опишу задачку детальней: будет несколько блоков, каждый из которых будет заниматься приемом,расшифровкой ИК сигнала и передачей далее данных то есть в теории на каждый такой блок нужен МК со свето датчиокм+... изначально я думал сделать "последовательное" соединение контролов, при котором МК поймавший сигнал передавал бы его следующему контролу, и так до тех пор пока не дойдем до главного обработчика, но понаблюдав понял что так как шина единая, и велика вероятность приема сигнала на несколько датчиков одновременно, то очень вероятен сбой передачи данных. подумал о смене протокола на I2S, но я при его разборе, так и не понял, передача там идет по внешнему прерыванию, или контрол постоянно мониторит шину. потом прикинул, а ведь по SPI передача возможно в 2 направления, тоесть возможна ситуация когда некий мастер будет опрашивать все датчики, а уже потом сбрасывать эти данные на главный обработчик. если есть пример кода в котором указано как настроить Slave на передачу данных на мастера, был бы благодарен + интересно ATMega8 поддерживает только стандартную распиновку MSIO-MSIO, MOSI-MOSI, или возможна последовательная распиновка при которой мастер подает одновременный сигнал на всем клиентам на SS а те в свою очередь передают данные друг другу, при этом распиновка MSIO-MOSI п.с. уважуха дочитавшим))
0
|
|
|
|
||
| 20.09.2013, 15:16 | ||
|
http://www.atmega8.ru/wiki/view/doc.26.html
0
|
||
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
|||
| 20.09.2013, 15:33 [ТС] | |||
|
коммерческие изделие по цене очень кусаются. а задача внешне решаема. Добавлено через 14 минут
0
|
|||
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||
| 20.09.2013, 16:55 [ТС] | ||
|
по поводу количества проводов, имхо от того что это будет 1 МК но с тем же количеством фотодатчиков шлейфов меньше не станет минусом моей идеи является относительно высокое энергопотребление, но на начальном этапе надо это заставить работать, а уже потом заниматься оптимизацией (когда руки заточатся)
0
|
||
|
|
||
| 20.09.2013, 17:07 | ||
|
Т.е. как не знаете, у вас фотодатчик - фотодиод/фототранзистор/фоторезистор/интегральный с встроенным фильтром, требующим питания? Подключен к одному из портов, работаем как с дискретным входом. Что мешает остальные датчики подключить к оставшимся пинам порта и считывать? Ничего не мешает.
0
|
||
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||
| 20.09.2013, 17:26 [ТС] | ||
|
если датчики будет подключены к пинам, то мне придется кодить анализатор для каждого пина, что с родни разработке "велосипеда" протокола. не очень хочется. или тут используется уже что то стандартное? Добавлено через 9 минут я тут про UART дочитался, тоесть насколько я Вас понял, передатчик по этому протоколу передает данные, приемник их ловит, но вот тут тот же вопрос, как настроить прием на несколько пинов, или можно сильно не париться, и повесить весь прием фотодатчиков на 1 пин?!
0
|
||
|
|
|||
| 20.09.2013, 17:51 | |||
Один на прерывание, второй на RX при задействовании UART. Логично бы все повесить на прерывание, но и обычный порт подойдет. А про велосипеды это вы зря.
0
|
|||
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||
| 20.09.2013, 20:58 [ТС] | ||
идею в том что несколько датчиков в любой момент если и ловят сигнал то 1 и тот же, и возможно что без сильного сдвига по времени. а значит в теории их можно посылать на единый пин RX?
0
|
||
|
|
|
| 20.09.2013, 21:09 | |
|
...не совсем понятно, что вы имеете ввиду. В моем понимании, датчики расположены на разных топологически частях тела реципиента (голове там, спине, животу, мягкой части
) и засветка может прийти тоже с разных мест и в разное время, но ведь может и в одной точке и даже от разных противников. Как отличить, что "выстрел" пошел по спине, а не животу, если сигнал пойдет на один и тот же порт? Таки нужны разные.
0
|
|
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||
| 20.09.2013, 21:30 [ТС] | ||
|
тоесть предположительно это 3 датчика насположенные по "экватору" головы) и очень мало вероятно что в 1го человека в 1 миг будет более 1 попадания (надеюсь)).
0
|
||
|
|
|
| 20.09.2013, 21:37 | |
|
...ну, на самом-то деле, если на голове несколько датчиков и попадание в любой из них считается за "попадание в голову", то их по сути можно параллелить, а значит для МК это будет один датчик и один порт. То, что могут прийти с разных засветок в голову разные сигналы в один момент времени является коллизией в этом случае.
1
|
|
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
|
| 20.09.2013, 22:00 [ТС] | |
|
raxp, может подскажите что гуглить если для ИК приемника например заюзать TSOP22..., то что можно для передатчика?
0
|
|
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
||
| 20.09.2013, 22:29 [ТС] | ||
|
вопрос, а можно ли при использовании aTMega8 обойтись ее штатным модулятором частоты, или все же стоит разориться и на кварц для модуляции ИК сигнала?
0
|
||
|
1 / 1 / 0
Регистрация: 21.06.2013
Сообщений: 26
|
|
| 21.09.2013, 10:13 [ТС] | |
|
а может знаете, чем можно в протеусе эмулировать связку фотоизлучателя и фотодатчика (TSOP2256), для максимально близкой эмуляции
в протеусе нашел оптокупер или Оптрон (PC817) но это не полная эмуляция, так как в TSOP2256 фотодатчике вшита пачка встроенных микроэлементов.
0
|
|
| 21.09.2013, 10:13 | |
|
Помогаю со студенческими работами здесь
20
Связь ATTiny2313 с термодатчиком по SPI интерфейсу STM32F4-Discovery (Keil). Связь по USART и SPI Подскажите "секрет" подключения нескольких SPI устройств SD Card в режиме SPI, проблема с записью нескольких блоков Связь нескольких сущностей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|