Свежие обсуждения
Микроконтроллеры

Генератор текста для TV на PSoC

1 3

Это интересно. А читать порт внешний может с полной скоростью или как многие "быстрые" однокристалки с намного меньшей, а полной скорости достигать только при внутриядерных вычислениях ?

 

32.5 Мгц при скорости в 75МГц.

 

Wladimir_TS: А читать порт внешний может с полной скоростью
Незнаю, как там читать,но прочитав , начнется *ботня вокруг одного регистра, именуемого рабочим.
Да, и некоторые сомнения, вызывает картинка из даташита 15-1, где черным по белому нарисовано, что команда выполняется за 4 такта. Все это до боли что-то напоминает

 

И с внешней памятью данных работать, конечно, не умеем

ЗЫ: А есть что-то, что имея производительности не менее 100 МИПС и или внутри не менее 4 кБ ОЗУ и скорость чтения порта не ниже 30 МГц ну и главное - корпус с выводами, шагом не менее 1,27...

 

2 all
AVR это хорошо но пройденный этап.
В ПСОКе главный цимес для оверлея в том, что селектор синхры можно сделать в самой ПСОК.

2 Idiod. Никак не могу разобраться с твоим кодом. Во-первых память ни причем. Если компилить с опцией "no paging" физически получается тот же чип. Впрочем это рояли не играет. Очень не понятны моменты где ты делаеш or reg(), 0. Stall не помогает. Что означает:
mov A, reg[SPIM_1_FUNCTION_REG]
mov A, reg[SPIM_1_FUNCTION_REG]
mov A, reg[SPIM_1_FUNCTION_REG]
mov A, reg[SPIM_1_FUNCTION_REG]
mov A, reg[SPIM_1_FUNCTION_REG]
mov A, reg[SPIM_1_FUNCTION_REG]
если задержка, то весьма странно.
Короче выкинул из обработчика прерываний все и вставил:
mov reg[SPIM_1_TX_BUFFER_REG],0b01010101
как тест.
Выводит, но
1. Спустя 24 us после начала строки
2. Гуляет на +-2us
Стартовый бланк почему-то все равно наличествует.

 

Ага, забыл убрать пропуск бланков, когда убрал картинка стабилизировалась наконец, т.е. 4 вертикальные полосы почти без размытия. Но добавление любой команды в цикл обработки пр. в том числе M8C_Stall безнадежно все портит. ИМХО блоки счетчиков работают совершенно независимо от процессора. Как то надо их привязать.

 

Очень не понятны моменты

Думаешь я помню?!!
Скорее всего -- "мусор", оставшийся после экспериментов.
Не забывай, что это демонстрационный проект, даже хуже -- первая рабочая версия, дающая устойчивую картинку.
Описанный участок кода -- действительно задержка, и действительно странно выглядит (т.к.размножил то, что первое попало под руку )

Поищу похожий проект, но портированный на CY8C24794 (USB), там тоже страничная организация памяти.

В ПСОКе главный цимес для оверлея в том, что селектор синхры можно сделать в самой ПСОК

В точку.
Мне, честно говоря, надоело возиться. Здесь джиттер побороть сложнее.

Еще можно реализовать почти полностью аппаратный курсор и прочие спецэффекты.

 

... и даже графический массив с горизонтальным разрешением 256 пикселов.

 

... введена страничная организация со специальными указателями....

Вот как можно проинициализировать указатели и установить режим адресации для совместимости с "малой моделью памяти":

_main:
RAM_SETPAGE_IDX 0
RAM_SETPAGE_CUR 0
RAM_SETPAGE_MVW 0
RAM_SETPAGE_MVR 0
RAM_CHANGE_PAGE_MODE (2)

Далее надо поэкспериментировать с задержками (с шагом в 1 такт, перебрав 16 значений, три из них, насколько я помню, дадут устойчивую картинку):
; set of delays
;-------------------------
; nop ;(4)
;-------------------------
; swap A,X ;(5)
;-------------------------
; mov A,[X+0] ;(6)
;-------------------------
; cmp A,[0] ;(7)
;-------------------------
; nop ;(8)
; nop
;-------------------------
; nop ;(9)+
; swap A,X
;-------------------------
; swap A,X ;(10)+
; swap A,X
;-------------------------
; nop ;(11)+
; cmp A,[0]
;-------------------------
; и т.д.

 
1 3