Платка очень симпатичная получилась.
Я так понимаю, что вся комплектуха уже пришла. Mick, а когда планируешь приступать к сборке первого экземляра? ;)
Вид для печати
Комплектуха на первый экземпляр есть вся. Собирать буду как время будет свободное.
---------- Post added at 20:21 ---------- Previous post was at 20:18 ----------
Да, я GALку заменил CPLD потому как со стороны Спека еще пока неизвестно во что может вылится. Что ты говорил про новую прошивку GALки, а исходники ее есть?
походу файл с схемотехническим компонентом для Eagle cad 6.50
Mick, я написал автору переделанной прошивки с вопросом где он делал это прошивку. Как ответит я отпишусь.
ну так а чего спрашивать то ? даже если он использовал palasm - прошивка в jed файле находится - это стандартный файл для галок и палок.
А тот что ПДФ типа - имеет четкую маркировку :
{Program "CUPL(WM) Version 5.0a"}
{DBtype "Schematic"}
Что определяет пакет Atmel WinCUPL.
http://ecee.colorado.edu/~mcclurel/A...al_doc0737.pdf
http://www.atmel.com/Images/doc3303.pdf
http://ee-classes.usc.edu/ee459/libr..._Reference.pdf
http://www.eng.mu.edu/~perezjc/eece143/Lecture05.pdf
http://www.logicaldevice.com/cupl/cu...l-brochure.pdf
Применяется пакет для CPLD ATF15xxx.
Буквально одна минута шаманства в гугле :) ;)
Ну как бы jed нам на какой нужен. Нам исходник хотелось поглядеть.
Вобщем, сегодня погода ни фига нелетная, посему взял и спаял плату. :)
Фото собранной платы
http://s012.radikal.ru/i320/1505/df/ee51202f30a2t.jpg
http://s019.radikal.ru/i605/1505/70/eec854944392t.jpg
Фото кликабельно
P.S. Все фото я дублирую в пером посте
Mick, смотри вот программа при помощи которой разработана первоначальная прошивка и атачу исходник логической схемы. Если кому-то интересно что там и не хочется ставить программку то вот схема:
http://cs622916.vk.me/v622916711/2d725/bbWfUCcVpzU.jpg
Сама прошивка сделана в Lattice ispLEVER Classic 1.5 но найти эту программу именно 1.5 версии я не смог.
Ответил один из авторов мунсаунда по поводу исправленной прошивки GALки. Приатачил исходники прошивки которая была сделана в wincupl.
PS. разработчики просили их имена(Gustavo Iriarte/Eugeny Brychkov) так же указать на карте.
Поглядел исходник. Он нам мало чем поможет. Как я говорил, для спека немного сложнее. Не забываем, что сигнал прерывания в спеке не отключается. Но вроде есть технология выставления векторов для Z80, чтобы не пересекаться с прерыванием от синхрогенератора.
По поводу имен, то сами видели пустую карту. Там как бы уже не написать. Сделаем проще, я отмечу их на своей страничке по карте, когда буду ее заполнять.
Так набросал страничку на своем сайте и положил туда пока все что имею на данный момент :)
http://micklab.narod.ru/ZXMMoonSound.htm
Mick, а что с прошивкой альтеры уже пытался что-то написать? Может тебе дать ящики создателей для прямых консультаций? Ребята охотно отвечают на любые вопросы.
Вобщем как бы начал я думать над прошивкой и случился первый облом. Как известно один из портов YMF278 для MSX, а именно 7F пересекается с дискогрызом. Все бы ничего, у нас есть два сигнала DOS и IODOS, тем самым мы можем обойти это пересечение. Но вот это относится для нормальных спектрум клонов с шиной Nemo Bus. Но вот есть такая Эва, вернее ее базовая конфа, у которой сигнал DOS не такой как у нормальных, а извращенный. И чтобы это дело обходить, я в своих звуковухах отслеживал обращение к портам из ПЗУ, тоесть участововали в формирователе обходного маневра адреса A14 и A15.
Так вот досада в том что здесь у нас нет этих линий, тобишь для базовой конфы обойти их баг с блокировкой не получится.
Пути выхода такие.
1. Переносим порты карты например все в область C0...CFh и тогда всем счастье.
2. Кладем большой болт на базовую конфу и пользуемся все конфой от тс лабса, я надеюсь у него нет такого маразма с блокировкой портов и сигналом DOS.
Лично мне пофиг на Эву с базовой конфой, но хочу услышать мнение народа.
К тому же сечас придет котэ и выскажет все что о мне думает по поводу смены портов. Да и фиг знает, кто там еще рулит портами C0...CFh
Напомню, что в MSX порты Moonsound (Wozblaster) - 7C..7F и С4..C7
Тобишь всего то 8 портов. В принципе можно было бы сделать как C0...C7h
Мнение народа делай карту только под свои проекты феникс 1,2,3 мик новый феникс...
Остальное не твоя забота. Каждый болт под свою гаечку рассчитан . Нельзя одним болтом все гаечки обслужить. Можно заразу подхватить...
ААА, ты прям как котэ говоришь.
Тобишь выбираем пункт 2. :)
я за 1-й вариант.
Честно сказать мне то не трудно перенести, но вот подчищать нежелание разработчиков Эвы пойти навстречу пользователям и убрать свое недоразумение, чтобы другим не заниматься ерундой дабы обойти их баг меня как то стало напрягать. Что то мои железки никто не поддерживает, а с чего мне чесаться.
Почему нельзя было сделать такую фигню как опцию, хочешь все сигналы открыты, хочешь закрыты. Я и то в Зефирке планирую сделать все внутренние устройства отключаемыми, а другие похоже ровнее других я так полагаю.
Ну я как думаю -
1. если есть конфликт портов, то ну их нафиг , если можно так сделать.
2. софт всёравно перепахивать и адаптировать -> всёрано в какие порты данные гонять
3. вот возьмут и займут в тс-конфе эти порты или заткнут и опа...
Моё мнение - пусть Мик делает так, как удобнее лично ему и логичнее в плане корректного выбора портов. Если бы речь шла вообще о неработоспособности карты на ZX Evo, тут бы я тоже упрашивал Мика разрулить ситуацию.
А так... возможность установить прошивку поддерживающую две конфы есть у каждого пользователя Евы.
Я бы больше переживал, если бы Мунсаунд по каким-то причинам не смог работать на TS-Conf. Во первых, Spectrum- совместимая часть у TS-Conf очень хороша, а значит фирменное ПО от Мика там гарантированно будет работать, во-вторых, есть очень ненулевая вероятность, что поддержка Мунсаунда может появиться в плагине Wild Player'а (как появилась и поддержка SAA), а он, в сочетании с Wild Commander, самый удобный инструмент для прослушивания коллекции всяко-разных чиптюновых файлов.
Ну, тащемта TS-Labs весьма неплохо суппортит пользователей конфы. Траблы с железом как правило решает в пользу юзера.
А где в Wild Player'e появилась поддержка SAA?
А, я-то думал уже и WP доработали. Про плагин я в курсе, плагин смуководам поможет.
Так поглядел внимательнее даташит и исходники плеера. По сути YMF278 нужно шесть портов или адресов. Четыре из них относятся к FM части и два относятся к цифровой (волновой синтез) части.
Как оно в MSX
FM часть
порт C4h -> запись адреса регистра (набор регистров 1)
C5h - запись данных в регистры набора 1
С6h - запись адреса регистра (набор регистров 2)
C7h - запись данных в регистры набора 2
Кроме того регистр C4h на чтение - статус
Wave часть
Регистр 7Eh - запись адреса регистра
7Fh - запись или чтение данных
Итого тут наблюдается два пересечения с портами ZX клонов.
7Fh - регистр контроллера FDD TR-DOS
С7h - регистр 8255 Profi CP/M
Первое это очень плохо, так как TR-DOS оно как бы везде, второе работает только на Профи в режиме CP/M. По сути можно пренебречь, так как Профи достаточно специфическая машина со своими стандартами и наворотами, как и АТМ. Простому смертному они как бы и не нужны.
Способ обхода 7Fh известен давно, просто отслеживать обращение к контроллеру TR-DOS, но есть некоторые ограничения описаны выше.
Либо сделать красиво и перенести все 6 регистров на порты C0...С5h, тогда будет все хорошо и уютно, кроме Профи (С3h там тоже есть).
А так как хотелось поиграться с векторами прерываний, то взять свободные пару портов С6 или С7. Короче, чтобы весь диапазон C0...C7 был за Moonsound.
Как говорится, один хрен адаптировать плееры :)
Итак, к примеру если будет выглядеть так.
FM часть
порт
C0h -> запись адреса регистра (набор регистров 1)
C1h - запись данных в регистры набора 1
С2h - запись адреса регистра (набор регистров 2)
C3h - запись данных в регистры набора 2
Кроме того регистр C0h на чтение - статус
Wave часть
Регистр С4h - запись адреса регистра
С5h - запись или чтение данных
С6h - резерв
С7h - регистр вектора прерывания.
Как оно вам, и пусть котэ правит стандарт :)
Mick, в карту будет добавлен сигнал /IODOS?
------
UPD. да, поглядел схему на твоем сайте. Профи плохо не будет если что, т.к. порт С7, как и С3 разблокируется, когда включена расширенная периферия - при активном сигнале /CP_M (/IODOS по вашему).
Судя по доке на ymf278 там есть через регистры прямой доступ к памяти, можно написать простую программу для прошивки ROM и не надо заморачиватся с внешним программатором.
Простая программка записи во флеш файла 2мб - это наверное очень просто будет. Вставьте диск N1, вставьте диск N2,3,4 :)
Впрочем, кто осилит это - я даже спасибо скажу :)
---------- Post added at 12:23 ---------- Previous post was at 12:01 ----------
Еще вопрос к MSXшникам. Я насколько понял порт FEh, это менеджер страниц
И он работает приблизительно также как и 7FFD и ему подобные в спеке, тоесть по 16кб можно загружать данные в странички.Код:Port range Description
#FC (write) Mapper segment for page 0 (#0000-#3FFF)
#FD (write) Mapper segment for page 1 (#4000-#7FFF)
#FE (write) Mapper segment for page 2 (#8000-#BFFF)
#FF (write) Mapper segment for page 3 (#C000-#FFFF)
Тут просто MDR файлы грузятся в 8000 в MSX, а потом листаются страницы. Я так полагаю что нам надо перенести это все на адреса С000h и также заняться листанием.Так?
Гы гы, а не все так просто. Захотел я как говорится прошить флешПЗУ, на что мне ChipProg+ сказал фи. При попытке присоединения платы без питания он пишет перегруз у него видимо по входам. Казалось бы с чего это, там на все остальные микрухи питание от программатора не идет. Ну ладно - думаю подключу к нему питание - теперь пишет что неизвестный идентификатор, даже если игноришь не работает. Такое ощущение что микруха не та.
Хорошо думаю, полез искать даташит именно на AM29F016D.
Напомню, что флешка у меня AM29F016D-90SC. Так вот в даташите написано Valid только SF и SI. Тоесть по логике получается левак что ли. Но вот открываю даташит на AM29F016B - а там SC валидные. Но с другой стороны какая разница AM29F016D и AM29F016B отличаются только технологией изготовления, а все остальное у них одинаково. Короче я пока в раздумьях.
Думаю собрать что ли на атмеге программатор и попровать узнать что либо проггер ChipProg просто придуряется или действительно левак попался. Если прогер брешет, то придется как то записывать со спека флешатину.
А пока хочу еще проверить один финт, прозвонить незапаянную флешатину - она хоть совпадает с распиновкой даташита.
---------- Post added at 18:37 ---------- Previous post was at 18:25 ----------
Прозвонил ноги, все вроде звонятся как распиновка даташита. Тоесть даже микросхема может быть и не левая, то тогда проггер корявый.
Mick, я могу купить завтра или в понедельник панельку для своего программатора тритон и попробовать прошить. Калуга вроде не далеко от Москвы.
Чиппрог48 и Стерх007 имеются в распоряжении. Если микросхемы в DIP, то могу помочь их опознать и прошить. Москва, м.Юго-Западная, почти в любое время, т..к. теперь и работа к дому "переехала" :)
Денег за помощь не возьму, т.к. мне на жизнь хватает.
PS. С Калуги удобно и недорого добираться электричкой до платформы Очаково, от неё я пешком хожу к дому, не дольше 40 минут, но также ходит к метро много автобусов и тролейбусы. Но можно конечно и почтой переслать.
Во смотри Mick если сам не совладаешь то я могу приехать к Perestronin со своим программатором и одним из 3 программаторов думаю точно прошьем :D
Спасибо за помощь. Я сначала сам все испробую, я уже почти собрал на коленках макетку.
Ну если совсем не взойдет, то обращусь :) Правда корпус у микрухи SO44 :)
Так допаял небльшую платку с мегой и подключил звуковуху с флешкой. Пока вендор не читал, там надо 12В городить, но вот команду стирание чипа удалось отправить - микросхема даже на нее отреагировала. На выходе RY/BY на целых 10 секунд появился лог. "0". Тобишь я так понимаю что микруха стирает весь чип 10 секунд.
Глянул в даташит, а там стирание всего чипа min 32 max 256 секунд. Стирание сектора min 1сек max 8 секунд. Я так полагаю что как бы даже нормально :)
Получается, что микруха очень даже похоже на 2Мб флеш. По крайней мере пины совпадают с даташитом и команду стирание понимает.
---------- Post added at 13:41 ---------- Previous post was at 12:32 ----------
Гы гы, а не надо 12В подавать чтобы узнать его идентификатор. Микруха и на обычные команды запроса идентификатора отвечает.
Короче она ответила:
Manufacturer ID: 01h
Device ID: ADh
Что соотвествует микрухе AM29F016, что в свою очередь доказывает - китаец прислал то что надо, а вот программатор сильно меня подвел, хоть самому программатор делай. :(
Может оно и так, спорить не буду. Но какая тут может быть солидность, если я эту же плату считай цепляю на ноги атмеги128 без всяких промежуточных элементов и ей как то пофиг это влияние - она работает замечательно. А на какой то супер пупер программатор это оказывает сильное влияния. По мне, так это просто хилота, а не программатор, который от малейшего бздеха уже перегружается. :)
Скорее прогер слишком умный и не может определиться что за гибрид к нему прицепили. Плохая черта хайтека в том, что интеллект у железок отключить нельзя.