Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Устал бороться с SSC в AT91SAM7S
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vladimir_m
Пытаюсь на SSC сделать SPI в slave mode.

Делаю так:
Recieve Clock Mode: беру клок с внешней ножки, стартую от Detection of a falling edge on RF signal
Recieve Frame: 16 бит слово, 3 слова в посылке, старший бит вперед.
Ну и в принципе все. пока только принимаю.

Ну и falling edge on RF signal не унюхивает...
Осцилографом смотрел - все на месте.
Erratu читал.
aaarrr
Код в студию.
vladimir_m
Код
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_SSC );

AT91F_SSC_Configure (AT91C_BASE_SSC, // \arg pointer to a SSC controller
MCK,  // \arg System Clock Frequency
0,// \arg Expected Baud Rate Frequency
AT91C_SSC_CKS_RK | AT91C_SSC_START_FALL_RF,    // \arg Receiver Clock Parameters
(15 | AT91C_SSC_MSBF | (2 << 8)),    // \arg mode Register to be programmed
AT91C_SSC_CKS_TK | AT91C_SSC_CKI | AT91C_SSC_START_TX,    // \arg Transmitter Clock Parameters
(15 | AT91C_SSC_DATDEF | AT91C_SSC_MSBF | (2 << 8)));     // \arg mode Register to be programmed
AT91F_SSC_EnableTx (AT91C_BASE_SSC);
AT91F_SSC_EnableRx (AT91C_BASE_SSC);

AT91F_PDC_EnableRx(AT91C_BASE_PDC_SSC);
AT91F_PDC_EnableTx(AT91C_BASE_PDC_SSC);
AT91F_PDC_Open(AT91C_BASE_PDC_SSC);


Идея в догонку: если задействована внешняя нога клока, и все тактируется от этого клока, то нужно ли настраивать внутренний делитель на ту же частоту?
vladimir_m
Оказывается, в таком режиме на SSC должен идти постоянный клок. Я так понял, что, без внешнего клока SSC не может детектировать начало фрейма по falling edge on RF signal. Так что SPI slave сделать проблематично.
DmitryM
Цитата(vladimir_m @ Sep 11 2008, 16:31) *
Оказывается, в таком режиме на SSC должен идти постоянный клок. Я так понял, что, без внешнего клока SSC не может детектировать начало фрейма по falling edge on RF signal. Так что SPI slave сделать проблематично.


А зачем извращаться с SSC когда есть SPI???
vladimir_m
Цитата
А зачем извращаться с SSC когда есть SPI???

К сожалению, SPI занят.

Кому интересно, проблему решил. Правда SPI так и не удалось раскочегарить.
Дело в том, что я связываю с STR911. У STR оригинальный контроллер последовательной перефирии. Он настраивается на различные форматы. SPI не получилось, зато TI synchronous serial frame format подошел! Я подозреваю, что дело в том, что сигнал начала фрейма сопровождается SCLK. В настройках SSC в AT91SAM7S я изменил условия старта на чтение на AT91C_SSC_START_HIGH_RF. И все. Работает. Правда непонятно, зачем для ловли фронта (AT91C_SSC_START_FALL_RF) нужен внеший клок?
Ну, как бы там не было, SSC заработал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.