|
ATMega128 - проблема с SPI Master, при выводе строки видеоизображения |
|
|
|
Oct 3 2012, 15:35
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Здравствуйте. Помогите разобраться с проблемой ... Формирую на ATMega128 видеосигнал при помощи SPI. Устанавливаю режим Master, двойная скорость. Одна точка изображения занимает два такта. Необходимо выводить байт за байтом непрерывно. Всего 48 байт. Инициализация: LDI BUF,(1<<SPE)|(1<<MSTR)|(1<<CPHA); 4 OUT SPCR,BUF ; SPI LDI BUF,1<<SPI2X ; CONFIGURATION OUT SPSR,BUF ; (BUF - временный регистр) SS устанавливаю на вывод единицы. MOSI устанавливаю на выход.
Начинаю вывод строки: VSTRLOOP: OUT SPDR,VDATA24 ; 1 - начинаю вывод данных OUT ATTRPORT,ATTR ; 2 - это вывод аттрибутов цвета изображения LD VDATA24,X+ ; 4 - читвю из ОЗУ очередной байт данных LD ATTR,Y+ ; 6 - и очередной аттрибут цвета NOP ; 7 - выравниваю время нопами NOP ; 8 NOP ; 9 NOP ; 10 NOP ; 11 NOP ; 12 NOP ; 13 CPI XL,0X40 ; 14 - в конце проверяю на предмет передачи последнего байта BRNE VSTRLOOP ; 15 /> 16 - цикл NOP ; 16
Такты подсчитываю в комментариях.
В результате: первый байт передаётся правильно. Второй - не передаётся, вместо него на экране вижу последний переданный бит - белую черту в случае если последним битом была единица и тёмную - если был ноль. Третий байт опять корректный, четвёртый - как второй и так далее до конца строки. В общем пока не понял что это такое и как добиться задуманного.
Сообщение отредактировал Lisitsin - Oct 3 2012, 16:47
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
 |
