PDA

Просмотр полной версии : TK-Pie сборка и настройка



SoftLight
11.11.2018, 20:01
Всем привет! Помогите советом, может уже кто запустил сабж?

Собрал я TK-Pie от Victor Trucco (https://gitlab.com/victor.trucco/TK-Pie) на плате от Павла (https://zx-pk.com/forum/viewtopic.php?f=7&t=10623). Плата на EPM240.
1R с изнанки запаял по схеме как R31, накоротко 0R. Может я не прав, но 1 Ом вряд ли что-то решает.
U3 не ставил, полярный конденастор рядом с ним тоже.

http://www.picshare.ru/uploads/181111/8l69x2yKfo_thumb.jpg (http://www.picshare.ru/uploads/181111/8l69x2yKfo.jpg)

Прошил EMP240 из папки CPLD. На карточку, отформатированную FAT32, положил файлы из папки PI_SD.

Далее: тестил с двумя Harlequin 48k Rev.G, одним фирменным Spectrum+ 48k.
Симптомы при просмотре видео через HDMI: компьютер запускается, картинка как бы есть. Бордюр белый, при сбросе по черному экрану пробегают красные полоски, как обычно при сбросе, далее экран все время черный, бордюр белый, курсора нет, надписей нет. Комп работает, слышно как кликают кнопочки. Как будто отображается не та видео-страница. Можно вслепую сделать BORDER 1, и бордюр окрашивается в синий. Если сделать NEW, экран оживает, пробегают красные полосочки сброса и опять черный экран.

http://www.picshare.ru/uploads/181111/yl7b73eLKW_thumb.jpg (http://www.picshare.ru/uploads/181111/yl7b73eLKW.jpg) http://www.picshare.ru/uploads/181111/06NQVL08BQ_thumb.jpg (http://www.picshare.ru/uploads/181111/06NQVL08BQ.jpg)

Точно такие же симптомы (https://www.sellmyretro.com/offer/details/tk-_pie-hdmi-interface-for-zx-spectrum-48-and-zx-spectrum-48%2B-21814) у товарища:
"Question: Hi, I put the SD with software in pi, put pi on board, but screen is black, only border changes to white when speccy starts. What is wrong?
Posted by d***a (9) - 06/07/2017 15:58:57
Answer: Hello, maybe wrong config file, please contact with me via mail and i send you correct config file for pi"

Файл конфиг такой:
disable_overscan=1


# Over clocking settings
arm_freq=1000
core_freq=400
force_turbo=1


# Disable adjusting the refresh rate of RAM every 500 ms
disable_pvt=1

Пробовал менял параметры disable_overscan, disable_pvt - без изменений.


Может есть какие-то идеи что за шляпа с девайсом?

upd1: Запаял второй полярный кондер 100мкф, ничего не поменялось. Чего то мне кажется у него с софтом, либо с конфигом.

romancha
12.11.2018, 11:21
Приобретал сей девайс, собрал, но ещё не запускал, на этой неделе должен сделать пробный пуск) отпишусь тогда, успешно или нет


Отправлено с моего iPhone используя Tapatalk

petrov1962
16.11.2018, 11:41
Есть какие успехи по запуску плат?

romancha
16.11.2018, 12:02
Есть какие успехи по запуску плат?

Все никак руки не доходят, не запускал


Отправлено с моего iPhone используя Tapatalk

SoftLight
16.11.2018, 12:10
Кстати, обратил внимание, что если включить tk-pie без спектрума, то на экране правильный растр и рисуются случайные знакоместа. Это говорит о том, что, так как на шине ничего нет, читается случайный хаос и это правильно. В общем, такое ощущение, что плата исправна и свои функции выполняет и проблема только с тем, какую видеостраницу отображает прошивка. Автор как раз последнее что лечил, судя по гитхабу, это отображение видеостраниц для 128k. Пожалуй, надо проверить догадку, попробую вслепую впечатать данные в $c000+6144.

romancha
16.11.2018, 21:42
На плате ошибка в шелкографии с установкой полярного конденсатора под U2. GND идёт от 1-го вывода Lm1117


Отправлено с моего iPhone используя Tapatalk

SoftLight
17.11.2018, 12:14
На плате ошибка в шелкографии с установкой полярного конденсатора под U2. GND идёт от 1-го вывода Lm1117

Отправлено с моего iPhone используя Tapatalk
C8? Минусом же к земле. Вроде все по схеме. Судя по фоткам все ставят именно пошелкографии:
http://www.picshare.ru/uploads/181117/43mdYSPL7B.jpg

romancha
17.11.2018, 12:20
C8? Минусом же к земле. Вроде все по схеме. Судя по фоткам все ставят именно пошелкографии:
http://www.picshare.ru/uploads/181117/pTN8Ea1thk.jpg


Там видимо «плюс», за счёт отверстия часть плюса, не прорисовывается, и получается как земля, сам запаял не правильно)


