nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 14:38



Reply to topic  [ 146 posts ]  Go to page Previous  1 ... 6, 7, 8, 9, 10  Next
Плата центрального недопроцессора nedoCPU-32 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
С помощью одной 74F00 и двух 74F74 сделал 320x200 2-бита на точку :)

А также я вариант со счётчиком 74LS161 попробовал - тоже летает как надо (и позволяет варьировать кол-во битов на пиксел вплоть до 16)

Shaos wrote:
Теперь эти 2 бита надо завести на палитру, которую затем завести на AD725 (она правда уже $11 стоит - в 3 раза дороже чем PIC32)

P.S. Короче дорого получается если дополнительное железо добавлять (хоть спец.чип, хоть мелкую логику, генерящую синусоиды)...

P.P.S. На самом деле можно отпочковать отсюда проджект Xorya-II, который будет уже не дешёвой игровой приставкой, а типа компьютером с клавиатурой, SD-карточкой, сетью и т.д.

Вместо мелкой логики туда можно приделать CPLD от Xilinx - тот же xc9536 например ;)
Да и второй PIC32 можно поставить как сопроцессор для сетевых и математических нужд :)

_________________
:dj: https://mastodon.social/@Shaos


21 Oct 2016 07:37
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Фокус, который я открыл с TS2068 на PIC32 (и на другом ТВ) тоже работает - т.е. если быстро щёлкать кадрами (полукадрами) ожидая возврата луча, то ТВ сам соберёт полукадры черезстрочно, т.е. фактическое цветное разрешение получается 160x400 вместо 160x200 (а чёрно-белое - 640x400)!!!

P.S. Хм, а эта INSIGNIA, которая с неточным кварцем отказывалась показывать цвет (а с точным показывает) теперь отказывается показыать мои чёрно-белые режимы, причём совсем (цветные показывает)...

_________________
:dj: https://mastodon.social/@Shaos


21 Oct 2016 20:45
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Фокус, который я открыл с TS2068 на PIC32 (и на другом ТВ) тоже работает - т.е. если быстро щёлкать кадрами (полукадрами) ожидая возврата луча, то ТВ сам соберёт полукадры черезстрочно, т.е. фактическое цветное разрешение получается 160x400 вместо 160x200 (а чёрно-белое - 640x400)!!!

Короче недостаток горизонтального разрешения по цвету (160) можно компенсировать избытком вертикального разрешения (400) :lol:

Attachment:
xorya-shaos-sony.jpg
xorya-shaos-sony.jpg [ 80.11 KiB | Viewed 11911 times ]

Это я каждую горизонтальную пару пикселов из своего аватара повернул на 90 градусов и разнёс по полукадрам :roll:
Выше большой телек SONY, а ниже - небольшой INSIGNIA (оба собирают полный кадр из полукадров):

Attachment:
xorya-shaos-insignia.jpg
xorya-shaos-insignia.jpg [ 63.53 KiB | Viewed 11898 times ]

P.S. А вот как это показывает телек поменьше да попроще (который не умеет из полукадров собирать полный кадр, а просто тупо накладывает полукадры друг на друга):

Attachment:
xorya-shaos-craig.jpg
xorya-shaos-craig.jpg [ 76.33 KiB | Viewed 11911 times ]


P.P.S. Может мне сделать официальный видеорежим с таким фейковым интерлейсом? Хотя бы чёрно-белый 640x400 (ядро само по прерыванию будет переключать видеобуфера) - и то куда веселее будет (разбавленным дизерингом чёрно-белым полутоновым изображениям по сути не важно в каком порядке идут чётные и нечётные строки)? Вот например что можно будет показать в таком режиме на экране ТВ:

Attachment:
Fujiya.gif
Fujiya.gif [ 16.58 KiB | Viewed 11893 times ]

_________________
:dj: https://mastodon.social/@Shaos


21 Oct 2016 22:22
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот собственно вся дема:


https://youtu.be/xI5DuTKPWsA

_________________
:dj: https://mastodon.social/@Shaos


09 Nov 2016 05:58
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Вот такую штуку сделал и вывесил на Hackaday - реакции 0, видать народ испугался озвученной цены конечного продукта в $29.95...


Attachments:
xorya-prototype-small.jpg
xorya-prototype-small.jpg [ 119.46 KiB | Viewed 11844 times ]

_________________
:dj: https://mastodon.social/@Shaos
19 Nov 2016 17:53
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Тут общая стоимость не только от проца ($4) зависит, т.к. ещё есть аналоговый джойстик ($6) и ZIF-разъём ($9), да и плату дешевле чем $3.50 не сделать. Видимо надо с чего-то дешевле начинать - например конструктор для сборки на бредборде ($5) и ОДНА кнопка (для игр типа Flappy Bird)...

