На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Протокол SPI , программная реализация
      Нужно связать два котроллера по SPI, и вродебы все ничего, еслиб была аппаратная поддержка, которой нет :unsure: (контроллер ATtiny26)
      Опыта в программировании контроллеров у меня не много, а поиск ничего вразумительного не дает.
      Пишу на Си в IAR, лучшеб какой-нибудь примерчик .. если есть канешна, или где про это почитать.

      буду признателен :)
        SPI - примитивный синхронный интерфейс. Непонятно, в чем может быть проблема.
        Для мастера:
        Передача: выставил бит данных, выдал тактовый сигнал, снял тактовый сигнал и далее по кругу.
        Прием: выдал тактовый сигнал, прочитал бит данных, снял тактовый сигнал и далее по кругу.
        Для синхронизации обмена удобно использовать сигнал SS.
        Прочитать можно в русскоязычных описаниях, например, микроконтроллеров PIC или того же AVR. Ищи здесь: http://www.microchip.ru или здесь: http://www.atmel.ru
          длительность значения не имеет? и еще режимы мастер-слэйв вся разница в том какой порт настроен на вход а какой на выход и все? или что то еще?
          и еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме?
            Цитата Deus @
            длительность значения не имеет?
            Для чужих SPI - может иметь. Но у тебя же все свое? И большой простор для творчества. :)

            Цитата Deus @
            еще режимы мастер-слэйв вся разница в том какой порт настроен на вход а какой на выход и все?
            В SPI синхроимпульс(SCK) генерирует мастер.

            Цитата Deus @
            еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме?
            Задействовать другой вход, способный вывести из спячки(если таковой имеется). Или попытаться мультиплексировать INT0 посредством внешней схемы.
              Цитата

              и еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме?

              в ATiny26 есть встроенный SPI. т е тебе не надо INT0, там есть прерывания от USI по старту и переполнению, которые работают в режиме спячки
                Цитата potor @
                в ATiny26 есть встроенный SPI. т е тебе не надо INT0, там есть прерывания от USI по старту и переполнению, которые работают в режиме спячки

                спасибо, подсказал, в datasheet есть подробное описание как построить SPI при помощи USI...
                до этого было не по глазам :)
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0326 ]   [ 16 queries used ]   [ Generated: 28.03.24, 19:02 GMT ]