Ответов
|
Oct 3 2012, 16:07
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Цитата(Lisitsin @ Oct 3 2012, 19:35)  Формирую на ATMega128 видеосигнал при помощи SPI. Устанавливаю режим Master, двойная скорость. Одна точка изображения занимает два такта. Необходимо выводить байт за байтом непрерывно. Всего 48 байт. ИМХО, это принципиально невозможно. Новые данные в SPDR можно загрузить только после передачи предыдущего байта (т.е. на семнадцатом такте). Цитата(Lisitsin @ Oct 3 2012, 19:35)  В результате: первый байт передаётся правильно. Второй - не передаётся, вместо него на экране вижу последний переданный бит - белую черту в случае если последним битом была единица и тёмную - если был ноль. Третий байт опять корректный, четвёртый - как второй и так далее до конца строки. Эти симптомы подтверждают сказанное мной выше. Чтобы убедится в этом окончательно - добавьте один NOP к группе пустых операторов в "выравнивании времени". Думаю, что тут же появятся и четные байты, а вот последние пикселы каждого байта будут в полтора раза "длиннее" остальных...
|
|
|
|
|
Oct 3 2012, 16:12
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(Палыч @ Oct 3 2012, 20:07)  ИМХО, это принципиально невозможно. Новые данные в SPDR можно загрузить только после передачи предыдущего байта (т.е. на семнадцатом такте).
Эти симптомы подтверждают сказанное мной выше.
Чтобы убедится в этом окончательно - добавьте один NOP к группе пустых операторов в "выравнивании времени". Думаю, что тут же появятся и четные байты, а вот последние пикселы каждого байта будут в полтора раза "длиннее" остальных... Так я и передаю следующий байт семнадцатым тактом. Там я в комментариях каждый такт считаю (см. выше). А ноп втыкать пробовал, и не один - результат тот же (в смысле нет результата).
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
Сообщений в этой теме
Lisitsin ATMega128 - проблема с SPI Master Oct 3 2012, 15:35 chernenko я бы проверил осциллографом что там физически выхо... Oct 3 2012, 15:37 Lisitsin Цитата(chernenko @ Oct 3 2012, 19:37) я б... Oct 3 2012, 15:55   Lisitsin Цитата(Палыч @ Oct 3 2012, 20:18) Нет, ше... Oct 3 2012, 16:21    Палыч Цитата(Lisitsin @ Oct 3 2012, 20:21) Я их... Oct 3 2012, 16:31     Lisitsin Цитата(Палыч @ Oct 3 2012, 20:31) В том, ... Oct 3 2012, 16:41    Палыч Цитата(Lisitsin @ Oct 3 2012, 20:21) Я их... Oct 4 2012, 02:02     zombi Цитата(Палыч @ Oct 4 2012, 05:02) В этом ... Oct 4 2012, 04:47 ILYAUL ЦитатаИз 48 байт ...
КодCPI XL,0X40 = 64 или первы... Oct 3 2012, 17:56 Maik-vs Непрерывную строку пикселов выводить не получается... Oct 4 2012, 09:24 Lisitsin Спасибо.
Да, действительно. Сегодня плотно повозил... Oct 4 2012, 15:12 ILYAUL А какая частота строчной развёртки? Oct 5 2012, 08:10 Lisitsin Цитата(ILYAUL @ Oct 5 2012, 12:10) А кака... Oct 6 2012, 06:08  Палыч Цитата(Lisitsin @ Oct 6 2012, 10:08) Имее... Oct 6 2012, 07:18 rx3apf В новых мегах можно настроить USART как SPI Master... Oct 5 2012, 20:24 rx3apf Да, и в младших (48/88/168). Если нужно что-то мно... Oct 6 2012, 08:24 ILYAUL Ну, вот полмысли Вам уже высказали- UART - и это ... Oct 6 2012, 18:37 Lisitsin Не, USART не пойдёт. Там старт и стоп биты. Ещё ху... Oct 7 2012, 07:05  ILYAUL Цитата(Lisitsin @ Oct 7 2012, 11:05) Там ... Oct 7 2012, 09:34   Палыч Цитата(ILYAUL @ Oct 7 2012, 13:34) Какие ... Oct 7 2012, 12:43    Lisitsin Цитата(Палыч @ Oct 7 2012, 16:43) Не знак... Oct 7 2012, 14:54  Палыч Цитата(Lisitsin @ Oct 7 2012, 11:05) ... ... Oct 8 2012, 15:29   Lisitsin Цитата(Палыч @ Oct 8 2012, 19:29) Заменит... Oct 11 2012, 15:34 Палыч Цитата(ILYAUL @ Oct 6 2012, 22:37) ...дел... Oct 7 2012, 07:41 ILYAUL А вот Вы меня по настоящему пугаете. Я уж воспольз... Oct 7 2012, 16:29 Палыч Цитата(ILYAUL @ Oct 7 2012, 20:29) на ..н... Oct 7 2012, 16:45 ILYAUL Да нет там ни старта ни стопа. Ну посмотрите внима... Oct 7 2012, 17:09 Lisitsin Народ, я уже готов поверить в отсутствие старт/сто... Oct 7 2012, 17:23 Палыч Цитата(ILYAUL @ Oct 7 2012, 21:09) Вся си... Oct 7 2012, 17:39 ILYAUL Вот первая из приведённых мной диаграмм - пересыла... Oct 7 2012, 18:09 Палыч Цитата(ILYAUL @ Oct 7 2012, 22:09) PIC16F... Oct 7 2012, 18:16  ILYAUL Цитата(Палыч @ Oct 7 2012, 22:16) Этот по... Oct 7 2012, 18:42 rx3apf Примите за данность - синхронный режим в AVR не та... Oct 7 2012, 18:51 ILYAUL Цитата(rx3apf @ Oct 7 2012, 22:51) Примит... Oct 7 2012, 19:14 ILYAUL Как это не смешно но у support нет диаграм работы ... Oct 8 2012, 12:41
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|