_________________
:dj: https://mastodon.social/@Shaos


19 Nov 2016 17:55
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Тут общая стоимость не только от проца ($4) зависит, т.к. ещё есть аналоговый джойстик ($6) и ZIF-разъём ($9), да и плату дешевле чем $3.50 не сделать. Видимо надо с чего-то дешевле начинать - например конструктор для сборки на бредборде ($5) и ОДНА кнопка (для игр типа Flappy Bird)...

Коллега по работе предложил заюзать touch-сенсоры, вытравленные непосредственно на самой печатной плате - в этом случае никаких кнопок по доллару и тем более джойстиков за 6 баксов НЕБУДЕТ - только по одному резистору на сенсор!


https://www.youtube.com/watch?v=bv8ZcvTWauI

Алгоритм опроса:
Code:
int tch[4],cc[5],c,i;
ConfigCNBPullups(CNB8_PULLUP_ENABLE|CNB9_PULLUP_ENABLE|CNB10_PULLUP_ENABLE|CNB11_PULLUP_ENABLE);
....
// somewhere in the game loop:
 tch[0]=tch[1]=tch[2]=tch[3]=5;
 mPORTBSetPinsDigitalOut(BIT_8|BIT_9|BIT_10|BIT_11);
 mPORTBClearBits(BIT_8|BIT_9|BIT_10|BIT_11);
 mPORTBSetPinsDigitalIn(BIT_8|BIT_9|BIT_10|BIT_11);
 cc[0] = mPORTBRead();
 cc[1] = mPORTBRead();
 cc[2] = mPORTBRead();
 cc[3] = mPORTBRead();
 cc[4] = mPORTBRead();
 for(i=0;i<5;i++)
 {
  c = cc[i];
  if((c&BIT_8) && tch[0]==5) tch[0]=i;
  if((c&BIT_9) && tch[1]==5) tch[1]=i;
  if((c&BIT_10) && tch[2]==5) tch[2]=i;
  if((c&BIT_11) && tch[3]==5) tch[3]=i;
}

т.е. сначала ставим эти 4 ноги на выход, выводим нули и тут же переключаем на вход считая далее как долго на этих входах сохранятся нули - если больше 1, то сенсор "потроган" (эксперимент показал, что обычно это 2 или 3 итерации цикла).

P.S. В июне 2021 года нашёл этот прототип и сфоткал - я гляжу тут резисторов вообще нету (внутри микроконтроллера включены PULLUP-ы на этих входах) - просто кусочки текстолита покрытые прозрачным скотчем :)


Attachments:
Xorya-Touch-proto.jpg
Xorya-Touch-proto.jpg [ 125.15 KiB | Viewed 7626 times ]

_________________
:dj: https://mastodon.social/@Shaos
04 Mar 2017 19:00
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post Re:
Shaos wrote:
Частично собрал и потестил :)

Попробовал PIC32 в DIP-28 - распознаётся:

Image

У нас, оказывается, втихаря работает центральный магазин "Радиотовары"... :roll:
Я на неделе им позвонил - типа нет ли доставки деталей на дом? А они отвечают - приезжайте, мы работаем...
Сегодня написал списочек и поехал... а до пандемии я присматривался там на такой Pickit, как у тебя, но не купил.

А сегодня спросил цену - он не подорожал, думаю - надо купить, коли так... ну и купил. 8)

Всё выглядит очень забавно: в двери магазина они сделали окно, как в ларьке. Рядом висит объявление:
"Уважайте друг друга: соблюдайте дистанцию 2 м.!" :wink:

_________________
iLavr


30 Apr 2020 06:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Наткнулся на прототип Xorya Touch в коробке со всякими железяками - сфоткал и прицепил выше в соответствующем сообщении

_________________
:dj: https://mastodon.social/@Shaos


28 Jun 2021 20:58
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Может мне сделать официальный видеорежим с таким фейковым интерлейсом? Хотя бы чёрно-белый 640x400 (ядро само по прерыванию будет переключать видеобуфера) - и то куда веселее будет (разбавленным дизерингом чёрно-белым полутоновым изображениям по сути не важно в каком порядке идут чётные и нечётные строки)? Вот например что можно будет показать в таком режиме на экране ТВ:

Image

Надо чтоли вспомнить как PIC32 программится да прошивается и уже попробовать :roll:

P.S. Оригинал картинки бобинника можно поглядеть вот тут

