nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 22 Nov 2017 10:26



Reply to topic  [ 65 posts ]  Go to page 1, 2, 3, 4, 5  Next
Вывод текста 80x25 на экран ТВ с помощью SX28 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Приступил к практической реализации проекта NedoText с использованием чипа SX28:

Image

На бредборде слева-направо-сверху-вниз:
- SX28AC/DP - микроконтроллер SX28 с осциллятором на 60МГц;
- 74F163 - быстрый счётчик, использованный в качестве делителя частоты на 6;
- 74F00 - четыре И-НЕ (один вентиль для счётчика на 6 и дополнительные вентили);
- 74LS165 - сдвиговый регистр для формирования 8 точек видео из одного байта;
- HM6116P-7 - статическая память на 2К со скоростью работы 70нс;
- 74LS32 - четыре ИЛИ для формирования сигналов управления памятью, регистром и буфером;
- 74ALS245 - буфер для ввода байта извне;
- 74ALS574 - регистр для вывода старших битов адреса для памяти.
Всего 8 чипов, а в окончательной конструкции (с разбиением на две платы - NedoCPU-28+ и непосредственно сам NedoText) будет 9 чипов (добавится ещё один 74LS00 для логики чтения состояния переключателя PAL/NTSC).

_________________
:eugeek: https://twitter.com/Shaos1973


10 Dec 2006 18:56
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Прицепил все проводки:

Image

_________________
:eugeek: https://twitter.com/Shaos1973


11 Dec 2006 10:29
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 16:41
Posts: 2152
Location: От туда
Reply with quote
Post 
А оно в наводках не будет? :)


11 Dec 2006 11:01
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
HardWareMan wrote:
А оно в наводках не будет? :)


Ну может и будет в таком виде - остаётся надеяться, что наводки не превысят порога срабатывания ТТЛ ;)

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 11 Dec 2006 20:04, edited 1 time in total.



11 Dec 2006 19:34
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Первое подключение питания и мигание светодиодом прошло успешно (пришлось только пару проводков перецепить):

Image

_________________
:eugeek: https://twitter.com/Shaos1973


12 Dec 2006 02:35
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Взаимодействие с девайсом предпологается осуществлять по 10 сигналам (плюс земля): D0, D1, D2, D3, D4, D5, D6, D7, IFLAG, OFLAG (из них выходной только OFLAG, а все остальные - входы).

Внешнее устройство ждёт когда OFLAG=0, затем выводит в D0...D7 нужный код и взводит IFLAG=1, далее ждём когда OFLAG=1 и сбрасываем IFLAG=0. Пока не станет OFLAG=0 новый код засылать нельзя.

Двоичный код вида 000yyyyy задаёт текущую строку.
Двоичный код вида 1xxxxxxx задаёт текущий столбец.
Все остальные коды (в диапазоне 0x20...0x7F) считаются кодом выводимого символа.

_________________
:eugeek: https://twitter.com/Shaos1973


12 Dec 2006 02:42
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Получил на экране ТВ первую устойчивую картинку - пока только из вертикальных светлых полос...

_________________
:eugeek: https://twitter.com/Shaos1973


13 Dec 2006 03:36
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Получил на экране ТВ первую устойчивую картинку - пока только из вертикальных светлых полос...


Полосы были разной ширины и часть через некоторое время после включения исчезала - оказалось что сигнал загрузки байта был коротковат для сдвигового регистра 74LS165 (в боевой конструкции по видимому тоже надо заменить на 74F) - когда сделал два такта микроконтроллера вместо одного - полосы стали устойчивыми. Вот картинка вывода шестёрки пикселов 101000 на моём новом большом ТВ (метровая диагональ):

Image

Тоже самое снятое моей платой видеоввода - разрешение у неё не ахти и искажения цветовые:

Image

Итак считаем - по горизонтали 80 пар пикселов, по вертикали 25*8=200 идентичных строк развёртки.

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2006 00:42
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Shaos wrote:
Полосы были разной ширины и часть через некоторое время после включения исчезала - оказалось что сигнал загрузки байта был коротковат для сдвигового регистра 74LS165 (в боевой конструкции по видимому тоже надо заменить на 74F) - когда сделал два такта микроконтроллера вместо одного - полосы стали устойчивыми.


Чего-то не могу найти 74F165, зато вроде у одного из продавцов есть 74ALS165 (правда объявленный Obsolete)

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2006 10:26
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Кое чего переткнул и потестировал с выводом всех 6 пикселов знакоместа - вот картинка где в каждой строке выводится 6 младших битов номера этой строки начиная с 0 (исходники на CVS тут):

