реклама на сайте
подробности

 
 
> SSC на AT91RM9200
S.E.V.
сообщение Nov 12 2006, 20:13
Сообщение #1





Группа: Новичок
Сообщений: 14
Регистрация: 8-10-06
Пользователь №: 21 089



Добрый вечер,
есть AT91RM9200 который через SSP связан с DSP-шником. Три линии в одну сторону, три в другую, т.е. тот кто передает данные, формирует Frame Sync и Clock. Существует ли возможность корректно остановить передатчик SSC на ARM-е, таким образом, чтобы премник DSP принял все предназначеные ему фреймы ?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
SpiritDance
сообщение Nov 13 2006, 07:50
Сообщение #2


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(S.E.V. @ Nov 12 2006, 23:13) *
Добрый вечер,
есть AT91RM9200 который через SSP связан с DSP-шником. Три линии в одну сторону, три в другую, т.е. тот кто передает данные, формирует Frame Sync и Clock. Существует ли возможность корректно остановить передатчик SSC на ARM-е, таким образом, чтобы премник DSP принял все предназначеные ему фреймы ?

Вроде как после установки бита TXDIS в регистре статуса передатчик выключается именно после завершения передачи. Только вот такты продолжает генерить собака.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
S.E.V.
сообщение Nov 14 2006, 04:24
Сообщение #3





Группа: Новичок
Сообщений: 14
Регистрация: 8-10-06
Пользователь №: 21 089



Цитата(SpiritDance @ Nov 13 2006, 10:50) *
Вроде как после установки бита TXDIS в регистре статуса передатчик выключается именно после завершения передачи. Только вот такты продолжает генерить собака.


В том то и дело. SSC продолжает генерировать тактовые импульсы, и сигналы фреймовой синхронизации. При этом, естественно, DSP принимает пустые фреймы.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 14 2006, 07:00
Сообщение #4


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



blink.gif Странно... фреймсинки он должен прекратить генерить, у меня на схеме ставит выходы в z-состояние правда с каким-то ненормальным уровнем сигнала - возможно виновато питание. (правда у меня sam7s). Чтобы прекратить подачу тактов можно потом его еще и в PMC отрубить.
Какой-то все таки странный у атмела ssc.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 14 2006, 14:25
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



В описании бита TXDIS есть даже специальное примечание: "Only the data management is affected", т.е. на формировании синхронизации его установка сказываться не должна.

Что касается основного вопроса, то, по-моему, передача должна идти постоянно, а разделять фреймы на пустые и содержащие данные должен протокол верхнего уровня. Например, можно сделать разделение по MSB, как это делается у некоторых кодеков.
Go to the top of the page
 
+Quote Post
vmp
сообщение Nov 14 2006, 14:35
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070



А если попробовать установить поле CKO регистра SSC_TCMR в значение 2 (transmit clock only during data transfer)?
Аналогично в регистре SSC_RCMR.
Пишу по опыту работы с SSC в SAM7S.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 14 2006, 14:45
Сообщение #7


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(vmp @ Nov 14 2006, 17:35) *
А если попробовать установить поле CKO регистра SSC_TCMR в значение 2 (transmit clock only during data transfer)?
Аналогично в регистре SSC_RCMR.
Пишу по опыту работы с SSC в SAM7S.

В таком случае на передатчике такты генерится перестают, но framesync продолжает работать. smile.gif по идее в данном случае должно помочь.

aaarrr
уж не знаю чего имел ввиду атмел под словами data management но при таком коде TF RF после выключения преходят в третье состояние.
Код
    AT91C_BASE_SSC->SSC_CMR = 2;
        
    
    AT91C_BASE_SSC->SSC_TFMR =   (17 & AT91C_SSC_DATLEN)
                              | AT91C_SSC_MSBF
                              | ((0 << 8) & AT91C_SSC_DATNB)    //колво блоков во фрейме 0 + 1
                              | ((15 << 16) & AT91C_SSC_FSLEN)  //16-1  
                              | AT91C_SSC_FSOS_NEGATIVE;

    AT91C_BASE_SSC->SSC_TCMR =  AT91C_SSC_CKS_DIV
                              | AT91C_SSC_CKO_CONTINOUS
                              | AT91C_SSC_START_CONTINOUS
                              | ((8 << 24) & AT91C_SSC_PERIOD);
    
    AT91C_BASE_SSC->SSC_RFMR =  (17 & AT91C_SSC_DATLEN)         //17+1 бит
                              | AT91C_SSC_FSOS_NEGATIVE         //фронт из 0 в 1
                              | AT91C_SSC_MSBF                  //сатршим битом вперед
                              | ((0 << 8) & AT91C_SSC_DATNB)    //колво блоков во фрейме 0 + 1
                              | ((15 << 16) & AT91C_SSC_FSLEN); //16-1  

    AT91C_BASE_SSC->SSC_RCMR =  AT91C_SSC_CKS_DIV
                              | AT91C_SSC_CKO_CONTINOUS
                              | AT91C_SSC_START_CONTINOUS
                              | ((8 << 24) & AT91C_SSC_PERIOD);

    AT91C_BASE_SSC->SSC_CR = AT91C_SSC_TXEN | AT91C_SSC_RXEN;