P.P.S. Для защиты от перепутывания чётных и нечётных строк можно делать не монохром 640x400, а 5 градаций серого в 320x200 - тогда можно каждый пиксел заменить на квадрат 2х2 (с потерей чёткости):
Code:
0x0 -> 0 0 = 0 0
       0 0   0 0

0x1 -> 0 0 = 0 1
       0 1   0 0

0x2 -> 1 0 = 0 1
       0 1   1 0

0x3 -> 1 1 = 0 1
       0 1   1 1

0x4 -> 1 1 = 1 1
       1 1   1 1
(также дописал справа вариант в случае перестановки чётных и нечётных строк местами - так понятнее будет что я имею ввиду)

P.P.P.S. Либо сохранить высокое горизонтальное разрешение ограничившись ТРЕМЯ градациями серого для пиксела в картинке разрешением 640x200 и делать "интеллектуальный" дизеринг, который будет учитывать накапливаемую по ходу строки ошибку и учитывать её при подгоне следующих двоек монохромных пикселов...

_________________
:dj: https://mastodon.social/@Shaos


30 Sep 2022 21:22
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Надо чтоли вспомнить как PIC32 программится да прошивается и уже попробовать :roll:
Вспомнил :)
У меня в дебияне уже 4 года как стоит MPLAB X IDE v5.05 - ставил когда готовился к суперконференции хакадея в конце 2018 года.
Она запустилась без вопросов и даже PICKit3 обнаружила ;)


Attachments:
Xorya-220930-00.jpg
Xorya-220930-00.jpg [ 76.01 KiB | Viewed 5619 times ]

_________________
:dj: https://mastodon.social/@Shaos
30 Sep 2022 22:36
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:
Вот так отработал пример config.c:
Code:
/* config.c - A.A.Shabarshin (April 2015) */

#include "xorlib.h"

int main()
{
 unsigned long conf = xoconfig();

 xoprintf("XORLib v%i.%i configuration:\n",
   XORLIB_VERSION>>8, XORLIB_VERSION&0xFF);

 if(conf & (1<<XOMODE_320x200_MONO))
   xoprintf("XOMODE_320x200_MONO\n");
 if(conf & (1<<XOMODE_160x100_GRAY5))
   xoprintf("XOMODE_160x100_GRAY5\n");
 if(conf & (1<<XOMODE_640x200_MONO))
   xoprintf("XOMODE_640x200_MONO\n");
 if(conf & (1<<XOMODE_320x100_GRAY5))
   xoprintf("XOMODE_320x100_GRAY5\n");
 if(conf & (1<<XOMODE_160x200_COL15))
   xoprintf("XOMODE_160x200_COL15\n");
 if(conf & (1<<XOMODE_160x100_COL120))
   xoprintf("XOMODE_160x100_COL120\n");
 if(conf & (1<<XOMODE_320x200_COL4))
   xoprintf("XOMODE_320x200_COL4\n");
 if(conf & (1<<XOMODE_160x200_COL16))
   xoprintf("XOMODE_160x200_COL16\n");
 if(conf & (1<<XOMODE_320x200_COL16))
   xoprintf("XOMODE_320x200_COL16\n");
 if(conf & (1<<XOMODE_160x200_COL256))
   xoprintf("XOMODE_160x200_COL256\n");
 if(conf & (1<<XOMODE_640x200_COL16))
   xoprintf("XOMODE_640x200_COL16\n");
 if(conf & (1<<XOMODE_320x200_COL256))
   xoprintf("XOMODE_320x200_COL256\n");
 if(conf & (1<<XOMODE_640x350_COL16))
   xoprintf("XOMODE_640x350_COL16\n");
 if(conf & (1<<XOMODE_640x480_COL16))
   xoprintf("XOMODE_640x480_COL16\n");
 if(conf & (1<<XOMODE_800x600_COL16))
   xoprintf("XOMODE_800x600_COL16\n");
 if(conf & (1<<XOMODE_EXTENDED_VGA))
   xoprintf("XOMODE_EXTENDED_VGA\n");

 if(conf & XOCONFIG_BIGENDIAN)
   xoprintf("BIG ENDIAN\n");
 else
   xoprintf("LITTLE ENDIAN\n");
 if(conf & XOCONFIG_32BITINT)
   xoprintf("32-BIT INT\n");
 else
   xoprintf("16-BIT INT\n");
 if(conf & XOCONFIG_NTSCTV)
   xoprintf("NTSC TV\n");
 if(conf & XOCONFIG_PALTV)
   xoprintf("PAL TV\n");
 if(!(conf & XOCONFIG_NTSCTV)&&
    !(conf & XOCONFIG_PALTV))
   xoprintf("MONITOR\n");
 if(conf & XOCONFIG_NETWORK)
   xoprintf("NETWORK\n");
 if(conf & XOCONFIG_KEYBOARD)
   xoprintf("KEYBOARD\n");
 if(conf & XOCONFIG_MOUSE)
   xoprintf("MOUSE\n");
 if(conf & XOCONFIG_SDCARD)
   xoprintf("SD-CARD\n");
 if(conf & XOCONFIG_CDROM)
   xoprintf("CD-ROM\n");
 
 return 0;
}