Image

На большом ТВ выглядит почти идеально (почти - потому что на глаз видны некоторые флуктуации - движение границ пикселов влево-вправо), а вот карта видеозахвата всё опять испортила своими цветовыми искажениями и ухудшенным разрешением.

_________________
:eugeek: https://twitter.com/Shaos1973


17 Dec 2006 04:22
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Перецепил сигнал сдвига опять к Q2 и поправил программу - теперь ничего не мельтешит и не сливается - однако теперь по моим расчётам выходит что на 6 экранных пикселов приходится 35 тактов контроллера, а не 36 как я считал вначале - или я неправильно такты считаю?

Code:
0018           00096 lloop: 
0018 034A      00097         rlf     line,w ; 1
0019 0341      00098         rlf     wfile,w ; 2
001A 0EFC      00100         andlw 0xFC ; 3
001B 0027      00101         movwf   portc ; 4
001C 0000      00102         nop ; 5
001D 0000      00103         nop ; 6
001E 0000      00104         nop ; 7
001F 0000      00105         nop ; 8
0020 0000      00106         nop ; 9
0021 0000      00107         nop ; 10
0022 0445      00108         bcf     porta,_ld_a ; 11
0023 0000      00109         nop ; 12
0024 0545      00110         bsf     porta,_ld_a ; 13
0025 0000      00111         nop ; 14
0026 0000      00112         nop ; 15
0027 0000      00113         nop ; 16
0028 0000      00114         nop ; 17
0029 0000      00115         nop ; 18
002A 0000      00116         nop ; 19
002B 0000      00117         nop ; 20
002C 0000      00118         nop ; 21
002D 0000      00119         nop ; 22
002E 0000      00120         nop ; 23
002F 0000      00121         nop ; 24
0030 0000      00122         nop ; 25
0031 0000      00123         nop ; 26
0032 0000      00124         nop ; 27
0033 0000      00125         nop ; 28
0034 0000      00126         nop ; 29
0035 0000      00127         nop ; 30
0036 0000      00128         nop ; 31
0037 02E9      00130         decfsz  cnt2,f ; 32
0038 0A18      00131         goto    lloop ; 33,34,35 - а работает как будто 36


Image

Кстати, подключил напрямую к плате видеоввода - вроде искажений меньше (раньше через видеомагнитофон оно было подключено)

_________________
:eugeek: https://twitter.com/Shaos1973


17 Dec 2006 18:26
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Вот закапченная картинка знакомест 80x25:

Image

_________________
:eugeek: https://twitter.com/Shaos1973


17 Dec 2006 20:16
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Неделя борьбы с внешней памятью закончилась успешно - вот скриншот, где в первых двух строках через сдвиговый регистр выводятся байты (точнее 6 старших бита от байта), прочитанные из внешней памяти (а предварительно в неё записанные):

Image

Знакоместа слева-направо:
1) 0x00
2) 0xC4
3) 0xC8
4) 0xCC
5) 0xD0
6) 0xD4
7) 0xD8
8) 0xDC
9) 0xE0
10) 0xE4
11) 0xE8
12) 0xEC
13) 0xF0
14) 0xF4
15) 0xF8
16) 0xFC
и т.д. по кругу

Загвоздка оказалась в том, что на высоких тактовых частотах (выше 50 МГц) последовательные побитные изменения битов в выходных портах не приводят к ожидаемым результатам:

bcf portb,4
bcf portb,5

это не работает - вместо этого надо писать так:

bcf portb,4
nop
bcf portb,5

после этого оба бита сбрасываются.

Исходники всё также можно взять в CVS нашего проекта на sf.net

_________________
:eugeek: https://twitter.com/Shaos1973


25 Dec 2006 21:18
Profile WWW
Banned

Joined: 12 Oct 2006 19:44
Posts: 608
Reply with quote
Post 
А цветное изображение делается кодером или используется ТВ с раздельными R,G,B-входами?


25 Dec 2006 22:39
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15719
Location: Colorado
Reply with quote
Post 
Romanich wrote:
А цветное изображение делается кодером или используется ТВ с раздельными R,G,B-входами?


В этом проекте всё черно-белое - те цветовые полосы что на картинке - это искажения в плате видеоввода, на экране ТВ всё Ок (т.е. видно только два цвета - чёрный и белый).

P.S. Кстати SX способен сам генерировать цветной видеосигнал - см. тут

_________________
:eugeek: https://twitter.com/Shaos1973


25 Dec 2006 22:52
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 65 posts ]  Go to page 1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.