|
Первые шаги с AVR, Есть идея и желание, но нет опыта |
|
|
|
 |
Ответов
|
Jul 6 2007, 13:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата RS232, I2C, SPI Вот по скорости они так и располагаются, а по надежности, имхо зависит от условий, помех, разводки, мне кажется что тут они примерно равны, только не RS232, а UART с уровнями сигналов 5в. UART в принципе не рассчитан на много точечное соединение I2C - топология типа шина, с передачей адреса устройства SPI - все включаются параллельно на шину, но выбор устройства производится сигналом CS и потом обмен идет как будто никого больше на шине нет. Последний мне кажется наиболее прост в реализации, особенно с использованием аппаратных SPI.
--------------------
|
|
|
|
|
Jul 18 2007, 11:44
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(GDI @ Jul 6 2007, 16:57)  RS232, I2C, SPI Вот по скорости они так и располагаются, В контексте AVR насчет "по скорости они так и располагаются" требует поправки: SPI в силу своей простоты и синхронности - самый скоростной (до 8Mbod/s на 16Mhz) UART - ограничен цифрой 16, в скоростном режиме цифрой 8. (тобиш максимум можно выжать 2Mbod/s) I2C - не более 400Kbod/s. Но в силу того, что I2C аппаратно поддерживает адресацию устройств, и использует шину всего из 2-х проводков, эффективность системы построенная на этом интерфейсе будет наиболее высокая, по следующим критериям: 1. Гибкость масштабирования системы (легко можно добавить новый модуль(и)). 2. Простота разводки интерфейса на плате (всего два провода) 3. Минимальные затраты процессорного времени на обслуживание протокола связи.
|
|
|
|
|
Jul 18 2007, 22:07
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(IgorKossak @ Jul 18 2007, 20:43)  Применив 150 линий chip select.  Цитата Если постараться , может хватить 8. Ключевое слово "постараться" ;> Вот вот.. И вся "гибкость" масштабирования летит в тар-тарары. Может GM что-то другое имел в виду.. С интересом жду что он скажет.
|
|
|
|
|
Jul 19 2007, 21:22
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(defunct @ Jul 18 2007, 22:07)  Может GM что-то другое имел в виду.. С интересом жду что он скажет. Ого, сколько понаписали, сегодня целый день в разъездах был, не было возможности ответить. Well to the question. Для начала, например, можно соединить SPI выход первого слейва со входом второго, а его выход с входом третьего, ну и так далее...Очень просто, как говорит мой босс, но проблемо(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 20 2007, 09:45
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(defunct @ Jul 19 2007, 21:20)  Как всегда очень оригинально ;> но действительно проблемно..  Клок как передавать? CS? И проводов не три а хм.. 150 + 1 (это если клок "расшарить"). Ну, не очень это и оригинально, всё до меня уже сделали и все пользуются, в частности, вы, только не задумываетесь об этом. Грубо говоря, у многих коллег шоры на глазах, находятся в плену, так сказать, имбеддерских предрассудков(:-)... Клок надо передавать всем одновременно, т.е. параллельное подключение. А CS вообще не нужен по большому счёту. И, если только передавать, то нужно всего два провода. Что касается "проблемно" - сможете подключить 150 иис устройств к одной шине? Получите ба-а-а-льшую проблему...
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 20 2007, 11:54
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(=GM= @ Jul 20 2007, 12:45)  И, если только передавать, то нужно всего два провода. Давайте не будем урезать функциональность, ок? Вы ж решили оспорить простоту масштабирования I2C, а значит ваше решение должно быть не хуже по функциональности. Для полноценного обмена вашим методом надо построить кольцо. 1->2->3->4 ..... ->N -> 1 Это накладно как с т.з. железа так и т.з. протокола. Цитата Что касается "проблемно" - сможете подключить 150 иис устройств к одной шине? К I2C 150-нет, а 128 запросто, она для этого и создана. Цитата Получите ба-а-а-льшую проблему... Если добавить еще одну шину и мост - 254 устройства к вашим услугам. Проблем с обменом - никаких. Арбитраж выполняется аппаратно.
|
|
|
|
|
Jul 20 2007, 16:14
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(defunct @ Jul 20 2007, 10:54)  Давайте не будем урезать функциональность, ок? Вы ж решили оспорить простоту масштабирования I2C, а значит ваше решение должно быть не хуже по функциональности. Не то, чтобы очень хотел, просто надо по справедливости. Если вы говорите, что дополнительное I2C-устройство легко подключить к двум проводам, то я говорю, что в этом смысле так же легко подключить дополнительное SPI устройство к 3 проводам. Нету разницы большой в подключении двух проводов или трёх, надеюсь вы с этим согласитесь? В вашем посте мысль о гибкости масштабирования системы, т.е. то, что можно получить с помощью I2C, вы возвели в ранг чего-то недосягаемого для SPI Цитата(defunct @ Jul 20 2007, 10:54)  1) Гибкость масштабирования системы (легко можно добавить новый модуль(и)). А это, по большому счёту, не так. Если уж говорить о гибкости, из SPI модуля МК можно легко соорудить I2C-протокол, а вот наоборот - вряд ли получится! И это будет настоящая гибкость, а не высосанная из пальца. Я уж не говорю про скорость обмена, которая будет в ДЕСЯТЬ раз выше! Цитата(defunct @ Jul 20 2007, 10:54)  Для полноценного обмена вашим методом надо построить кольцо. 1->2->3->4 ..... ->N -> 1 Это накладно как с т.з. железа так и т.з. протокола. Да ну ладно вам. SPI спокойно можно включать звездой, никаких проблем! Снимите наконец розовые очки: SPI - это вещь! Правда, для многих это вещь в себе(:-). Цитата(defunct @ Jul 20 2007, 10:54)  К I2C 150-нет, а 128 запросто, она для этого и создана. Если добавить еще одну шину и мост - 254 устройства к вашим услугам. Проблем с обменом - никаких. Арбитраж выполняется аппаратно. Положим, это уже не так просто осуществить, поскольку нужны дополнительные чипы, и вся гибкость исчезнет. Хотя, справедливости ради, на 100 бодах вполне можно будет обмениваться.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 20 2007, 17:40
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(=GM= @ Jul 20 2007, 19:14)  Да ну ладно вам. SPI спокойно можно включать звездой, никаких проблем! Можно подробнее - как при включении "звездой" без CS раздать нескольким (пусь будет двум для простоты) SPI-слейвам разную информацию. И главное, как при подключении звездой без CS или при соединении их последовательно (ваше первое предложение) получить ответ от всех устройств? Цитата(=GM= @ Jul 20 2007, 19:14)  Снимите наконец розовые очки: SPI - это вещь! С этим никто не спорит, только эта вещь для несколько, гм, другого.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jul 20 2007, 21:53
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Сергей Борщ @ Jul 20 2007, 17:40)  Можно подробнее - как при включении "звездой" без CS раздать нескольким (пусь будет двум для простоты) SPI-слейвам разную информацию. И главное, как при подключении звездой без CS или при соединении их последовательно (ваше первое предложение) получить ответ от всех устройств? 1) Последовательное соединение мастера и двух слейвов. Посылаете два байта, возникают два прерывания в обоих слейвах. Первое игнорируется, по второму забирается информация обоими слейвами и заносится два ответа. Далее варианты такие, либо мастер получает ответ при следующем цикле обмена, либо посылает два пустых байта и забирает ответ. 2) Параллельное соединение мастера и двух слейвов. Посылаете два байта, первый - адрес, второй - данные. Слейв с соответствующим адресом отвечает, другой слейв молчит.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Jul 23 2007, 09:56
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(=GM= @ Jul 21 2007, 00:53)  1) Последовательное соединение мастера и двух слейвов. Посылаете два байта, возникают два прерывания в обоих слейвах. Первое игнорируется, по второму забирается информация обоими слейвами и заносится два ответа. Далее варианты такие, либо мастер получает ответ при следующем цикле обмена, либо посылает два пустых байта и забирает ответ. Мда... И как они будут разбираться какое прерывание "первое", какое "второе" и главное - когда сдвигаются данные а когда ответы слейвов. Вот уж точно от безысходности такое городить. "Альтернатива - утки!". Уж если соединяем много учтройств, то мое решение было бы таким - если есть устройства которые умеют только I2C и все они находятся в пределах одной платы - I2C, если таких устройств нет или они разнесены - 485.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
namelos Первые шаги с AVR Jul 3 2007, 12:55 Tcom Всё зависит от того, насколько интенсивно хочешь з... Jul 3 2007, 13:07 muravei Я бы посоветовал обратиь внимание на h__p://algrom... Jul 3 2007, 13:15 namelos Спасибо. Посмотрел AVR ISP. Я в принципе могу и че... Jul 3 2007, 13:37 Tcom Цитата(namelos @ Jul 3 2007, 16:37) JTAGI... Jul 3 2007, 13:43 defunct Цитата(namelos @ Jul 3 2007, 16:37) Я в п... Jul 3 2007, 15:38 GDI Порекомендую в который раз КИТ AVR Butterfly, деше... Jul 3 2007, 14:51 mdmitry Посмотрите акцию Atmel на www.efo.ru. Там два вар... Jul 3 2007, 18:36 VAHOO Цитата(mdmitry @ Jul 3 2007, 21:36) Посмо... Jul 5 2007, 05:40 ZoonMan Я бы вам посоветовал Altera Byte Blaster. Это недо... Jul 4 2007, 10:28 pokos Ну, я начинал с "пяти проводочков" и avr... Jul 4 2007, 11:01  олесь Цитата(pokos @ Jul 4 2007, 14:01) Ну, я н... Jul 18 2007, 18:23 day177 согласен с pokos - CodeVision сильно жизнь облегча... Jul 4 2007, 12:45 namelos Цитата(day177 @ Jul 4 2007, 16:45) А вот ... Jul 4 2007, 14:13 vesago По 1 варе на одном проводе можно посадить сенсоров... Jul 4 2007, 14:17 namelos Цитата(vesago @ Jul 4 2007, 18:17) По 1 в... Jul 4 2007, 14:27 Сергей Борщ Цитата(namelos @ Jul 4 2007, 17:27) sorry... Jul 4 2007, 15:41  gm1957 Цитата(Сергей Борщ @ Jul 5 2007, 00:41) К... Jul 10 2007, 03:47 AndryG Ну добавлю и я сюда свои мысли.
Если стоит одна з... Jul 4 2007, 16:29 namelos Сергей Борщ , спасибо за подробное разъяснение. Де... Jul 4 2007, 21:12 Сергей Борщ Цитата(namelos @ Jul 5 2007, 00:12) Девай... Jul 5 2007, 00:16 Igor26 Цитатаоб отдельном контроллере у каждого датчика
.... Jul 5 2007, 05:13 Igor26 http://www.efo.ru/doc/Atmel/Atmel.pl?212
Объявлени... Jul 5 2007, 05:51 GDI DS18B20 дает точность 0,5 градуса безо всякой кали... Jul 5 2007, 07:42 namelos Цитата(Сергей Борщ @ Jul 5 2007, 04:16) Н... Jul 5 2007, 08:53 AndryG Цитата0.7с, при 12 сенсорах это почти 8 секунд
Есл... Jul 5 2007, 10:10 GDI Время преобразования зависит от разрядности преобр... Jul 5 2007, 10:38 namelos GDI , еще спасибо за информацию. Если не секрет, н... Jul 5 2007, 15:15 GDI Я делал на мега16, 8 каналов. Ну а контроллер для ... Jul 5 2007, 15:33 Igor26 Цитата(GDI @ Jul 5 2007, 19:33) Я делал н... Jul 5 2007, 17:19 GDI Igor26 вы про что?
про мега16 и 8 каналов? Вот моя... Jul 6 2007, 07:18 Igor26 Извиняюсь. Наверное пропустил выделенные цитаты.
... Jul 6 2007, 09:26 GDI Меня то не пугает, просто хотелось оградить заказч... Jul 6 2007, 10:32 Igor26 Теперь ясно. Jul 6 2007, 12:16 namelos ЦитатаGDI...и связь по SPI на какой то центральный... Jul 6 2007, 12:27 AndreyKeil [quote name='namelos' date='Jul 6 2007... Jul 22 2007, 21:38 IgorKossak Цитата(GDI @ Jul 6 2007, 16:57) UART в пр... Jul 8 2007, 21:12     muravei Цитата(IgorKossak @ Jul 18 2007, 21:43) П... Jul 18 2007, 18:34             defunct Цитата(=GM= @ Jul 21 2007, 00:53) 1) Посл... Jul 21 2007, 00:09           defunct Цитата(=GM= @ Jul 20 2007, 19:14) Не то, ... Jul 20 2007, 18:50          =GM= Цитата(defunct @ Jul 20 2007, 11:54) Для ... Jul 22 2007, 21:41           defunct Цитата(=GM= @ Jul 23 2007, 00:41) Не смеш... Jul 22 2007, 21:58            =GM= Цитата(defunct @ Jul 22 2007, 21:58) Вы ч... Jul 22 2007, 22:24             defunct Цитата(=GM= @ Jul 23 2007, 01:24) Во-перв... Jul 23 2007, 07:29              =GM= Цитата(defunct @ Jul 23 2007, 06:29) Торм... Jul 23 2007, 09:21               defunct Цитата(=GM= @ Jul 23 2007, 12:21) Объясни... Jul 23 2007, 10:13                =GM= Цитата(defunct @ Jul 23 2007, 09:13) Вклю... Jul 23 2007, 11:56                 defunct Цитата(=GM= @ Jul 23 2007, 14:56) Расскаж... Jul 23 2007, 12:25                  =GM= Цитата(defunct @ Jul 23 2007, 11:25) А те... Jul 23 2007, 12:47                   µµC Цитата(=GM= @ Jul 23 2007, 16:47) Ничего ... Jul 23 2007, 13:19                    SasaVitebsk Цитата(µµC @ Jul 23 2007, 16:19) То, что ... Jul 23 2007, 14:18                     µµC Цитата(SasaVitebsk @ Jul 23 2007, 18:18) ... Jul 23 2007, 15:47                    =GM= Цитата(µµC @ Jul 23 2007, 12:19) То, что ... Jul 24 2007, 13:43                     defunct Цитата(=GM= @ Jul 24 2007, 16:43) А тепер... Jul 24 2007, 20:05                      =GM= Цитата(defunct @ Jul 24 2007, 20:05) Вооб... Jul 24 2007, 20:10  singlskv 2 defunct
А я вот, как раз бы поспорил с вот этим ... Jul 22 2007, 23:31 namelos GDI, спасибо и хороших выходных. Jul 6 2007, 14:45 alexander tom Привет!
А возможно ли склонировать чип mega16... Jul 17 2007, 13:25 SpyBot А если сначало передавать адрес нужного устройства... Jul 18 2007, 17:57 IgorKossak Цитата(SpyBot @ Jul 18 2007, 20:57) А есл... Jul 18 2007, 19:02  WHALE Цитата(IgorKossak @ Jul 18 2007, 23:02) В... Jul 18 2007, 19:55 SasaVitebsk В Вашем споре поддержу GM. Причины просты. Если ра... Jul 21 2007, 00:38 SpyBot А если использовать мультиплексоры/демультиплексор... Jul 23 2007, 09:13 SasaVitebsk Ребята давайте не вводить в заблуждение друг друга... Jul 23 2007, 12:37 defunct ЦитатаРебята давайте не вводить в заблуждение друг... Jul 23 2007, 12:58 SpyBot Не, ну с I2C проще - берем ещё 2 провода и получае... Jul 24 2007, 13:50 =GM= Цитата(SpyBot @ Jul 24 2007, 12:50) Не, н... Jul 24 2007, 14:29
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|