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

 
 
> SPI: равномерный вывод нескольких байт, на максимальной допустимой скорости
=GM=
сообщение Mar 4 2008, 17:30
Сообщение #1


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Народ, тема навеяна постом по выводу символов на экран путём врезки отдельных пикселей в композитный видеосигнал. Хотелось бы поделиться своими результатами и обсудить их со специалистами.

Задача была такая: добиться равномерного вывода пикселей без каких-либо зазоров между байтами на максимально допустимой скорости Fclk/2.

Для экспериментов была взята атмега8515 (частота кварца 10 МГц) из старых запасов, чтобы не жалко было покурочить плату и пожечь кристалл в случае чего.

Сначала была попытка вывода отдельных бит через SPI, работающего в режиме ведущего (мастер). Но как я ни бился, получался зазор в 1МЦ, т.е. полпиксела. Было решено перейти к режиму ведомого (слейв), а на вход SCK подать Fclk/2=5МГц.

В документации отмечено, что слейв работает только до частот Fclk/4, так как необходимо синхронизировать внешнюю частоту. Но идея была такая, что поскольку источником 5 МГц будет тот же самый микроконтроллер (вывод XCK синхронного USART), то вроде бы проблем с синхронизацией не должно быть.

Сказано, сделано. Оказалось, что устройство прекрасно работает на Fclk/2=5МГц в режиме слейва. Вот тестовая программка, которая выдавала байты в регистр данных SPI. Данные можно было менять, переключая ключи, подключенные к порту С.
Код

spsout: out   spdr,r16;current data
        in    r16,pinc;reading the switch
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        nop
        rjmp  spsout

Вот картинка с экрана осциллографа, видно, что между байтами зазоров нет.

Вроде всё важное сказал. Что меня смущает, так это то, что слейв работает на частоте в два раза выше, чем описано в документации. Привлекает то, что для 20МГц атмеги максимальная скорость будет 10МГц.

Что скажете?
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Mar 5 2008, 16:46
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Mar 4 2008, 19:30) *
Что меня смущает, так это то, что слейв работает на частоте в два раза выше, чем описано в документации. Привлекает то, что для 20МГц атмеги максимальная скорость будет 10МГц.
Что скажете?

Я думаю, что для вывода непринципиальна Fclk. Максимум сигнал будет смещен на такт для каждого семпла (кстати, а Вы не попробовали подать не F/2, а F ? smile.gif ), а вот для ввода, такое смещение неприемлемо, т.к. может привести к искажению данных, потому в документации и F/4.

Решение красивое
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 5 2008, 17:28
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Mar 5 2008, 16:46) *
Я думаю, что для вывода непринципиальна Fclk. Максимум сигнал будет смещен на такт для каждого семпла (кстати, а Вы не попробовали подать не F/2, а F ? smile.gif ), а вот для ввода, такое смещение неприемлемо, т.к. может привести к искажению данных, потому в документации и F/4.
Решение красивое

Спасибо. У меня SPI работает как слейв, значит входная частота F/2 проходит через синхронизатор, который опрашивается клоком F. Если подать F на вход синхронизатора, то на выходе будет постоянка, ну а не будет клоков - не будет работать SPI слейв. Мне кажется, что смещения не будет, т.к. входная частота для слейва идёт постоянно, какая разница какой импульс защёлкивает данные, задержанный на один такт или на два такта. Посмотрите на блок-схему SPI.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th September 2025 - 11:07
Рейтинг@Mail.ru


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