Отправлено с моего iPhone используя Tapatalk

SoftLight
17.11.2018, 18:20
Сегодня появилось немного времени позаниматься с железкой. Короче, моя гипотеза оказалась верна. Выводится экран с адреса 49152. Что это за бред, я один такой неудачник?

romancha
17.11.2018, 18:43
Сегодня появилось немного времени позаниматься с железкой. Короче, моя гипотеза оказалась верна. Выводится экран с адреса 49152. Что это за бред, я один такой неудачник?

Поясните пожалуйста) т.е. меня тоже самое ждёт при подключении к 128-му арлекину???




Отправлено с моего iPhone используя Tapatalk

goodboy
17.11.2018, 19:46
странный текст в файле PI_OS/video01.c
" unsigned char shadowActive : 1; //"1" = Speccy is showing the shadow screen, "0" default scren "

SoftLight
17.11.2018, 21:28
romancha, не, не придется. Пришлось мне тупо разбираться в vhdl, который я первый раз вижу :)
В общем, все заработало. Просто возьмите исправленную прошивку тут (https://yadi.sk/d/yeUnHJHkpX28gw).

romancha
17.11.2018, 21:36
romancha, не, не придется. Пришлось мне тупо разбираться в vhdl, который я первый раз вижу :)
В общем, все заработало. Просто возьмите исправленную прошивку тут (https://yadi.sk/d/yeUnHJHkpX28gw).

Спасибо, а то я уж было запаниковал)))


Отправлено с моего iPhone используя Tapatalk

SoftLight
17.11.2018, 21:37
Хотя результат пока не очень: при save полоски пилотона по бордюру бегут в два раза большей ширины чем в норме. Причем широкие они когда в зоне paper, а над и под paper ширина нормальная. Подозреваю, что бордюрные эффекты в демках пойдут лесом )

goodboy
17.11.2018, 21:50
Подозреваю, что бордюрные эффекты в демках пойдут лесом
уже было в обзорах
http://www.8bity.cz/wp-content/uploads/2017/02/TK-Pie_Martin_board_in_Sparrow_ShockHDMI.jpg

ешё говорится о мусоре на экране при первом включении,
он пропадает после сброса, но если на компе нет этой кнопки (резинка48) ?

SoftLight
17.11.2018, 22:22
странный текст в файле PI_OS/video01.c
" unsigned char shadowActive : 1; //"1" = Speccy is showing the shadow screen, "0" default scren "
Это дефолтное значение в структуре GPIO потом оно по идее должно браться с шины спека.

- - - Добавлено - - -


уже было в обзорах
ешё говорится у мусоре на экране при первом включении,
он пропадает после сброса, но если на компе нет этой кнопки (резинка48) ?
У меня 48k+ на ней мусора после сброса нет, но бордюр после включения черный. Потом после сбросов бордюр белый, как обычно.

Картинка пока получается вот такая (идет выгрузка):
http://www.picshare.ru/uploads/181117/1cqF03nkiI_thumb.jpg (http://www.picshare.ru/uploads/181117/1cqF03nkiI.jpg)

