Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.09.2008, 16:51
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Помехозащищённость SPI
Помогите советом! Собираюсь связать 8 устройств на Меге16 по интерфейсу SPI. UART-ы все заняты, остановился на SPI. Так вот, в этой куче устройств один мастер, остальные слейвы. Мастер при инициализации раздаёт всем адреса(адресация ведётся по дополнительным линиям), а потом по ним обращается к конкретному устройству. Вопрос, как на счёт помехозащищённости SPI, если от мастера до последнего слейва длина линии связи не превышает 1-го метра?
Заранее благодарен!
|
|
|
|
26.09.2008, 17:02
|
|
Прописка
Регистрация: 23.03.2008
Сообщений: 121
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
С помехозащищенностью - никак, это сугубо межмикросхемный одноплатный интерфейс. Если стоит задача бороться с помехами - общие рекомендации типа RC-цепочек, и то, еслди импульсы заваливать не будут
|
|
|
|
26.09.2008, 17:16
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Если с SPI никак, можно ли организовать програмный UART, кто-то такое тварил, или это не реально?
|
|
|
|
28.09.2008, 09:02
|
|
Прописка
Регистрация: 10.04.2008
Адрес: Тольятти
Сообщений: 241
Сказал спасибо: 1,414
Сказали Спасибо 83 раз(а) в 39 сообщении(ях)
|
Сообщение от Chudilo
|
Если с SPI никак, можно ли организовать програмный UART, кто-то такое тварил, или это не реально?
|
Программный UART не спасет, если не использовать драйверы (приемопередатчики) с 12-вольтовыми уровнями типа MAX232/ST232. Я бы не стал заморачиваться с программным UART-ом, а просто повысил бы помехозащищенность SPI - поставил бы те же ST232 или дифференциальные ST75176 (драйверы RS-485). Но это если все линии по схеме однонаправленные, т.е. мастер всегда один и постоянный.
|
|
|
|
28.09.2008, 09:21
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Если на физическом уровне, помехозащищенность слабая, кто(что) мешает поднять ее на уровне протокола? Правда это несколько снижает скорость обмена
Удачи!
__________________
Я, думаю, нужно подумать...
|
|
|
|
29.09.2008, 12:40
|
|
Вид на жительство
Регистрация: 22.05.2006
Сообщений: 301
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 26 сообщении(ях)
|
Зачем, что то придумывать изобретать, уже все придумали до нас. Проще чем RS485 ничего нет. Если вам не нужна опторазвязка ставите на каждый контроллер по AD485 и можно по трем проводам объединить до 16 контроллеров.
И все проблемы решены. А дальше делаете один контроллер мастером, а остальные ведомыми. По моему проще и надежнее не бывает.
|
|
|
|
29.09.2008, 13:12
|
|
Прописка
Регистрация: 23.03.2008
Сообщений: 121
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Действительно, проще не бывает
при цене в пару баксов такой вариант самый надежный будет. А подключить можно до 32 устройств
|
|
|
|
29.09.2008, 15:54
|
|
Вид на жительство
Регистрация: 22.05.2006
Сообщений: 301
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 26 сообщении(ях)
|
Re: Действительно, проще не бывает
Сообщение от Churchill
|
при цене в пару баксов такой вариант самый надежный будет. А подключить можно до 32 устройств
|
Это зависит от типа микросхемы поэтому надо смотреть datasheet дабы не промахнуться.
|
|
|
|
29.09.2008, 19:20
|
|
Временная регистрация
Регистрация: 18.05.2007
Сообщений: 60
Сказал спасибо: 14
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от amito66
|
Сообщение от Chudilo
|
Если с SPI никак, можно ли организовать програмный UART, кто-то такое тварил, или это не реально?
|
Программный UART не спасет, если не использовать драйверы (приемопередатчики) с 12-вольтовыми уровнями типа MAX232/ST232. Я бы не стал заморачиваться с программным UART-ом, а просто повысил бы помехозащищенность SPI - поставил бы те же ST232 или дифференциальные ST75176 (драйверы RS-485). Но это если все линии по схеме однонаправленные, т.е. мастер всегда один и постоянный.
|
Мастер один, но он даёт Слейву высказаться, т.е. на какое-то время сам становится Слейвом.
Сообщение от strnikol
|
Зачем, что то придумывать изобретать, уже все придумали до нас. Проще чем RS485 ничего нет. Если вам не нужна опторазвязка ставите на каждый контроллер по AD485 и можно по трем проводам объединить до 16 контроллеров.
И все проблемы решены. А дальше делаете один контроллер мастером, а остальные ведомыми. По моему проще и надежнее не бывает.
|
RS485 хороший интерфейс, но я упоминал, что все UART-ы заняты и они, кстати, обслуживают свою сеть RS485. Эти сети в одну объединить никак нелзя, вот и возникла проблемка.
Буду делать так: на занятый UART каждого Слейва (и Мастера тоже)ставлю коммутатор, который будет делать активным только одну из 2-х микросхем драйвета RS485. Один из драйверов RS485 объединяет все Слейвы и Мастер в одну сеть, другой драйвер обслуживает свою локальную сеть 485. И вот, когда мне нужно обратиться к какому-либо слейву, я делаю активной сеть 485, объединяющей все Слейвы и Мастер, путём подачи на линию NetSelect активного уровня. Линия NetSelect объединяет входы прерываний микроконтроллера Int0 в каждом Слейве и выход управления Мастера. При появлении прерывания слейвы будут включать сеть Мастер-Слейв и общаться с Мастером. После общения Слейвы включают свою локальную сеть 485 и общаются со своими устройствами.
Думаю, сработает.
И, спасибо всем
|
|
|
|
29.09.2008, 20:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Не хочу говорить "та крыша выше всех" ![Валяюсь от смеха](images/smilies/icon_biggrin.gif) Просто посмотрите на CAN BUS. В начале вероятно испугает, да для создания сети из микроконтроллеров ИМХО очень удобная. Не так ![Дьявольски зол](images/smilies/icon_twisted.gif) страшен. Помехозащищеность обеспечивается 16 битным аппаратным CRC. Мастера нет, каждый узел следит за сетью, если приоритет позволяет занимет шину и шлет свое сообщение. Арбитраж аппаратный. Сеть почти реального времени. По идее нагрузочная способность приемо-передатчиков допускает сеть из 100 утройств. Если мало, думаю можно сварганить двухнаправленный усилитель. По крайней мере в симуляции работает, на деле не проверял. Плохо и остальное не проверял, дошел до сети из 5 узлов ![Бьюсь об стену](images/smilies/icon_obstenu.gif) На листе фанеры ![Смешно](images/smilies/icon_lol.gif) Другие задачи жмут
Удачи!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
протокол SPI
|
dimonbest |
Микроконтроллеры, АЦП, память и т.д |
61 |
28.11.2007 19:59 |
Баг SPI
|
ruscad |
Микроконтроллеры, АЦП, память и т.д |
1 |
12.10.2007 22:58 |
Вопрос по SPI
|
ezin |
Микроконтроллеры, АЦП, память и т.д |
3 |
29.09.2007 22:27 |
робота с SPI
|
kviper |
Микроконтроллеры, АЦП, память и т.д |
6 |
07.08.2007 10:05 |
32 Mb flash spi
|
Дима |
Микроконтроллеры, АЦП, память и т.д |
17 |
14.08.2003 11:28 |
Часовой пояс GMT +4, время: 22:07.
|
|