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

 
 
> 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
Ответов
singlskv
сообщение Mar 4 2008, 19:04
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(=GM= @ Mar 4 2008, 20:30) *
Сначала была попытка вывода отдельных бит через SPI, работающего в режиме ведущего (мастер). Но как я ни бился, получался зазор в 1МЦ, т.е. полпиксела. Было решено перейти к режиму ведомого (слейв), а на вход SCK подать Fclk/2=5МГц.
В документации отмечено, что слейв работает только до частот Fclk/4, так как необходимо синхронизировать внешнюю частоту. Но идея была такая, что поскольку источником 5 МГц будет тот же самый микроконтроллер (вывод XCK синхронного USART), то вроде бы проблем с синхронизацией не должно быть.
Что скажете?
Да, ИМХО идея правильная!
хотя наверное то что не понадобилось дополнительных тактов для синхронизации,
это просто везение, видимо так складывается, что момент опроса/синхронизации происходит
в самом начале машинного такта...

Вобщем, вероятно, так действительно можно получать Fclk/2...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 4 2008, 23:01
Сообщение #3


Ambidexter
*****

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



Цитата(singlskv @ Mar 4 2008, 19:04) *
...это просто везение, видимо так складывается, что момент опроса/синхронизации происходит в самом начале машинного такта...

Что за момент опроса? Поясните свою мысль, не доходит чё-то.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 5 2008, 18:07
Сообщение #4


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(=GM= @ Mar 5 2008, 02:01) *
Что за момент опроса? Поясните свою мысль, не доходит чё-то.
Имелось в виду что XCK осуществляет переходы 0->1 и 1->0 в определенные моменты
такта MCU, и для того чтобы SPI Slave работало на F/2, схема синхронизации SPI должна засечь этот
переход в том же такте MCU.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:13
Рейтинг@Mail.ru


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