Вообще, я похожие картинки со сравнениями вижу тут (http://www.8bity.cz/2017/hdmi-vystup-pro-sinclair-zx-spectrum-tk-pie/):
http://www.8bity.cz/wp-content/uploads/2017/02/TK-Pie_Martin_scr_FXSound_HDMI_thumb.jpg (http://www.8bity.cz/wp-content/uploads/2017/02/TK-Pie_Martin_scr_FXSound_HDMI.jpg) http://www.8bity.cz/wp-content/uploads/2017/02/TK-Pie_Martin_scr_FXSound_comp_thumb.jpg (http://www.8bity.cz/wp-content/uploads/2017/02/TK-Pie_Martin_scr_FXSound_comp.jpg)
Слева подключение по HDMI, справа - по композиту. На картинках видим, что полосочка на бордюре в деме Fuxoft-а расширилась минимум в два раза.

Ахаха, а тут (http://tooloudtoowide.marcinrusinowski.com/reviews/tkpie-hdmi-interface/) в обзоре и видео подвезли:


https://youtu.be/VcJjMbeLR1w

Странно, у устройства такой мощный потенциал и как-то совершенно не допилили прошивку. Я так понял, парни довели все до ума в ZX-HD (http://tooloudtoowide.marcinrusinowski.com/reviews/bytedelight-zx-hd-hdmi-output-from-your-zx-spectrum-with-ulaplus-feature/), но это уже коммерческий проект.
Думаю по пятибальной шкале: простота сборки 5, юзабельность 3 балла.

romancha
08.12.2018, 18:38
Товарищи подскажите, малинка показывает экран мелкие красные полоски, чёрный бордюр, что отдельно от платы , что с подключённым к плате и далее к спеку( арлекин 128) , есть подозрение что в малине что то отвалилось((( пробовал ставить распбиан, дабы проверить работоспособность, все установилось. Мож что с GPIO?!https://uploads.tapatalk-cdn.com/20181208/91db7effcf4659bfbe21cbda3b22dee7.jpg


Отправлено с моего iPhone используя Tapatalk

romancha
08.12.2018, 19:35
Ах, да с малиной спек зависает еще


Отправлено с моего iPhone используя Tapatalk

SoftLight
08.12.2018, 21:49
romancha, это начальный экран прошивки так выглядит просто дальше малина должна 'увидеть' спек и начать показывать изображение. Странно, что этого не происходит :/
Проверяй где на разъеме закоротил когда запаивал.

romancha
09.12.2018, 15:43
romancha, это начальный экран прошивки так выглядит просто дальше малина должна 'увидеть' спек и начать показывать изображение. Странно, что этого не происходит :/
Проверяй где на разъеме закоротил когда запаивал.

Вообщем, по ходу epm запаял что ли криво( выпаял феном, ножки начал выпрямлять и отломил(((( вообщем заказываю опять, кстати вопрос как все таки народ запаивает альтеры? А то я с такой мелочью не очень.


Отправлено с моего iPhone используя Tapatalk

SoftLight
09.12.2018, 16:14
я делаю так:
1) на все контактные площадки наношу флюс из шприца
2) сверху кладу чип, скальпелем выравниваю так, чтобы все ноги встали на площадки. Лучще взять увеличительное стекло чтобы проверять со всех сторон. благодаря флюсу чип не будет кататься
3) стараясь не сдвигать чип прижимаю его сверху пальцем/зубочисткой/пинцетом (иногда можно канцелярский зажим использовать) и запаиваю ноги по краям (если спаяются соседние не страшно, это потом устранится само)
4) на жало микроволна берем припой и просто начинаем вести жалом не быстро по концам ножек по всем четырем сторонам чипа - припой сам благодаря поверхностному натяжению сядет куда нужно.
5) когда все припаяли берем лупу/микроскоп и изучаем все ноги на предмет залипонов, устраняем припоем/оплеткой;
Вот на видео пример:

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

SoftLight
09.12.2018, 22:21
Помогает простейший USB микроскоп (https://ru.aliexpress.com/item/1000X-8LED-Microscopio-USB-Para/32938725733.html?spm=a2g0v.search0604.3.3.190ab5ca y4osc5&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10065_ 10068_5730211_319_317_5729711_10696_453_10084_454_ 10083_10618_10307_10301_538_537_536_10059_10884_10 889_10887_100031_321_322_10915_10103_10914_10911_1 0910%2Csearchweb201603_51%2CppcSwitch_0&algo_pvid=0327e2d1-840f-4930-abe5-c5d015efd8fd&algo_expid=0327e2d1-840f-4930-abe5-c5d015efd8fd-0) от наших китайских друзей.
Вот на моем примере, тут норм. пайка:
http://www.picshare.ru/uploads/181209/Zs32E71ecp_thumb.jpg (http://www.picshare.ru/uploads/181209/Zs32E71ecp.jpg)
а вот полная фигня:
http://www.picshare.ru/uploads/181209/DmK3v68ec5_thumb.jpg (http://www.picshare.ru/uploads/181209/DmK3v68ec5.jpg)
Но это не трагедия, можно испраить не выпаивая.

romancha
09.12.2018, 22:25
Помогает простейший USB микроскоп (https://ru.aliexpress.com/item/1000X-8LED-Microscopio-USB-Para/32938725733.html?spm=a2g0v.search0604.3.3.190ab5ca y4osc5&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10065_ 10068_5730211_319_317_5729711_10696_453_10084_454_ 10083_10618_10307_10301_538_537_536_10059_10884_10 889_10887_100031_321_322_10915_10103_10914_10911_1 0910%2Csearchweb201603_51%2CppcSwitch_0&algo_pvid=0327e2d1-840f-4930-abe5-c5d015efd8fd&algo_expid=0327e2d1-840f-4930-abe5-c5d015efd8fd-0) от наших китайских друзей.
Вот на моем примере, тут норм. пайка:
http://www.picshare.ru/uploads/181209/Zs32E71ecp_thumb.jpg (http://www.picshare.ru/uploads/181209/Zs32E71ecp.jpg)
а вот полная фигня:
http://www.picshare.ru/uploads/181209/DmK3v68ec5_thumb.jpg (http://www.picshare.ru/uploads/181209/DmK3v68ec5.jpg)
Но это не трагедия, можно испраить не выпаивая.

Спасибо за Советы, обязательно учту. Уже заказал, надеюсь все получится)


Отправлено с моего iPhone используя Tapatalk

valerium
26.05.2020, 23:53
Господа, собирал ли еще кто-нибудь tk-pie ?
Я добился следующего: в EPM240 залита исходная прошивка, а вот в малине start.elf и bootcode.bin те, которые на гитхабе, у меня грузиться не захотели (она показывала радугу) и я их заменил на несколько более другие из другой рабочей системы. Ну и в конфиге hdmi_group и hdmi_mode подкрутил ровно под свою матрицу, хотя это уже "бантики".
Отдельная малина стартует с черным бордюром и мелкими вертикальными полосками (не матрас, но попытка автору кода засчитана )) ) - то есть все гуд.

Теперь стенд: у меня это единственный ленин1 с 48к флопоэмулятором и AY, в него втыкаю tk-pie с малиной, включаю, жму сброс - все красиво, белый бордюр, черный экран, полоски убрались - и темнота.
Ок, значит все по написанному - беру исправленный .pof, заливаю его в epm240, включаю, жму ресет - полоски убрались, заставка отобразилась. Я порадовался, потыкался, посмотрел цвета, потом решил посмотреть какие-нибудь демки. И вот тут был сюрприз: мало, что запускается, бОльшая часть в какой-то момент загрузки переключается в черный экран и работает без картинки (на аналоговом видеовыходе картинка есть).
Через некоторое время я понял, что работает только то, что не трогает при запуске порт #7FFD, то есть не пытается детектить наличие страниц памяти и тем самым случайно переключать экраны, на что tk-pie реагирует неадекватно.
Если после ухода демки в черный экран нажать ресет и выполнить в бейсике out 32765, 48 (важны биты xx1x0xxx) - на tk-pie включается основной экран и все работает нормально. Соот-но out 32765,56 (xx1x1xxx) переключается в черноту.
Кстати, бит блокировки конфигурации ничего не блокирует в tk-pie, хоть она и ловит данные регистра конфигр=урации. То есть залочить переключение страниц и использовать ее на 48к-машине с ходу не получилось.

Почитал vhd-файлы, приятно поудивлялся тому, как изменился этот мир, в целом все довольно прозрачно написано ) Потом залил снова авторский .pof. Старт с черным экраном, затем выполняю (вслепую или переключаясь на av-вход монитора) команду out 32765, 48 - получаю работающий основной экран. После этого работают проблемные демки - хотя их у меня немного и задача была не проверить совместимость, а вообще оттестить железку - но вот уже час играет и малина не греется, как у некоторых других повторителей этой идеи. Lyra II и SongInLines4 работают вполне как дОлжно.

Так вот вопрос: а запускается ли оно без шаманства на 128 машинах, где SOS128 сразу принудительно включает правильную страницу и основной экран ?

dim
02.06.2020, 21:34
До этого еще не дорос, но за информацию спасибо, на будущее пригодится. Надо связываться с Виктором, самим автором и уточнять у него.

SoftLight
02.06.2020, 22:24
valerium, круто, что нашелся еще человек, заглянувший в исходники. Если нужно, я повспоминаю, что я там правил. Я помню, когда протестил девайс и увидел, что времянки в демках уплыли, потерял интерес. Девайс очень перспективный, жирная epm-ка и raspberry что угодно позволяют доработать. Но, я увы мало, что смыслю в радиоэлектронике и сам ничего написать на VHDL толком не смогу. У меня сложилось впечатление, что автор специально выложил исходники с незначительными ошибками.

valerium
03.06.2020, 00:29
SoftLight, приветствую, давай добивать это вместе.
Вот фрагмент vhdl-кода, где в "регистр" latch_d ловится состояние шины данных, в "регистр" latch_a пишется 13 разрядов адреса(12 downto 0) и старшие разряды достраиваются признаком записи в теневой экран (это если запись в страницу 111 и в адреса выше #C000) - разряд 13, номером экрана из регистра на порте #7FFD (точнее из его дублера внутри CPLD) - разряд 14, и нулем в 15-м разряде. Ну а малина на своей стороне этого адресного франкенштейна разбирает.

------8<--------------------------
process (latch)
begin
if rising_edge (latch) then
latch_d <= BUS_D;

if write_to_shadow = '1' then
latch_a <= '0' & reg_7ffd(3) & '1' & BUS_A(12 downto 0);
else
latch_a <= '0' & reg_7ffd(3) & '0' & BUS_A(12 downto 0);
end if;
end if;
end process;
------8<--------------------------

Так вот почему-то несмотря на "инициализацию" регистра-дублера порта #7FFD нулями (signal reg_7ffd : std_logic_vector (7 downto 0) := (others=>'0') ) пока не произошла хоть одна запись в порт #7FFD вместо нуля из него в 14-м разряде адреса малине передается единица (теневой экран), а не ноль (основной). И думаю, что авторами все так оставлено только потому, что на 128-й машине при старте ПЗУ128 это не важно, т.к. первая же запись в порт #7FFD все ставит на свои места.
Ты у себя запускал это на машине со 128-м ПЗУ ?

PS. Сорри, если коряво выражаюсь - я программер "программный", а не "аппаратный".
Сам еще не могу привыкнуть к ощущению того, что это по сути не программный код, а описание схемы. Ради этих ощущений и полез в исходники )).

SoftLight
03.06.2020, 01:09
valerium, я как раз запускал только на 48k. И там вся проблема была в том, что на экран отображалась страница с адреса $c000. Так как для 48k нет страничной памяти, я в коде вообще убирал проверку порта $7ffd. Увы, не смог отыскать что я там правил, но по памяти вроде где-то 1 на 0 поменял в проверке порта. Смотрел в репе diff как автор добавлял поддержку 128k. На 128k не проверял, завтра найду машинку попробую. На стороне малинки вообще ничего не пробовал править. Спасибо, что разжевал что там происходит в коде!

Исходя из дизассемблера прошивки спека 128k, первая запись в порт $7ffd идет непосредственно сразу после рестарта:


; --------------------------------------------
; Reset Routine (RST $00 Continuation, Part 1)
; --------------------------------------------
; Continuation from routine at $0000 (ROM 0). It performs a test on all RAM banks.
; This test is crude and can fail to detect a variety of RAM errors.

L00C7: LD B,$08 ; Loop through all RAM banks.

L00C9: LD A,B ;
EXX ; Save B register.
DEC A ; RAM bank number 0 to 7. 128K mode, ROM 0, Screen 0.
LD BC,$7FFD ;
OUT (C),A ; Switch RAM bank.

LD HL,$C000 ; Start of the current RAM bank.
LD DE,$C001 ;
LD BC,$3FFF ; All 16K of RAM bank.
LD A,$FF ;
LD (HL),A ; Store $FF into RAM location.
CP (HL) ; Check RAM integrity.
JR NZ,L0131 ; Jump if RAM error found.



В случае 48k никакой записи нет и защелка не сработает. Может потому у меня и была включена всегда страница RAM7 хотя ее и нет.

valerium
26.06.2020, 18:26
чего-то мысль самая простая сразу в голову не пришла - а раз кругом везде флэш и можно все легко перешить, так чего бы, собственно, прошивку 48к не пропатчить на предмет записи одного нужного нам байта в порт конфигурации для инита tk-pie ?

ld bc, #7ffd
ld a, #30
out(c),a

если моя память что-то помнит про z80, то это 6 байт должно получиться и плюс тот кусок кода, который придется заменить на jp к этому фрагменту и jp обратно. в общей сложности десяток байт, куда их удобнее встроить ?

SoftLight
26.06.2020, 18:50
valerium, лучше всего по вдресу #04AA
https://skoolkid.github.io/rom/maps/unused.html

valerium
27.06.2020, 00:42
Ошибся: нужно не 6, а аж 7 байт (out(c),a двухбайтный). И писать в порт значение не 48(30h), а 16(10h, 0001 0 000b). Чтоб при запуске этой прошивки на 128к-машине не происходило переключения ПЗУ на 128к.
10h - это нулевая страница RAM , нулевой экран, единичный ROM (что соответствует выбору ROM48, мы же уже в нем - вот и оставляем дальше) и нулевой бит блокировки конфигурации.



01fd7f ld bc,07ffdh
3e10 ld a,10h
ed79 out (c),a


По адресу 04AA находится, возможно, какой-то мусор, но трогать страшновато без его понимания
Вот область 386E-3CFF мне нравится больше, хотя в пентагоновской прошивке в ней что-то уже есть в самом начале, поэтому лучше в конце, где сплошные FF.
"Врезку" проще сделать прям в самом начале.


Было:


0000 f3 di
0001 af xor a
0002 11ffff ld de,0ffffh
0005 c3cb11 jp 11cbh


Стало:


0000 f3 di
0001 af xor a
0002 11ffff ld de,0ffffh
0005 c3e03c jp 3ce0h
[...]
3ce0 01fd7f ld bc,07ffdh
3ce3 3e10 ld a,10h
3ce5 ed79 out (c),a
3ce7 af xor a
3ce8 c3cb11 jp 11cbh
3ceb ff rst 38h
3cec ff rst 38h
[...]


Вроде вкрячивается в имеющиеся у меня прошивки ROM48 стандартную и пентагоновскую.
Проверьте, pls, кто с опытом в этом деле.


PS. я тут немножко попортил свой стендовый Ленинград, поэтому сам прошью и проверю попозже, когда дойдут руки его вернуть к жизни.

SoftLight
27.06.2020, 00:49
По адресу 04aa 24 байта подпрограммы для zx81, она по ошибке включена в ПЗУ Спектрума и никак не используется.

valerium
03.08.2020, 00:13
Патч в адресах 3ce0h вполне работает, сброс происходит нормально, экран включается правильный. один только минус: перестает работать удобная точка входа в трдос 15555 (ее просто удобно набирать и она до 15616 должна докатиться по nop-ам).