ATtiny2313A и Master SPI

Обсуждаем контроллеры компании Atmel.
Ответить
AndreyZ
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн окт 28, 2013 19:36:03

ATtiny2313A и Master SPI

Сообщение AndreyZ »

Правильно ли я понял, что у ATtiny2313A нет аппаратного SPI внутри, и поэтому его можно сделать на основе USART. Следовательно одновременное использовать UART и SPI не получится? Так же хотелось уточнить, правильно ли я понял докку, что если мы используем MSPIM, то будь добр тактироваться от внутреннего клока?
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: ATtiny2313A и Master SPI

Сообщение pokk »

Посмотрите в сторону USI.
Вот сразу нагуглил
http://www.arts-union.ru/node/3
AndreyZ
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн окт 28, 2013 19:36:03

Re: ATtiny2313A и Master SPI

Сообщение AndreyZ »

pokk писал(а):Посмотрите в сторону USI.
Вот сразу нагуглил
http://www.arts-union.ru/node/3

Это всё замечательно...
Всё же меня интересует MSPIM
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: ATtiny2313A и Master SPI

Сообщение akl »

AndreyZ писал(а):Правильно ли я понял, что у ATtiny2313A нет аппаратного SPI внутри, и поэтому его можно сделать на основе USART.
SPI можно сделать на USI с привязанными лапами или "ногодрыгом" на других лапах.
AndreyZ писал(а):...правильно ли я понял докку, что если мы используем MSPIM, то будь добр тактироваться от внутреннего клока?
DS ATtiny2313 не знает про MSPIM, только Multiprocessor Communication Mode (MPCM) и не даёт ограничений на тактовую.
AndreyZ
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн окт 28, 2013 19:36:03

Re: ATtiny2313A и Master SPI

Сообщение AndreyZ »

DS ATtiny2313 не знает про MSPIM, только Multiprocessor Communication Mode (MPCM) и не даёт ограничений на тактовую.

Изображение
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: ATtiny2313A и Master SPI

Сообщение Engineer_Keen »

MSPIM это Master SPI Mode, т.е это просто контроллер в режиме мастера, значит: 1) тактовый сигнал генерирует мастер 2) линией CS/SS управляет мастер. И то и другое можно сделать как через USART (заняв его), так и через USI (при этом UART свободен). SPI из USI получается программно-аппаратным и тактировать ногу SCK придется вручную, с максимальной скоростью Fclk/2. Пример есть в разделе USI / Three-wire Mode.

Если контроллер умеет SPI в режиме слейва, то уж мастером он тоже может быть. Мастеру проще. Для слейва нужно определять строго определенный пин CS/SS, который либо является аппаратным входом SS SPI, либо входом с прерыванием, чтобы определить начало/конец передачи данных в программном SPI. Мастеру же достаточно выделить любой GPIO чтобы управлять линией CS. Тоже самое касается и тактовой линии SCK.

Кстати, в качестве UART можно задействовать и тот самый USI, но при этом потребуется помимо линий USI занять одну ногу с прерыванием, чтобы ловить старт-бит и один таймер, чтобы генерировать тактовую. Так что можете извратиться и завести SPI на USART, а UART на USI :)))
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
AndreyZ
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Пн окт 28, 2013 19:36:03

Re: ATtiny2313A и Master SPI

Сообщение AndreyZ »

Engineer_Keen писал(а):Кстати, в качестве UART можно задействовать и тот самый USI, но при этом потребуется помимо линий USI занять одну ногу с прерыванием, чтобы ловить старт-бит и один таймер, чтобы генерировать тактовую. Так что можете извратиться и завести SPI на USART, а UART на USI :)))

Дело в том, что мне нужен только SPI, для общения с АЦП. А вопрос возник на чём реализовывать SPI, USI или UART. И наиболее важным критерием для меня является это не простота реализации, а скорость выполнения алгоритма. С этой точки зрения, что скажете? Я ещё не изучал этот вопрос, как будет быстрее но по ощущениям, на UARTе быстрее... т.к. в USI программе придётся заниматься дёрганьем ножек в режиме GPIO.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: ATtiny2313A и Master SPI

Сообщение Engineer_Keen »

Быстрее чем Fclk/2 не будет в любом случае. В USI ноги будут дергаться не напрямую, если брать код со страниц 158-159, то там используются команды out (по 2 шт), которые как раз выполняются по 1 такту, и если надо выводить например больше чем по 1 байту, то такой линейный код даст максимальную производительность, варианты же с ожиданием изменения статусных битов что в UART что в другом варианте кода USI такого не дадут.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Ответить

Вернуться в «AVR»