Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не выставляется SS
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Halfback
Поиск по проблемам c SS на этом форуме ничего не дал, так что заранее извиняюсь что вопрос по всей видимости заезженный.

Проблема в том, что при старте контроллера SS становиться в "0". Если начинаю по SPI гнать байты то всё становиться на круги своя - в режиме паузы "1" а при передаче "0".

Вот куски:

при инициализации порта В там где SS (PORTB.0) конфигурирую на выход:
Код
// SS -> PORTB.0 --> OUTPUT
// SCK  --> PORTB.1 --> OUTPUT
// MOSI --> PORTB.2 --> OUTPUT
// MISO --> PORTB.3 --> INPUT
//PORTB=0x05; // 0b00000101  для варианта с софтовым SPI

        PORTB=0x00; // для варианта с хардовым SPI
        DDRB=0xC7;  // 0b11000111


и потом конфигурирую SPI

Код
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 62,500 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
    SPCR=0x57;
    SPSR=0x00;


Почитал литературу - всё вроде делаю правильно - если ставлю в режим мастера то вывод SS перед этим д.б. сконфигурирован на вывод, иначе будут проблемы.
Если заменить код программы где SPI начинаю долбить "в ручную" (софтовый вариант) то никаких проблем нет, обмен с ведомым девайсом есть.
SSerge
Если SS настроен на вывод то мастеру до него дела нет. Хотите чтобы SS выставлялся и убирался - делайте это "вручную".
mempfis_
Правильно сказал SSerge управление выводом SS лежит на вас. В режиме мастера SPI не знает к какому слэйву будет обращение поэтому вы сами вольны повесить на любую ножку МК SPI-слэйва и управляя этой ножкой обращаться к нему через аппаратный SPI.
Halfback
Всем спасибо!!! Я всё понял!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.