Jump to content

    

Lisitsin

Участник
  • Content Count

    229
  • Joined

  • Last visited

Everything posted by Lisitsin


  1. Народ, я уже готов поверить в отсутствие старт/стоп бит в синхронном режиме, но проштудировав datasheet на ATMega128 ничего подобного не нашёл ... Ну будьте любезны, ткните меня носом ... Если это так, я просто возрадуюсь !!! ЗЫ - а диаграммы эти вообще не оттуда )))
  2. Вот вот, а то я уже тоже испугаться уже хотел ...
  3. Не, USART не пойдёт. Там старт и стоп биты. Ещё хужее будет ... А другой пин-несовместимый процессор ставить - эт значит весь проект перелопатить, а он у меня уже в завершённой стадии. Простро я пытаюсь на этой же платформе сделать эмуляцию уже другой машины ...
  4. Стандартная. 15.625 КГц. Новые меги ... Имеется ввиду ATMega128A- ... ?
  5. Спасибо. Да, действительно. Сегодня плотно повозился с этим делом. Наилучший эффект получается только с двумя дополнительными нопами плюс к 16 тактам. Последний бит неизбежно затягивается. Я разозлился и сделал следующее: начинаю делать вывод данных через SPI. Пока они выводятся вывожу в порт B: MOSI последний - нулевой бит данных. Когда доходит дело до вывода этого самого бита через SPI жестоко выключаю SPI по питанию. В этот момент конфигурация порта В:MOSI изменяется и на линии оказывается записанное прежде в порт В последнего бита. Тут же включаю SPI. В результате портятся пол точки на экране. Затем повторяю весь цикл. Но и тут возникает загвоздка. Всё равно корректность работы SPI зависит от ДАННЫХ, которые я передаю. И при определённых данных опять чётные передачки ломаются. Короче после этого я окончательно разозлился на SPI и стал выводить данные вручную по 3 такта на точку. Как раз 48 байт умещаются в строке, но на экране я вижу только 43, а 5 по-моему оказываются в зоне сигналов гашения TV тюнера. Вот такая вот история.А код такой: .MACRO VIDEOSTRING_ OUT PORTB,VDATA1 ; 7 OUT ATTRPORT,ATTR ; 7 LSL VDATA1 ; 7 OUT PORTB,VDATA1 ; 6 BST VDATA1,1 ; 6 SAVE BIT 0 LSL VDATA1 ; 6 OUT PORTB,VDATA1 ; 5 BLD VDATA10,PIXEL ; 5 TO VDATA10:PIXEL LSL VDATA1 ; 5 OUT PORTB,VDATA1 ; 4 BST VDATA1,4 ; 4 SAVE BIT 1 LSL VDATA1 ; 4 OUT PORTB,VDATA1 ; 3 BLD VDATA11,PIXEL ; 3 TO VDATA11:PIXEL LSL VDATA1 ; 3 OUT PORTB,VDATA1 ; 2 LD VDATA1,X+ ; 2 OUT PORTB,VDATA11 ; 1 ;LD ATTR,Y+ ; 1 LDI BUF,0B01000111 MOV ATTR,BUF OUT PORTB,VDATA10 ; 0 NOP ; 0 NOP ; 0 OUT PORTB,VDATA1 ; 7 OUT ATTRPORT,ATTR ; 7 LSL VDATA1 ; 7 OUT PORTB,VDATA1 ; 6 BST VDATA1,1 ; 6 SAVE BIT 0 LSL VDATA1 ; 6 OUT PORTB,VDATA1 ; 5 BLD VDATA10,PIXEL ; 5 TO VDATA10:PIXEL LSL VDATA1 ; 5 OUT PORTB,VDATA1 ; 4 BST VDATA1,4 ; 4 SAVE BIT 1 LSL VDATA1 ; 4 OUT PORTB,VDATA1 ; 3 BLD VDATA11,PIXEL ; 3 TO VDATA11:PIXEL LSL VDATA1 ; 3 OUT PORTB,VDATA1 ; 2 LD VDATA1,X+ ; 2 OUT PORTB,VDATA11 ; 1 ;LD ATTR,Y+ ; 1 LDI BUF,0B01000111 MOV ATTR,BUF OUT PORTB,VDATA10 ; 0 NOP ; 0 CLR BUF ; 0 .ENDMACRO А схема есть в ворде (вложение). ASpect_128.zip
  6. Не раньше. Проблема совсем не в этом. SPI по скорости настроен как надо: 2 такта процессора не точку, и на экране я вижу то же самое ...Передаю 0B10101010 и вижу 4 точки и 4 пробела. Из 48 байт вижу ровно 24 корректных и 24 некоректных.
  7. Я их там три штуки пробовал ставить. Ничего. Строчная синхронизация уже слетать начинает. Да и делу это не поможет - мне нужно непрерывное изображение, без затягиваний ...
  8. Так я и передаю следующий байт семнадцатым тактом. Там я в комментариях каждый такт считаю (см. выше). А ноп втыкать пробовал, и не один - результат тот же (в смысле нет результата).
  9. Проблема точно не в другом. Видеосигнал я принимаю USB TV тюнером Beholder по нч видеовходу. Есть другая программа, где я вывод делаю вручную, и и она работает отлично, но там получается три такта на пиксел, а мне недо 2. А вот если в конце передачи байта выключть SPI и тут же включить, то всё становится на свои места. Но только на место этого включения/выключения смотреть неприятно. Пиксел затянут. Схемка во вложении) ASpect128.sch
  10. Здравствуйте. Помогите разобраться с проблемой ... Формирую на 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 Такты подсчитываю в комментариях. В результате: первый байт передаётся правильно. Второй - не передаётся, вместо него на экране вижу последний переданный бит - белую черту в случае если последним битом была единица и тёмную - если был ноль. Третий байт опять корректный, четвёртый - как второй и так далее до конца строки. В общем пока не понял что это такое и как добиться задуманного.
  11. Полный проект со всеми исходниками: http://dl.dropbox.com/u/12408899/Aspect128...l%20project.zip
  12. Полный проект со всеми исходниками: http://dl.dropbox.com/u/12408899/Aspect128...l%20project.zip
  13. Разработан спектрум для установки внутрь стандартной клавиатуры. Фотографии здесь: http://dl.dropbox.com/u/12408899/ASpect%20128%20Photos.zip Пример работы здесь: http://www.youtube.com/watch?v=7teBhk85eqM...6V9m-5iIct-qBg= Схема здесь: http://zx.pk.ru/attachment.php?attachmenti...mp;d=1333384254 и здесь: http://dl.dropbox.com/u/12408899/AVR%20ZX%20Spectrum.zip Поддерживается режим 128 К.
  14. Разработан спектрум для установки внутрь стандартной клавиатуры. Фотографии здесь: http://dl.dropbox.com/u/12408899/ASp...8%20Photos.zip Пример работы здесь: http://www.youtube.com/watch?v=7teBh...V9m-5iIct-qBg= Схема здесь: http://zx.pk.ru/attachment.php?attac...3&d=1333384254 и здесь: http://dl.dropbox.com/u/12408899/AVR...20Spectrum.zip
  15. Да я так и делаю пока. Душа просто не на месте, когда мегу наизнанку выворачиваешь ...
  16. Здравствуйте. Интересуюсь вышеуказанным вопросом. Интересно, Атмел делает такие штуки и если да - где можно достать? Дело в том, что в проекте у меня две ATMega128 с обращением к одной внешней RAM, и развести их без пин-реверса проблематично. Спасибо.
  17. Ладно, спускаться до 16 чувствую надо ... RAM заказывал в компании "Контент", Москва. Вот адресочек человека: Андрей Леонтенко <lnt.andrey@conten-m.ru>
  18. А какая ещё мега имеет 128кX20МГцXXRAM64к? А ISSI уж давно 12 нС делает ...
  19. Да у меня два девайса одинаковые с одинаковым софтом. В один вот поставил буквк А. Полная фигня на 20 МГц. Сейчас вот спустился на 18,432 МГц - лучше, но сбоит. Короче, 128-ые ашки - не гонятся совсем ...
  20. Осциллографом не смотрел. Глюки начались после того, как в рабочем устройстве заменился на А. SRAM IS62C1024AL-12. Сейчас купил ещё одну микросхему с буквой А и заменил. Работать стало намного устойчивее, но всё равно зависает и сбоит. С -16 такого не было ....
  21. Соединены. Были. Я вывод 24 памяти - тот, который земля - от остальной земли оторвал и соединил с ней через 47 Ом. Таким образом потенциал земли памяти поднялся на 0,4 В. И ничего ...
  22. Пробовал землю памяти соединять с землёй процессора через 47 ом и в параллель 10 мкФ. Вольтметром мерею - 0,4 В. Но без результата. Через 1 кОм на землю каждый провод - их там 19. Буду надеяться, до этого не дойдёт ...