Image

P.S. Кстати оказалось, что PIC32 работает в режиме "little-endian", а я так надеялся, что он big (MIPS-ы вроде умеют и так, и эдак)...

Вот поправил кой-чего в тексте примера, собрал и запустил (через 7.5 лет) - пришлось поставить явно режим (цветной) - в результате текст "раскрасился" :)

Attachment:
Xorya-220930-01.jpg
Xorya-220930-01.jpg [ 39.53 KiB | Viewed 5660 times ]


Также за прошедшие годы (последний раз код XORLib я трогал в 2016 году) либа "забыла", что по умолчанию она должна ставить режим XOMODE_320x200_MONO, чтобы с ходу работал самый простой хелловорлд:
Code:
#include "xorlib.h"

int main()
{
 xoprintf("Hello, World!");
 return 0;
}


P.S. По ходу режимы XOMODE_320x200_MONO и XOMODE_640x200_MONO дают чёрные экраны :(

P.P.S. Ха - это не либа виновата, а телек! Подключил другой телек и чёрно-белые режимы заработали как надо!!!

_________________
:dj: https://mastodon.social/@Shaos


30 Sep 2022 22:58
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Решил поглядеть что будет, если 4-пиксельные паттерны обрывать в середине - для начала простецкий телек CRAIG (который тем не менее может показывать как цветной, так и монохромные режимы):

Attachment:
Xorya-221001-01.jpg
Xorya-221001-01.jpg [ 171.38 KiB | Viewed 5646 times ]

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

P.S. А вот телек INSIGNIA, который получше (хоть и не способный различить NTSC сигнал если в строках нету "color burst" - именно он не хочет показывать монохромные режимы Xorya):

Attachment:
Xorya-221001-02.jpg
Xorya-221001-02.jpg [ 118.48 KiB | Viewed 5646 times ]

Вывод - на границах цветов скорее всего будут артефакты и реальное разрешение 160 цветных пикселов в строке, однако граница между чёрным и белым должна быть с точностью 640 пикселов, а между серым и чёрным или серым и белым - 320 пикселов в строке, что уже не плохо!

P.P.S. Это я всё думаю как бы развёртку ZX натянуть на эту графику...

_________________
:dj: https://mastodon.social/@Shaos


01 Oct 2022 01:50
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Shaos wrote:

вот примерно так:

Attachment:
Xorya-221001-03.jpg
Xorya-221001-03.jpg [ 214.31 KiB | Viewed 5641 times ]


или тоже самое на другом, более "умном" телеке:

Attachment:
Xorya-221001-04.jpg
Xorya-221001-04.jpg [ 124.75 KiB | Viewed 5641 times ]

тут можно видеть, что этот телек "съедает" отдельно стоящие пикселы...

P.S. На современном большом телеке это всё конечно выглядит несколько повеселее:


Attachments:
Xorya-221002-01.jpg
Xorya-221002-01.jpg [ 68.61 KiB | Viewed 5598 times ]

_________________
:dj: https://mastodon.social/@Shaos
01 Oct 2022 03:34
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Научил Xorya показывать картинки ZX-Spectrum в формате SCR:

Attachment:
Grongy - ZXPSX (2021).png
Grongy - ZXPSX (2021).png [ 6.46 KiB | Viewed 5593 times ]


Attachment:
Xorya-221002-02.jpg
Xorya-221002-02.jpg [ 139.33 KiB | Viewed 5593 times ]


По идее ничо так, но чередующиеся чёрные и белые (серыe) полоски могут сформировать на телевизоре несуществующие цвета.

Attachment:
MAC - La Aventura Espacial (2020).png
MAC - La Aventura Espacial (2020).png [ 15.02 KiB | Viewed 5593 times ]


Attachment:
Xorya-221002-03.jpg
Xorya-221002-03.jpg [ 211.64 KiB | Viewed 5593 times ]


А вот более сложная картинка к сожалению превращается в цветное месиво :(

_________________
:dj: https://mastodon.social/@Shaos


02 Oct 2022 19:30
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 146 posts ]  Go to page Previous  1 ... 6, 7, 8, 9, 10  Next

Who is online

Users browsing this forum: No registered users and 8 guests


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.