....
    AT91C_BASE_SSC->SSC_CR = AT91C_SSC_TXDIS | AT91C_SSC_RXDIS;
    AT91F_PMC_DisablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_SSC);    ///breakpoint

(я тут выкинул конфигурирование PIO и PMC но оно есть) Так вот в строке брейкпоинта наблюдаю z-состояние на tf rf и генерацию тактов на tk и rk. Я совершил чудо на SAM7S256?. smile.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
S.E.V.
сообщение Nov 19 2006, 00:46
Сообщение #8





Группа: Новичок
Сообщений: 14
Регистрация: 8-10-06
Пользователь №: 21 089



Спасибо огромное.
Передатчик действительно останавливается и снимает клоки при установке бита TXDIS в SSC_CMR. Клоки снимаются при условии что поле CKO имеет значение 2. Остается только фреймовая синхронизация.

Сообщение отредактировал S.E.V. - Nov 19 2006, 00:47
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 20 2006, 10:45
Сообщение #9


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



А попробуйте просто через PMC фреймсинки выключить вместе с SSC. smile.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
S.E.V.
сообщение Nov 21 2006, 15:52
Сообщение #10





Группа: Новичок
Сообщений: 14
Регистрация: 8-10-06
Пользователь №: 21 089



Через PMC FrameSync выключать нельзя, поскольку отключится и приемник, при этом DSP не сможет передавать данные на ARM. Но зато можно переключить ногу контроллера на PIO.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Nov 21 2006, 17:13
Сообщение #11


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



И что получилось преключить? У меня помнится такой номер не прошел, хотя я возможно ошибся.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
boryx
сообщение Dec 20 2006, 19:17
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



Столкнулся с проблемой
Немогу ничего принаять с SSC шины.

Уже выкинуто все лишнее,
теперь только конфигурю PIO
(в PDR ставлю 1 и в ASR тоже)
в PCM в нужное место 1.

устонавливаю SSC_RFMR и RCMR как в примере.
энаблю AT91C_SSC_RXEN в SSC_CR
и сколько не жди данные, их нет в SSC_RHR.

Кто нидь знает, что я не так делаю smile.gif
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Dec 21 2006, 10:34
Сообщение #13


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(boryx @ Dec 20 2006, 19:17) *
Кто нидь знает, что я не так делаю smile.gif

Телепаты в отпуске. Приведите кусок кода и скажите хотябы откуда Вы пытаетесь что-то принять.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
boryx
сообщение Dec 21 2006, 12:09
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



Цитата
Телепаты в отпуске.


Жаль, а я так надеялся на их помощь. smile.gif

Если серьезно, то на шине для SSC2 висит устройство, которое генерит клоки и фреймы.
На осцилографе видно, что есть и данные, и клоки и фреймы. Причем эти 3 ножки точно подключены к Атмелю, т.к. я могу через PIO их поднимать/опускать и изменения видны на осцилографе

Теперь

at91_sys_write(AT91_PIOB + PIO_PDR, AT91_PB14_TD2|AT91_PB15_RD2|AT91_PB16_RK2|AT91_PB17_RF2);//disable pio to control pins
at91_sys_write(AT91_PIOB + PIO_ASR, AT91_PB14_TD2|AT91_PB15_RD2|AT91_PB16_RK2|AT91_PB17_RF2);//set pins to peripheral A

at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SSC2);//SSC2 power on

at91_ssc2_write(AT91C_SSC_CR, AT91C_SSC_RXEN); //reset

at91_ssc2_write(AT91_SSC_RCMR,
AT91_SSC_CKS_PIN| //AT91_SSC_CKS_PIN = 2;
AT91_SSC_CKI_RISING|
AT91_SSC_CKO_NONE
);

at91_ssc2_write(AT91_SSC_RFMR,
AT91_SSC_FSOS_NONE|
AT91_SSC_MSBF|
(15)
);

at91_ssc2_write(AT91C_SSC_CR, AT91C_SSC_RXEN);

теперь влажок RXRDY в SSC_SR об окончании приема не выставляется. А SSC_RHR = 0 всегда.

Подскажите, что не правельно.

Кто нидь работал с AT91 SSC на прием с клоком от внешнего источника?

Сообщение отредактировал boryx - Dec 21 2006, 12:10
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Dec 21 2006, 15:40
Сообщение #15


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



А попробуйте SSC slave,ом сделать.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016