Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM7S + сеть
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
condor
Надо организовать общение между несколькими AT91SAM7S.
Раньше использовались AVR'ки и общались по I2C, но теперь надо замень все на AT91SAM7S.
И вот с этим проблемка: у АТ91SAM7S TWI может быть только мастером, тоесть связать несколько контоллеров не получится sad.gif
Имеющийся у него Synchronous Serial Controller (SSC) тоже не поможет, т. к. позволяет организовать связб только между двумя конроллерами.
Подскажите как это можно сделать.
aaarrr
Цитата(condor @ Jul 16 2006, 21:26) *
Имеющийся у него Synchronous Serial Controller (SSC) тоже не поможет, т. к. позволяет организовать связб только между двумя конроллерами.

Как раз при помощи SSC можно связать несколько контроллеров, правда, мастер будет один.
То же самое можно сделать при помощи USART'ов или SPI.
beer_warrior
TWI у них конечно слабоват, но кто мешает сделать софтовый?
aaarrr
ИМХО, софтовый I2C slave стоит городить только в случае крайней необходимости. Уж больно лихой изврат.
beer_warrior
Да ладно, такое решение применялось много лет на восьмибитках, пока аппаратный контроллер был экзотикой. Исходников море, остаеться только подточить под SAMовский PIO.
aaarrr
Применялось, но в 95% случаев это был только master.
По-иоему, наиболее оптимальным вариантом будет связь по SSC или USART. Во втором случае можно сэкономить на количестве сигналов.
dch
Цитата(aaarrr @ Jul 16 2006, 21:47) *
Как раз при помощи SSC можно связать несколько контроллеров, правда, мастер будет один.

Как это?
aaarrr
Цитата(dch @ Jul 17 2006, 05:11) *
Как это?

Конфигурируем один SSC как мастер, остальные - слейвами. Каждый слейв работает в своем тайм-слоте.
dch
Что там в SAM TDM в SCC есть?
aaarrr
Есть. Не совсем честный TDM, конечно, но вполне пригодный для таких целей.
dch
Цитата(aaarrr @ Jul 17 2006, 05:48) *
Есть. Не совсем честный TDM, конечно, но вполне пригодный для таких целей.

спасибо, надо будет посмотреть
condor
Цитата(aaarrr @ Jul 17 2006, 04:23) *
Конфигурируем один SSC как мастер, остальные - слейвами. Каждый слейв работает в своем тайм-слоте.


А слейвы отдают линию передачи друг другу?
В даташите написано, что если вывод настроен с multi-drive, то во время ожидания вывод включается только при 1 на выходе. Я так понимаю, что если поставить DATDEF = 0, то вывод включается только на время передачи, а при ожиданни он в третьем состоянии. Это так или я ошибаюсь?
aaarrr
Каюсь, недосмотрел sad.gif Совсем нечестный TDM у атмела. Действительно, можно только с multi-drive извратиться. Попробую завтра на железке проверить, как оно себя ведет.
condor
Решил соединять USARTом. Чтоб сократить количество линий передачи до одной, хочу использовать режим ISO7816. А для устранения дрейфа частоты - использовать манчестерское кодирование.
Написано, что для работы Drift Compensation должен быть включен оверсемплинг х16, но в режиме ISO7816 особенная генерация тактовой.
Не могу разобраться будут ли ISO7816 и Drift Compensation работать вместе?
Буду очень благодарен за помощь.
condor
Опять не могу найти в даташите sad.gif
Если выход USARTa TXD в PIO настроен на периферию, а передатчик в USARTe отключен (взведен TXDIS в US_CR), в каком состоянии будет выход TXD?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.