Просмотр полной версии : AY-микросхемы
tmp_online
22.05.2006, 19:42
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.
Поищи форум на предмет "AY и VHDL".
tmp_online
22.05.2006, 20:16
здесь (http://shop.elcomp.com.ru/customer/product.php?productid=42911) предлагают купить эту микросхему... у меня нет столько денег
tmp_online
22.05.2006, 20:20
а вот здесь (http://irls.narod.ru/sncl/ay001.htm) что-то довольно интересное... Посмотри, пожалуйста, это и есть та самая схемка?
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.
А вот здесь посмотреть никому в голову не приходит ;):
http://www.nedopc.com/catalog.php
tmp_online
23.05.2006, 12:02
щас прикину цены :)
Слушай, а ведь у вас тама не бесконечное число микросхем... А откудова берете? Вроде же сейчас их никто не производит. Или я глубоко ошибаюсь?
щас прикину цены :)
Слушай, а ведь у вас тама не бесконечное число микросхем... А откудова берете? Вроде же сейчас их никто не производит. Или я глубоко ошибаюсь?
Я беру их со складов у китайских друзей.
tmp_online
23.05.2006, 16:55
Блин, даже микросхемы у китайцев начали скупать...
Orionsoft
23.05.2006, 18:15
КЕТАЙ рулит !
А они на драгметалы понабирали, без разбору.
tmp_online
24.05.2006, 11:33
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках
да теоретически-то хоть что можно :)
а практически еще кажеццо никто не делал
в принципе, нужно-то зафигачить спек без видеоконтроллера с аюком в ПЛМ, да приделать чтение MMC
а можно даже и не в ПЛМ, а просто рассыпухой, правда плеер получится размером с CD-walkman :)
Схема такого девайса уже где-то проскакивала (PIC + ROM).
А делать с MMC/SD я уже подумывал, но потом задвинул эту идею, не охота использовать тривиальный подход, хотелось бы эмулировать работу AY. По моему Conan или Spensor просчитывали эту возможность на Atmel Tiny с fast PWM, но дальше не сдвинулось.
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках
Но можно взять современный микроконтроллер за 3-4$ и сделать эмуляцию AY'ка на нём. Мало того, многие микроконтроллеры имеют в середине ЦАПы, то есть по сути нужен просто один микроконтроллер, да ещё и от батарейки будет работать. Например можно выбрать микроконтроллер Silicon Laboratories F02x, который на 25 мегагерц и имеет 16-ть выводов. Можно выбрать что-нибудь из серии F12x у него есть 128к флешки на 100000 перезаписей одного блока в 1024 байт плюс 8192 байт статики. Запакованнаую мелодию в флешку, распаковываем в RAM и играем. Правда F12x стоит по дороже, около 10$ но уже с флешкой. А соединять с компом можно через Com-Port.
Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.
Мало того, многие микроконтроллеры имеют в середине ЦАПы,
К сожадению наоборот многие микроконтролеры содержат АЦП(ADC) и очень мало в основном "дорогие" ЦАП(DAC), но что действительно многие имеют это ШИМ который можно юзать как ЦАП(DAC), правда настройка необходима для точности
Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.
Сделанный на микроконтроллере Венус5 имеющий АУ на борту.
Но можно взять современный микроконтроллер за 3-4$ и сделать эмуляцию AY'ка на нём. Мало того, многие микроконтроллеры имеют в середине ЦАПы, то есть по сути нужен просто один микроконтроллер, да ещё и от батарейки будет работать. Например можно выбрать микроконтроллер Silicon Laboratories F02x, который на 25 мегагерц и имеет 16-ть выводов. Можно выбрать что-нибудь из серии F12x у него есть 128к флешки на 100000 перезаписей одного блока в 1024 байт плюс 8192 байт статики. Запакованнаую мелодию в флешку, распаковываем в RAM и играем. Правда F12x стоит по дороже, около 10$ но уже с флешкой. А соединять с компом можно через Com-Port.
Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед :).
Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед :).
Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:
Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:
А он даёт эти 25 мипсов? Я тоже раньше думал, что PICи белый и пушистые :)
А он даёт эти 25 мипсов? Я тоже раньше думал, что PICи белый и пушистые :)
На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц. Хотя я их не особо люблю (силабсовские контроллеры). Дорогие и непрактичные.
Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:
Ну сделай, посмотрим :).
Дело не в мипсах, а в умении их прилагать ;)
Ну сделай, посмотрим :).
Дело не в мипсах, а в умении их прилагать ;)
Мне эмулировать AY наффиг не нужно :v2_tong:
p.s.: Я хоть и любитель Спектрума, но не фанат-маньяк :v2_wink2:
tmp_online
24.05.2006, 18:58
Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.
Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?
Сделанный на микроконтроллере Венус5 имеющий АУ на борту.
О, нашел! А схему сможешь достать?
Мне эмулировать AY наффиг не нужно :v2_tong:
p.s.: Я хоть и любитель Спектрума, но не фанат-маньяк :v2_wink2:
Это что же, я по твоему фанат-маньяк? Ща как бензопилу включу
На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц.
ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст :) эт если уложите эмуляцию в 8кб :D
ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст :) эт если уложите эмуляцию в 8кб :D
Только не 2.5$, а 2$ (если мелкооптом). Только тут речь идет о контроллере с ЦАП'ом на борту :v2_wink2:
Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?
О, нашел! А схему сможешь достать?
Описание проца здесь:
http://www.venus.ru/news.php?id=67&arc=0&sct=1
tmp_online
27.05.2006, 11:50
Ух ты! Огромное спасибо
Ну вот и свершилось ... Хех ...
Прочитал я вот это:
Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед
и ещё вот это:
Ну сделай, посмотрим .
Дело не в мипсах, а в умении их прилагать
Странно, что тут такого, чего нельзя сделать ? Если, конечно, писать на Си, то и вправду нельзя, но на асме проще не бывает.
Итак, пришёл я вчера на работу, взял прайсы и нашёл C51F330 выпускаемый SILabs (Cygnal), у которого 32 ноги, короче мы на работе такое паяем простыми паяльниками. Микроконтроллер на 25 мипсов, стоит 16 гривень, или по всеобщему это $3.1. Нашёл флешку с последовательным доступом на 512к за 9 гривен по всеобщему это $1.7. Короче с буферами для RS232 это всё будет стоить максимум 10-20 долларов.
После взял отладочный модуль, который валяется в моём столе где стоит C51F120 он на 100 мипсов, и написал программу примерно за 6-7 часов с учётом того, что постоянно запускал эмулятор, что бы проверить как работают регистры AY’а. Безусловно микроконтроллер сконфигурирован на 25 мегагерц с помощью PLL. Конечно за такое малое время я не мог идеально написать эмулятор и я так и не дописал шипения, поэтому они заблокированы в программе. Но в основном всё повторено. Лично проверил на 20-30 демках и играх, всё звучит так как положено. Единственное, это огибающая, в которой я где-то то ли ошибся то ли не так запускаю, но этот глюк заметен был только на одной единственной демке - Mental Masturbation. Однако всё работает, плеер великолепно пишется. Как будет свободное время, сяду и сделаю, заодно и схему разведу, паяйте сколько душе угодно.
Инструкция по пользованию:
Ниже будет прикреплён архив в котором нужно сделать:
1. Запускаем «Ay8912.bat». На моём ассемблере откомпилируется программа лежащая в файле «Ay8912.ac5»
2. В итоге получатся два файла «Ay8912.bin» и «Ay8912.hex», любой из них можно прошить непосредственно в C51F120. Простите, программу «прошивателя» забыл на работе, но если нужно принесу.
3. После подсоединяем выводы DAC0 и DAC1 на входы уселителя. У меня на работе это сделано прямо в компьютер.
4. Подсоединяем RXD и TXD микроконтроллера через буфера на 12-ть воль к Com’у номер 2 !!! Простите, у меня был свободен именно он.
5. Запускаем мой эмулятор Wild Speccy имя файла - «Sp-emul.exe». И он на скорости 115200 отсылает 14*3 байт состояния AY’ка, каждый кадр монитора, который, безусловно, 50 герц, и только таким он должен быть НА ВСЕХ ЭМУЛЯТОРАХ.
6. Слушаем музыку.
Никогда не понимал, чего электронщики постоянно считают программистов за дураков ? Нет, что бы вместе сидеть и творить ?
... Продолжение следует ...
Вот текст программы для C51F120:
; AY-8912 Emulator On C51F330 - 16grn=$3.1 25-MIPs 4-Timers
; On C51F332 - 12grn=$2.4 25-MIPs 4-Timers
Include '51F120.inc'
Include 'intel.inc'
RCAP EQU (12*14-6)/12
.Delay
PUSH DPL
PUSH DPH
MOV DPTR,#
[email protected]
CALL Dela
POP DPH
POP DPL
..
DEFDB R_AY15
DEFDB R_AY14
DEFDB R_AY13
DEFDB R_AY12
DEFDB R_AY11
DEFDB R_AY10
DEFDB R_AY09
DEFDB R_AY08
DEFDB R_AY07
DEFDB R_AY06
DEFDB R_AY05
DEFDB R_AY04
DEFDB R_AY03
DEFDB R_AY02
DEFDB R_AY01
DEFDB R_AY00
DEFDS Ch_AC,3
DEFDS Ch_BC,3
DEFDS Ch_CC,3
DEFDS Ch_EC,3
DEFDS Ch_NC,3
ORG 0
JMP Start
ORG 03Bh
RETI
ORG 00BH
JMP Timer0INT
ORG 100H
Start:
MOV SP,#SPMAX ;DSEG$+1
MOV WDTCN, #0DEh
MOV WDTCN, #0ADh
;ENABLE INTERNAL PLL (MNOGO MEGAGERTZZZSS)
MOV SFRPAGE,#0FH
ORL PLL0CN,#00000001B
MOV PLL0DIV,#1
MOV PLL0MUL,#1
CLR A
DJNZ ACC,$
ORL PLL0CN,#00000010B
MMM2: MOV A,PLL0CN
JNB ACC.4,MMM2
MOV OSCICN,#10000011B
MOV CLKSEL,#00000010B
;
; Enable the Port I/O Crossbar
; MOV P1MDIN,#11111111B
MOV XBR0,#00010111B
MOV XBR1,#00000000B
MOV XBR2,#01000100B
MOV P0MDOUT,#0FFH
MOV P1MDOUT,#0FFH
MOV P2MDOUT,#000H
MOV P3MDOUT,#000H
MOV P4MDOUT,#000H
MOV P5MDOUT,#000H
MOV P6MDOUT,#000H
MOV P7MDOUT,#11111111B
MOV SFRPAGE,#00H
MOV SFRPAGE,#00H
MOV REF0CN,#00001011B
MOV DAC0CN,#10000100B
MOV SFRPAGE,#01H
MOV DAC1CN,#10000100B
MOV SFRPAGE,#00H
MOV DPTR,#4095
MOV DAC0L,DPL
MOV DAC0H,DPH
MOV SFRPAGE,#00H
;Serial port
MOV SFRPAGE,#0
MOV RCAP2L,#LOW(-RCAP)
MOV RCAP2H,#HIGH(-RCAP)
MOV TMR2CN,#00000100B
MOV TMR2CF,#00001010B
MOV TMR2L,#0FFH
MOV TMR2L,#0FFH
MOV SCON0,#01010000B
MOV SSTA0,#00000101B
MOV TMOD,#00010010B
MOV TL0,#LOW(-T0REL)
MOV TH0,#LOW(-T0REL)
SETB TR0
ORL IE,#00000010B
SETB EA
CLR A
MOV Ch_AC+0,A
MOV Ch_AC+1,A
MOV Ch_AC+2,A
MOV Ch_BC+0,A
MOV Ch_BC+1,A
MOV Ch_BC+2,A
MOV Ch_CC+0,A
MOV Ch_CC+1,A
MOV Ch_CC+2,A
MOV Ch_EC+0,A
MOV Ch_EC+1,A
MOV Ch_EC+2,A
MOV R_AY00,A
MOV R_AY01,A
MOV R_AY02,A
MOV R_AY03,A
MOV R_AY04,A
MOV R_AY05,A
MOV R_AY06,A
MOV R_AY07,#00111111B
MOV R_AY08,#15
MOV R_AY09,#15
MOV R_AY10,#15
MOV R_AY11,A
MOV R_AY12,A
MOV R_AY13,A
MOV R_AY14,A
MOV R_AY15,A
MOV R7,#1
M1
;MOV R_AY00,#100
;MOV R_AY04,#200
; CPL P1.6
; MOV A,#10101010B
; CALL Write_Sbuf0
; DELAY 1
;
; MOV A,#30
; CALL Write_Sbuf0
; DELAY 1
JNB RI0,MM1
.0
MOV A,R7
ANL A,#10000000B
JNZ M3
CPL P1.6
M3 MOV R7,#255
..
CALL Read_Sbuf0
MOV B,A
ANL B,#00001111B
SWAP A
ANL A,#00001111B
JNZ MCM1
MOV R0,B
JMP MM1
MCM1: DEC A
JNZ MCM2
MOV R1,B
MCM2: DEC A
JNZ MCM3
MOV A,R0
ANL A,#00001111B
ADD A,#R_AY00
MOV R0,A
MOV A,B
SWAP A
ORL A,R1
MOV @R0,A
MOV R1,B
MCM3:
; CALL Write_Sbuf0
MM1:
JMP M1
Read_Sbuf0:
MOV SFRPAGE,#0
JNB RI0,$
MOV A,SBUF0
CLR RI0
RET
Write_Sbuf0:
MOV SFRPAGE,#0
MOV SBUF0,A
JNB TI0,$
CLR TI0
RET
DelNOP: ;CALL = 2 & RET = 1 ... 25-3=22
DS 245-3-2
RET
Dela: ;DPTR=Delay
PUSH ACC
DELA1: MOV A,#95
DELA2: CALL DelNOP
DJNZ ACC,DELA2
INC DPTR
MOV A,DPL
ORL A,DPH
JNZ DELA1
POP ACC
RET
;5025536 TELEFON V ZALE NA RABOTE
.PnDec ,ы
CLR C
MOV A,@.0+0
SUBB A,#2
MOV @.0+0,A
JNC @P_DE1
MOV A,@.1+0
ANL A,#00011111B
INC A
RL A
RL A
MOV @.0+0,A
INC @.0+2
; MOV B,A
;@P_DE2 INC @.0+2
; ADD A,@.0+0
; MOV @.0+0,A
; MOV A,B
; JNC @P_DE2
@P_DE1 MOV A,@.0+2
MOVC A,@A+DPTR
..
.PzDec ,ы
CLR C
MOV A,@.0+0
SUBB A,#LOW(DECCER)
MOV @.0+0,A
MOV A,@.0+1
SUBB A,#HIGH(DECCER)
MOV @.0+1,A
JNC @P_DE1
; ANL @.1+1,#00001111B
MOV A,@.1+0
ORL A,@.1+1
JNZ @P_DE2
MOV @.0+0,A
MOV @.0+1,A
; MOV @.0+2,#1
JMP @P_DE1
@P_DE2 INC @.0+2
MOV A,@.0+0
ADD A,@.1+0
MOV @.0+0,A
MOV A,@.0+1
ADDC A,@.1+1
MOV @.0+1,A
JNC @P_DE2
@P_DE1 MOV A,@.0+2
JNB ACC.4,@P_DE3
INC DPH
@P_DE3 ANL A,#00001111B
MOVC A,@A+DPTR
..
.PxDec ,,,ы
CLR C
MOV A,@.0+0
SUBB A,#LOW(DECCER)
MOV @.0+0,A
MOV A,@.0+1
SUBB A,#HIGH(DECCER)
MOV @.0+1,A
JNC @P_DE1
ANL @.1+1,#00001111B
MOV A,@.1+0
ORL A,@.1+1
JNZ @P_DE2
MOV @.0+0,A
MOV @.0+1,A
ORL @.0+2,#1
JMP @P_DE1
@P_DE2 INC @.0+2
CLR C
MOV A,@.0+0
ADDC A,@.1+0
MOV @.0+0,A
MOV A,@.0+1
ADDC A,@.1+1
MOV @.0+1,A
JNC @P_DE2
@P_DE1 MOV A,@.0+2
RRC A
MOV A,@.2
JNB ACC.4,@P_DE3
MOV A,R0
@P_DE3 ANL A,#00001111B
RLC A
; JB @.3+3,@P_DE4
; MOV C,B.0
; ORL C,ACC.0
; MOV ACC.0,C
@P_DE4:
MOV C,@.3
RLC A
MOVC A,@A+DPTR
RL A
..
DECCER EQU 4
T0REL EQU DECCER*11
Timer0INT:
; CLR TR0
CLR TF0
SETB P1.6
PUSH SFRPAGE
PUSH ACC
PUSH PSW
PUSH DPTR
PUSH R0
PUSH R1
PUSH R2
PUSH B
.0
MOV A,R7
JZ M2
DEC R7
MOV A,R7
JNZ M2
CLR P1.6
M2
..
... Продолжение следует ...
Это продолжение текста программы для C51F120:
Если что, то он лежит в архиве ...
MOV DPTR,#NoiTab
PnDec Ch_NC,R_AY07
SWAP A
MOV B,A
ANL B,#00001111B
MOV DPTR,#EnvTab
INC DPH
MOV A,R_AY13
SWAP A
ANL A,#11110000B
ADD A,DPL
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
PzDec Ch_EC,R_AY11
MOV R0,A
MOV DPTR,#VolTab
PxDec Ch_AC,R_AY00,R_AY08,R_AY07.0
MOV R1,A
PxDec Ch_BC,R_AY02,R_AY09,R_AY07.1
MOV R2,A
ADD A,R1
MOV R1,A
MOV SFRPAGE,#01H
MOV DAC1L,#0
MOV DAC1H,A
MOV SFRPAGE,#00H
PxDec Ch_CC,R_AY04,R_AY10,R_AY07.2
ADD A,R2
MOV DAC0L,#0
MOV DAC0H,A
POP B
POP R2
POP R1
POP R0
POP DPTR
POP PSW
POP ACC
POP SFRPAGE
CLR P1.6
RETI
EnvTab DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;00
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;01
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;02
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;03
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;04
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;05
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;06
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;07
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;08
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;09
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;10
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;11
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;12
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;13
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;14
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;15
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;00
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;01
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;02
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;03
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;04
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;05
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;06
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;07
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;08
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;09
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;10
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;11
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;12
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;13
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;14
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;15
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;00
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;01
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;02
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;03
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;04
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;05
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;06
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;07
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;08
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;09
DB 15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00 ;10
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;11
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;12
DB 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15 ;13
DB 00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ;14
DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ;15
... Продолжение следует ...
Это продолжение текста программы для C51F120:
VolTab ;0EVVVVPS
DB 16 ;00000000 V=00
DB 00 ;00000001
DB 16 ;00000010
DB 00 ;00000011
DB 15 ;00000100 V=01
DB 02 ;00000101
DB 17 ;00000110
DB 02 ;00000111
DB 14 ;00001000 V=02
DB 04 ;00001001
DB 18 ;00001010
DB 04 ;00001011
DB 13 ;00001000 V=03
DB 06 ;00001001
DB 19 ;00001010
DB 06 ;00001011
DB 12 ;00001000 V=04
DB 08 ;00001001
DB 20 ;00001010
DB 08 ;00001011
DB 11 ;00001000 V=05
DB 10 ;00001001
DB 21 ;00001010
DB 10 ;00001011
DB 10 ;00001000 V=06
DB 12 ;00001001
DB 22 ;00001010
DB 12 ;00001011
DB 09 ;00001000 V=07
DB 14 ;00001001
DB 23 ;00001010
DB 14 ;00001011
DB 08 ;00001000 V=08
DB 16 ;00001001
DB 24 ;00001010
DB 16 ;00001011
DB 07 ;00001000 V=09
DB 18 ;00001001
DB 25 ;00001010
DB 18 ;00001011
DB 06 ;00001000 V=10
DB 20 ;00001001
DB 26 ;00001010
DB 20 ;00001011
DB 05 ;00001000 V=11
DB 22 ;00001001
DB 27 ;00001010
DB 22 ;00001011
DB 04 ;00001000 V=12
DB 24 ;00001001
DB 28 ;00001010
DB 24 ;00001011
DB 03 ;00001000 V=13
DB 26 ;00001001
DB 29 ;00001010
DB 26 ;00001011
DB 02 ;00001000 V=14
DB 28 ;00001001
DB 30 ;00001010
DB 28 ;00001011
DB 01 ;00001000 V=15
DB 30 ;00001001
DB 31 ;00001010
DB 30 ;00001011
DB 16 ;00000000 V=00
DB 16 ;00000001
DB 16 ;00000010
DB 16 ;00000011
DB 15 ;00000100 V=01
DB 15 ;00000101
DB 17 ;00000110
DB 15 ;00000111
DB 14 ;00001000 V=02
DB 14 ;00001001
DB 18 ;00001010
DB 14 ;00001011
DB 13 ;00001000 V=03
DB 13 ;00001001
DB 19 ;00001010
DB 13 ;00001011
DB 12 ;00001000 V=04
DB 12 ;00001001
DB 20 ;00001010
DB 12 ;00001011
DB 11 ;00001000 V=05
DB 11 ;00001001
DB 21 ;00001010
DB 11 ;00001011
DB 10 ;00001000 V=06
DB 10 ;00001001
DB 22 ;00001010
DB 10 ;00001011
DB 09 ;00001000 V=07
DB 09 ;00001001
DB 23 ;00001010
DB 09 ;00001011
DB 08 ;00001000 V=08
DB 08 ;00001001
DB 24 ;00001010
DB 08 ;00001011
DB 07 ;00001000 V=09
DB 07 ;00001001
DB 25 ;00001010
DB 07 ;00001011
DB 06 ;00001000 V=10
DB 06 ;00001001
DB 26 ;00001010
DB 06 ;00001011
DB 05 ;00001000 V=11
DB 05 ;00001001
DB 27 ;00001010
DB 05 ;00001011
DB 04 ;00001000 V=12
DB 04 ;00001001
DB 28 ;00001010
DB 04 ;00001011
DB 03 ;00001000 V=13
DB 03 ;00001001
DB 29 ;00001010
DB 03 ;00001011
DB 02 ;00001000 V=14
DB 02 ;00001001
DB 30 ;00001010
DB 02 ;00001011
DB 01 ;00001000 V=15
DB 01 ;00001001
DB 31 ;00001010
DB 01 ;00001011
.0
DB 00 ;00000000 V=00
DB 00 ;00000001
DB 00 ;00000010
DB 00 ;00000011
DB 00 ;00000100 V=01
DB 00 ;00000101
DB 01 ;00000110
DB 00 ;00000111
DB 00 ;00001000 V=02
DB 00 ;00001001
DB 02 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=03
DB 00 ;00001001
DB 03 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=04
DB 00 ;00001001
DB 04 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=05
DB 00 ;00001001
DB 05 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=06
DB 00 ;00001001
DB 06 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=07
DB 00 ;00001001
DB 07 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=08
DB 00 ;00001001
DB 08 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=09
DB 00 ;00001001
DB 09 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=10
DB 00 ;00001001
DB 10 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=11
DB 00 ;00001001
DB 11 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=12
DB 00 ;00001001
DB 12 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=13
DB 00 ;00001001
DB 13 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=14
DB 00 ;00001001
DB 14 ;00001010
DB 00 ;00001011
DB 00 ;00001000 V=15
DB 00 ;00001001
DB 15 ;00001010
DB 00 ;00001011
..
NoiTab INCBIN "Noise.bin"
SPMAX EQU DSEG$-1
SaveHEX 'ay8912.hex',0,$,96
SaveBIN 'ay8912.bin',0,$
SaveLabels 'ay8912.txt'
; ExecFile "C:\INTEL51\FlashU.exe download -R ay8912.hex 1 0 1",1
Пользуйтесь. Плеер напишу позже, тут придётся попотеть !!!
Гы. весело. Однозначно кульно.
2 Robus
Респект. Такую бы фичу в мой FlashTaper сделать, но можно расчитывать только на PWM 8bit @ 16kHz.
Я на досуге с PWM поэспериментировал (PWM выходы через ФНЧ подключил к УЗЧ):
1) такого качества (8 bit @ 16kHz при ZQ 8MHz) для голосовых сообщений хватает, но вот чтобы AY файлы играть... не очень то. может в режиме fast PWM можно что-то ещё выжать, пока не ясно
2) у AVR в моём проекте 14MIPS. Хватит, чтобы твой модуль в AVR заработал?
Это продолжение текста программы для C51F120:
Пользуйтесь. Плеер напишу позже, тут придётся попотеть !!!
Ну вот хоть один толковый человек нашелся а то как пиз..ть так все горазды, а как мешки ворочать так никого :)
Конечно с огибающими и главное с шумом трудности наверно будут (шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность - можно посмотреть в одной из версий кода для ФПГА).
Рад что послужил мотивацией, с меня там что нить разливное полагается при встрече :v2_cheer: .
:v2_clapp:
Ну вот хоть один толковый человек нашелся а то как пиз..ть так все горазды, а как мешки ворочать так никого
Если честно, то я то же люблю поговорить, но это от того, что хочется сделать вообще всё подрят, а времени совсем нет. Вот бы придумали какой-нибудь аппарат, чтоб нажал кнопку и выспался =)
А вообще-то, с удовольвствием "ворочил бы мешки", дай только волю и микроконтроллер, ну или процессор, что на сегодняшний современный век почти одно и то же ...
Конечно с огибающими и главное с шумом трудности наверно будут (шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность - можно посмотреть в одной из версий кода для ФПГА).
Огибающие нужно ещё сильно править ... Я вообще не понял в чём лажа. У меня в пик (громкость 15) и минимум (громкость 0) повторяется дважды, может в этом лажа ??? Да и не могу найти описание в какой момент записи в команды происходит сбрасывание огибающей ? И не могу понять должна ли огибающая совпадать с пилой на тоне каждого из каналов ? Кстати и какая частота выборки на AY'ке ? А то я подбирал по слуху ... Я имею в виду ежели значение тона на первый канал, например, 3, то с какой частотой должен происходить декремент таймера ? Вообщем, почти всё что было написано, сделано лишь пробуя методом втыка и сравнений на слух с эмулятором.
Рад что послужил мотивацией, с меня там что нить разливное полагается при встрече
Лучше давай развидём схему для плеера, всё же идей неплохая. Я в электронике далеко не монстр. А пиво, надеюсь, обязательно попьём ...
2 Robus
Респект. Такую бы фичу в мой FlashTaper сделать, но можно расчитывать только на PWM 8bit @ 16kHz.
Ссори, я всё же до корней мозгов всегда был программистом, и некоторые термины не всегда ясно понимал ... PWM это Pulse Wave Modulator ??? Что ли программируемый ???
Я на досуге с PWM поэспериментировал (PWM выходы через ФНЧ подключил к УЗЧ):
1) такого качества (8 bit @ 16kHz при ZQ 8MHz) для голосовых сообщений хватает, но вот чтобы AY файлы играть... не очень то. может в режиме fast PWM можно что-то ещё выжать, пока не ясно
Вообще-то с интерполяцией можно выжать, но я просто уверен, что первая музыка с зубо-дробящими звуками превратится в кучу свиста.
2) у AVR в моём проекте 14MIPS. Хватит, чтобы твой модуль в AVR заработал?
У AVR'а команды-то по 5-6 тактов, не все конечно, но это факт. Поэтому таким методом, каким я сделал на SILabs'е, можно не мечтать ... Будут дикие искажения. Но 14-ти мипсов точно хватит генерировать звук на 44000 герцах. Я ещё в 1998-ом году ради развлечения на Atmel'е 24 мегагерца делал плеер модов, просто прибр был с этим микроконтроллером, вот и решил пофраериться. Но на AVR'е при такой скорости нужно много памяти, ведь нужно создать кучу табличек, так что ещё один не маловажный параметр это количество FLASH'а ???
А вообще-то мы жвём в таких малоразвитых странах, что страшно становится. Приходится выбирать плохие процессоры из-за того, что просто невозможно более лучшие впаять. Есть у японцев целая куча процессоров под 100-200 мипсов за копейки, но всё на шариках.
Да ...
шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность
А можно по точнее ? Что рандом я понял, но регистр AY_R6 [0..31] как конкретно влияет ??? Как я придумал сам себе, то если значение, паример, 5, это проиграть 6-ть раз один и тот же рандомный звук за один такт ??? Да ??? И можно по точнее по поводу самого метода Жегалкина ? Хотя я, думаю, можно будет сделать рандом самому... Вообщем много неясностей ...
У AVR'а команды-то по 5-6 тактов, не все конечно, но это факт
Извини конечно, но с AVR ты видимо дело не имел, так же как и я C51F120:
Вот выдержка из pdf:
High-performance, Low-power AVR® 8-bit Microcontroller
• Advanced RISC Architecture
– 131 Powerful Instructions – Most Single-clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 16 MIPS Throughput at 16 MHz
5-6 циклов это у C51 предыдущего поколения, так сказать, например AT89C51ED2 (RD2), на котором я сначала хотел сделать свой FlashTaper
А у обычного C51 все 12 циклов.
PWM ты правильно расшифровал т.е. это широтно-импульсный модулятор или модуляция.
PS: Не понимаю почему такое отношение к AVR? В линейке есть и 128Кб Flash и 256Кб, RAM 4Кб и 8 ещё и внешнюю можно вешать вплоть до 64Кб. Не думаю, что это только моё мнение, но C51 ядро которое использует silabs (пусть даже 1 цикловое) было создано много раньше AVR RISC.
2 Robus
Напиши разрешение ЦАП в твоём uC и частоту сэмплирования.
Да ...
А можно по точнее ? Что рандом я понял, но регистр AY_R6 [0..31] как конкретно влияет ??? Как я придумал сам себе, то если значение, паример, 5, это проиграть 6-ть раз один и тот же рандомный звук за один такт ??? Да ??? И можно по точнее по поводу самого метода Жегалкина ? Хотя я, думаю, можно будет сделать рандом самому... Вообщем много неясностей ...
ПОсмотри вот в этой прошивке http://home.freeuk.com/fpgaarcade/resources/ym2149.zip (спасибо IceBear).
Генератор построен на основе циклического полинома (частный случай полинома Жегалкина). Грубо говоря есть сдвиговый регистр Q[n] и случайная последовательность строится следующим образом:
DI[вход сдвигового регистра]=Q[i] xor Q[l] xor ... xor Q[m] xor ZEROKILL;
ZEROKILL=1 если Q[0..n-1]==0 (это такая страховка чтобы регистр не сбросился в 0);
Главное подобрать разряды регистра участвующие в суммировании таким образом чтобы случайная последовательность была наиболее длинная (так называемый совершенный полином). В принципе в вышеуказанныой прошивке уже подобранны разряды. Вообще на таких полиномах строятся рандом генераторы для всяких хардваре-устройств.
Извини конечно, но с AVR ты видимо дело не имел, так же как и я C51F120:
Дело имел, но это было в 2002-ом году, я делал клавиатуру на нём. По Serial'у, то есть на трёх проводах, было соединение с клавиатурой, а AVR'ка превращала это в коды нажатых клавиш на порт 254 для Z80. Но, признаюсь, почти ничего не помню ... Помню, что асм мне на много больше понравился, нежели у Intel51 ...
Напиши разрешение ЦАП в твоём uC и частоту сэмплирования.
Частота семплирования как и частота ЦАПа 100000 герц, но на ЦАП выдаётся со скоростью примерно 1.5 мегагерца. В итоге получается автоматическая интеграция. Хотя я бы плюнул на цапы и взял бы простешие два ЦАПа за $1 на 8-бит, тут же не нужна дикая точность, а в SILabs'овых точность ... Да и вообще у Cignal'ов с АЦП и ЦАПами не всё впорядке. Мы делали прибор в котором нужно было отцифровать аналоговую ПЗС со скоростью 1 мегагерц, в итоге оказалось что частота 1 мегагерц в описании это с дикими помехами ...
Сегодня капался в прайсах, и выяснил что есть такой процессор C51F411, очень хороший, имеет 32 ноги из них 29 это свободные порты и самое главное, что 50 мипсов, стоит немного дороже $7.8. Я ориентируюсь на него, у него ещё и USB есть. Так что сегодня сделаю версию под 50 мипсов и без потери качества. И ЦАП у него на 200 килогерц и два Serial-Port'а. За такие деньги это давольно таки неплохо ... Если всё получится, то программа уменьшится вдвое за счёт 50-ти мипсов.
Блин ... Нужна помощь ... CHRV, спасибо, конечно, но в VHDL'е я не очень разбираюсь ... Хотя я понимаю, что там нет ничего особо мудрёного, но всё же хочется найти чёткое описание AY'а ... Не поверхностное а именно чёткое, что после записи в такой-то регистр, например, сбрасывается счётчик огибающей и в т.д. Вообщем шипения с сделал, рандом получил и звучит велеколепно, но некоторые вещи меня довели до бешенства. Как вы помните, что я заметил разницу между проигрыванием музыки в Mental Mastarbation'е. Бился я очень долго, никак не получалось, потом пришёл домой с работы и решил запустить на реальном Speccy этот Mental ... И заметил, что у меня-то какраз самое что не на есть точно, а эмулятор немного искажает ... Я по натуре дотошный и каждый левый звук бкдет меня достовать. Пробовал я на Unreal'е. Вроде всё хорошё, уже был доволен как решил попробовать ещё пару демок. Нашёл какой-то гифт, называемый EXOTIC_M. Там есть часть от ACID'а. На моём AY'ке просто ужас какой-то ... Совсем не то. Эмулятор сэмулировал лучше, да же скажем на слух звучит просто идеально. На реальном Speccy ни как у меня не как в эмуялоре. Я да же предположил, что писали эту музыку на эмуляторе. В чём дело ??? Найдите, пожалуйста, описание. Мне нужно чёткое определение, что если в регистре R01 лежит 0, то это частота такая-то ... Как я понял это 1750000 герц, я прав ??? Соответственно, ежели 1, то делится на два !!! Получается формула 1750000/(R01+1) !!! Так ??? И по поводу регистра R6, какая частота получается тут ??? Как я понял, это рандомное значение выбирается с частотой 1750000/(R6+1) !!! Вообщем нужно описание, а то делать путям втыка очень сложно ... В среду будет первый рабочий день, и надеюсь что за среду разберусь в чём дело ... А так всё, вообщем, играет велеколепно !!!
2
Robus
Надо код на C реализации генератора шума AY? Да и вобще эмуляции всего AY на C ? :-)
2
Robus
Надо код на C реализации генератора шума AY? Да и вобще эмуляции всего AY на C ? :-)
Шум я уже сделал ... На это понадобилось окло 20-30-ти минут ... И С здесь будет лишним ... Нужно программу уместить в 4096 байт ... А все версии под Си, которые я качал требуют минимум под 16384 ... Я и сам мог с самого начала разложить табличку значений от 0..4095 в частоты, для этого не нужно знания Си. Кроме всего мне нужно точно проэмулировать, а эмуляторы не делают этого точно, и, как я понимаю, там именно эти самые распростронённые варианты на Си. Мне нужно описание, на Си написать я могу и сам. У меня всег-лишь нет описания, а не умения программировать.
У меня всег-лишь нет описания, а не умения программировать
Не горячись, я про это не говорил.
Кроме всего мне нужно точно проэмулировать, а эмуляторы не делают этого точно
Круто завернул.
Дело в том, что на эмуляции AY "собака" съедена и исходные тексты и всевозможные описание можно посмотреть на сайте Сергея Бульбы.
PS: ты забыл добавить вот это: :v2_finge:
Сергея Бульбы.
ООО ... Кстати ... Сейчас проверю как у Бульбы проигрывается музыка из Mental Masturbation ... Интересно так же не точно как в Unreal'е ???
Не горячись, я про это не говорил.
Ссори ... Просто я не понимаю, когда екстремальный код исполняют командами IF или FOR...NEXT. Микроконтроллер на 25 мипсов ... Это всего-то в 6-ть раз быстрее чем на Z80, только команд в 10-ть раз меньше, плюс в сравнении с Z80, уродские до не возможности, да и стек аж 128 байт ... И после этого использовать IF'ы 44100 раз в секунду (в лучшем случае), а по нормальному 1750000 раз в секунду ? Не, IF'ы меня тут будут просто пугать ...
James DiGreze
11.06.2006, 14:18
А ты на IF'ы внимания не обращай. Глянь как логика реализована. Имхо, из Си в логику перевести большого ума не надо.
А на счет "25 мипсов" и "в 6-ть ра быстрее чем на Z80" это ты погорячился... В Спеке Z80 только в турбе работает чуть быстрее ОДНОГО мипса. А 25 мипсов - это очень хороший процессор. ;)
А ты на IF'ы внимания не обращай. Глянь как логика реализована. Имхо, из Си в логику перевести большого ума не надо.
А на счет "25 мипсов" и "в 6-ть ра быстрее чем на Z80" это ты погорячился... В Спеке Z80 только в турбе работает чуть быстрее ОДНОГО мипса. А 25 мипсов - это очень хороший процессор.
Не погоречился ... У Z80 есть 16-ти битовые операции, что упрощает в сотни раз структуру программы: Например:
LD HL,1234
LD DE,21346
ADD HL,DE
Длее:
MOV A,REGA+0
ADD A,REGB+0
MOV REGA+0,A
MOV A,REGA+1
ADD A,REGB+1
MOV REGA+1,A
Каждая окманда два байта и в самом быстром Cygnal'е по два такта !!! Но это лишь малый пример, который по тактом возможно и сравнится, но если взять в кучу, то Intal имеет разновидность вооообще всех клмбинаций команд всего 256, про Z80, я говорить не буду, все и так понимаю выгоду. Так что Z80 даёт большую фору Intel51 ...
А к Си я не имею никаких притензий, как и к любому языку высокого уровня. Мало того, сам постоянно ими пользуюсь, но ниразу в голову не приходило их использовать в екстремальных кодах. А именно генерация звука как на ПиЦи так и вообще везде это трудоёмкий процесс и делать его на Си для меня малость смешно. И я уже изучил методы, которые написаны на Си. Так же я пару часов тому назад таки нашёл описание AY'ка и понял свои ошибки ... В среду постараюсь доделать всё до конца.
25 это хороший процессор, но он был бы уникален если бы вместо ядра Intel51 ядро Z80 ... Жаль, что последние разработки Zilog'а уступают в скоростях и ценах, как вообщем-то и наличии всяким примочек внутри, например ЦАПов, АЦП, и многое другое.
Вообщем, буду доделывать плейер ... Скоро понадобятся наработки по проигрыванию PT3 ... Заодно вопрос на будущее, а подойдёт-ли плеер только PT3 ??? С намёком конвертации из остальных форматов в него ...
Вообщем, буду доделывать плейер ... Скоро понадобятся наработки по проигрыванию PT3 ... Заодно вопрос на будущее, а подойдёт-ли плеер только PT3 ??? С намёком конвертации из остальных форматов в него ...
Тут не грех вспомнить про SD/MMC и FAT16/32 :-)
И ещё прикольно бы было схему посмотреть (минимальную). Надо оценить доступность компонентов и возможность самостоятельной сборки.
Это я к тому, что я хотел на AVR AY эмулировать, но оно как-то не получается. Поэтому есть очень хрупкая идея слияния с моим проектом.
Кстати, по аналогии с PT3, мне задают вопрос насчёт TAP (у меня только поддержка TZX), но конвертация в TZX тоже дело несложное. Я не знаток форматов AY и если PT3 достаточно распространён и "широкий" по возможностям, то нужно остановиться на нём.
Тут не грех вспомнить про SD/MMC и FAT16/32 :-)
Немного не понял о ФАТе ??? Это же плейер, который с компом будет соеденён по USB или COM-Port'у ! А поддержку буду писать под ПиЦи, и это уже второй вопрос, который на много проще ...
И ещё прикольно бы было схему посмотреть (минимальную). Надо оценить доступность компонентов и возможность самостоятельной сборки.
Нет схемы ... Я делаю на отладочном модуле ... Схему разведу после того, как программа будет идеально играть музыку. А о стоимости уже говорили, общая цена с флешкой на 512 килобайт не привысит $20. Это с сусловием подключения через батарейки ... Кстати жрать это всё будет 15милиампер. Выходов с Cygnal'а, гарантировано хватает для наушников, поэтому уселителей нет. На работе я всё слушаю через наушники, под кодовым названием "ЭХО-??". Сссори номер не помню. Вообщем совок 10-ти летней давности.
Это я к тому, что я хотел на AVR AY эмулировать, но оно как-то не получается. Поэтому есть очень хрупкая идея слияния с моим проектом.
Почему хрупкая ... Очень даже нормальная идея.
Кстати, по аналогии с PT3, мне задают вопрос насчёт TAP (у меня только поддержка TZX), но конвертация в TZX тоже дело несложное. Я не знаток форматов AY и если PT3 достаточно распространён и "широкий" по возможностям, то нужно остановиться на нём.
Если честно, то TZX по возможностям вжирает в себя TAP. И если ты делал только TZX, это правильно. А конвертер всегда можно сделать. Вроде бы PT3 так же имеет все возможности всех остальных форматов. Но, признаюсь честно, я никогда не занимался этим вопросом в плотную. Замтил лишь одно, что некоторые мелодии Dreamer'а отличаются в PT3 от орегинала в ASC. Но то, что ST xxx PT xxx в точности получается в PT3, в этом я убедился. Хотя кто его знает. Наверное я буду делать только PT3.
Немного не понял о ФАТе ??? Это же плейер, который с компом будет соеденён по USB или COM-Port'у ! А поддержку буду писать под ПиЦи, и это уже второй вопрос, который на много проще ...
Почему хрупкая ... Очень даже нормальная идея.
Ну что ж посмотрим, если договоримся и железо доставаемое... Кстати насчёт железа, 16 разрядный MSP 430 (тоже довольно прилично укомплектован ЦАПами и MIPSами :-) ) у вас не в обороте? Просто с Cygnal дела не имел. Ещё конечно DSP какой-нить потянет, но это уже дороговато. Опять же средства отладки и разработки... Мне очень нравится связка AVR + JTAG или MSP430 + JTAG, короче надоело наощупь проги писать (даже если есть симулятор, какой-бы он не был, это не то).
Конечно понятно, что если через UART будет играть, то в принципе можно повешать другой контроллер и рулить... Но тут есть свои минусы...
Мне очень нравится связка AVR + JTAG или MSP430 + JTAG, короче надоело наощупь проги писать (даже если есть симулятор, какой-бы он не был, это не то).
Но Cygnal так же с JTAG'ом ... Много есть процессоров. Например Hyndai выпускает какой-то совй проц на 500 мипсов, но его в Киеве соглашаются доставать только под заказ и втри-дорого. А есть просто чудесные процессоры на, вдумайтесь в эту цифру, 8000 мипсов, да ещё и каждая каоманда ARM7 32-бит, но Texas Instrument продаёт их не менее чем 50000 штук, да и в Киеве так же за процессор хотят не менее $100. Я выбирал процессор лишь из-за его цены - всего 3.5 доллара, ну потом нашёл более лучше с точки зрения впайки за $7. Последний на 40 выводв, 50 мипсов и паяется просто. E Analog Device, есть ихние BlackFin'ы ... И да же цены доступные, но как я буду паять шарики ??? А разводка платы ??? Кто изготовит трёхслойную плату ??? Вот поэтому и приходится уродоваться с доступным ... Все компоненты точно доступны как в России, так и в Украине. Стоит копейки ...
Блин ... Нужна помощь ... CHRV, спасибо, конечно, но в VHDL'е я не очень разбираюсь ... Хотя я понимаю, что там нет ничего особо мудрёного, но всё же хочется найти чёткое описание AY'а ... Не поверхностное а именно чёткое, что после записи в такой-то регистр, например, сбрасывается счётчик огибающей и в т.д.
Могу помочь с чтением xHDL языков если будеш ставить конкретные вопросы, я тебе попробую помочь. По крайней мере как это реализовао в xHDL версиях.
Могу помочь с чтением xHDL языков если будеш ставить конкретные вопросы, я тебе попробую помочь. По крайней мере как это реализовао в xHDL версиях.
Думаю, что с описанием я теперь всё точно сделаю в среду ... Но у меня другой вопрос, если ты разбираешься с VHDL'ем, то можно я тебе буду ставить вопросы по поводу матриц, а ты мне расскажешь ? Как я понял, с ними ты работал ? А заодно после уяснения множества непонятностей, для меня, с матрицами я смогу задавать вопросы по поводу самого VHDL'я ...
Заранее спасибо ...
Но у меня другой вопрос, если ты разбираешься с VHDL'ем, то можно я тебе буду ставить вопросы по поводу матриц, а ты мне расскажешь ?
Чем сможем тем поможем :) Тем более люди на форуме есть которые сталкивались программируемыми мелкосхемами.
Только в другом треде (например в этом http://zx.pk.ru/showthread.php?t=2960) или в личке
Но Cygnal так же с JTAG'ом ...
К сожелению для каждого семейства контроллеров свои JTAG отладчики. У меня есть только для AVR и MSP (не взаимозаменяемые).
К сожелению для каждого семейства контроллеров свои JTAG отладчики. У меня есть только для AVR и MSP (не взаимозаменяемые).
Это точно, что свои ... Меня это всегда так раздражало ... Вроде выбираеш процессор и думаеш, - "щас впаяю, да как запущу", а потом выясняется, что программатор ещё кучу баксов стоит !!! А отладчиком я не пользовуюсь. Пока пошагово найдёш баг, бытсрее прочитаеш собственную программу и поймёш его головой. Так что оценить дебагер просто немогу. Единственнный дебаггер на этой планете, которым я пользовался это STS, но всем дебаггерам до STS как земле до неба !!! Хотя не, земля к небу намного ближе ... =)
Не погоречился ... У Z80 есть 16-ти битовые операции, что упрощает в сотни раз структуру программы: Например:
Как только у Z80 появится хоть одна команда, исполняющаяся за один так, тогда и будет "в 6 раз больше" :)
Итак ... Как и обещал, сделал последнюю версию ... Лажа была смехотворная ... Проверено, вся музыка играет точно так же как на настоящем AY'ке ... В демке, которая игралась неправельно игрвется всё так как на настоящем AY'ке ... А точнее не совсем так как на эмуляторе. Так же точно играется на моём плеере. Перепроверил около 20-ти дисков с софтом, вроде всё отлично !!! Завтра постараюсь развести схему и выложить, но собиру её не раньше чем через неделю, - плату будут разводить ... Теперь сожусь за плеер PT3 !!! Надеюсь, что с ним будет проще. Так же надеюсь на помощь от тех, кто делал плееры для PT3, наверное жешь там много всяческих тонкостей !!!
хе, столько лет считалось, что это в принципе невозможно, а Robus взял и за пару недель сделал :) респект! жаль тока МК какой-то редкий, у нас в магазинах таких нету..
хе, столько лет считалось, что это в принципе невозможно, а Robus взял и за пару недель сделал респект! жаль тока МК какой-то редкий, у нас в магазинах таких нету..
Не .... Совсем не редкий !!! Наоборот, оооочень доступный !!! А темболее в России. Вообще, большинство компонентов в Киев попадают через Россию. Название МК C89F411 !!! Поробуйте поискать в прайсах, его цена $6-$7 ... Этому МК уже 4-ре года и если он до Киева доехал, то у вас он должен быть и подавно !!!
--------------
В крайнем случае готов купить в Киеве и отослать !!! Да же запаять на плату !!! Только предупреждаю, десяток плат я согласен сделать, но больше просто не хочется тратить время. Электроника, не моё это призвание ...
Не .... Совсем не редкий !!!
Название МК C89F411 !!! Если точнее то называется C8051F411.
Купить можно запросто, достаточно поискать на www.efind.ru
Кстати оценочный набор C8051F411-EK стоит от 35 до 45$
В Екатеринбурге продукцию Silabs продает фирма "ЭФО" тел: (343) 378-41-22
В крайнем случае готов купить в Киеве и отослать !!! Да же запаять на плату !!! Только предупреждаю, десяток плат я согласен сделать, но больше просто не хочется тратить время. Электроника, не моё это призвание ...
Ну чтож дело пошло!
Дороже конечно пока реала, но зато интересно использовать в энерго-экономных устройствах, а если еще на АРМ перевести вообще здорово будет.
От меня лично пожилание - наиболее подробно исходник прошивки комментировать :).
Всё конечно прикольно, я вот только не пойму: устройство подключается через UART к ПЦ, а ведь можно подключить AY через LPT к ПЦ. В чём фишка то, кроме конечно эмуляции на асме?
Я сомневаюсь что можно на Спеке даже с ZX-MCard обеспечить необходимую скорость потока через RS232, значит получается, что это устройство исключительно для обладателей ПЦ?
Не конечно прикольно скачать исходник и дальше сделать как хочешь, но на это не многие способны.
"но зато интересно использовать "
Можно сказать ширее - ещё один кирпичик в фундамент будущего ZX :)
(В переводе для CHRV - АТМ-3 :) )
Можно сказать ширее - ещё один кирпичик в фундамент будущего ZX
А ну если так...
Если точнее то называется C8051F411.
Купить можно запросто, достаточно поискать на www.efind.ru
Кстати оценочный набор C8051F411-EK стоит от 35 до 45$
Да ... Я постоянно забываю маркировку микросхем ... Моя вечная проблема ...
Ну чтож дело пошло!
Дороже конечно пока реала, но зато интересно использовать в энерго-экономных устройствах, а если еще на АРМ перевести вообще здорово будет
Обязательно пошло !!! Всё, что ходит, должно идти !!!
Можно и на АРМ !!! Темболее, что я в свой асм уже влепил полную поддержку АРМ'а, но 7-ого !!! Но пока нужно этот вариант доделать.
Всё конечно прикольно, я вот только не пойму: устройство подключается через UART к ПЦ, а ведь можно подключить AY через LPT к ПЦ. В чём фишка то, кроме конечно эмуляции на асме?
Фишка в том, что этот плеер работает от батарейки !!! Подключением через COM или LPT не существенно. Главное, что во флеш ты накачиваеш 30-40 мелодий на 128к, я уже подсчитал, и ходишь по улице, наслаждаясь тем, чего нет вообще ниукого !!!
Я сомневаюсь что можно на Спеке даже с ZX-MCard обеспечить необходимую скорость потока через RS232, значит получается, что это устройство исключительно для обладателей ПЦ?
Скорость совершенна любая !!! Просто медленее будет передаваться в плеер информация. Это всё дело техники !!!
"но зато интересно использовать "
Можно сказать ширее - ещё один кирпичик в фундамент будущего ZX
Я так же планирую подключать эту штуку непосредственно к ZX'у !!! Мало того, если попробовать использовать C8051F413, если я не ошибаюсь, то можно подключить простую память и сделать полноценный плеер XM'ок !!! По моим подсчётам велеколепно хватает скорости на проигрывание 16-ти каналов. Но, безусловно, как плеер его уже не используешь, лишь насадка на Speccy !!!
------------------
А теперь о главном ... Развёл схему, только забыл развести кнопки, хотел делать минимум 4-ре, типа перемотки. Все компоненты выбирались по методу наличия их на складах Киевских фирм и, соответственно, цене. Итак:
C8051F410 - 40 грн.
MAX3221 (TexasInstrument) (Буфер RS232) - 6 грн
AT25F1024 (Atmel) (EEProm 128к) - 7 грн
TDA7050 (Philips) (Уселитель Стерео) - 4 грн.
Итого 40+6+7+4=57 грн. Плюс добавляем где-то 2 грн на всякие резисторы и ещё 3 грн на бокс под пальчиковые бетарейки. Всё вместе 57+2+3=62. Округляем на мелкие расходы и, допустим, будет 70 грн. Это в долларах получается $14. Завтра посмотрю память по круче, например на 1 метр. Но как по мне, так в 128 к можно смело впихнуть 40 мелодий PT3.
Как только разберусь как из ORCAD'а перевести схему в PNG, сразу выложу. Завтра постараюсь развести плату. Возможно, что завтра у меня будет много работы, и придётся отложить эту затею до понедельника, поскольку в выходные я уезжаю на остров, - рыбу ловить ...
------------------
Пошёл капаться в ORCAD'е ...
Да ... Забыл сказать самое главное ... Жрёт эта штука около 15-20 милиампер. Безусловно, в режиме молчания RS232 !!! Так же можно всё это подключить к блоку питания на 3.5 вольт. Такие блоки питания продаются на любом радио-рынке !!!
Блин ... Зачем это ограничение в 19 килобайт на картинки ??? Вообщем первый вариант схемы лежит в этом архиве !!! Надеюсь формат TIF смогут просмотреть все ???
Orionsoft
16.06.2006, 00:28
а я правильно понял , что микс каналов происходит "внутри"
- можно ли это будет потом менять с кнопочек ?
а я правильно понял , что микс каналов происходит "внутри"
- можно ли это будет потом менять с кнопочек ?
Смотря как менять ?!? Есть всего два ЦАПа, поэтому сделать отдельно три канала нельзя. Но внутри их можно миксовать как угодно. В программе, на прерываниях, есть микс каналов, где просто меняешь значение микса и хоть все в левое ухо, а хочешь, можешь просто один оставить ... Но получить отдельно три канала - никак !!!
В чём фишка то, кроме конечно эмуляции на асме?
ну например в 128 канальном АУ :D
Можно и на АРМ !
желательно на арм. цап внешний может быть. вообще есть проект newGS на базе арм, который пока не успел даже стартовать (арм7+внешний стерео цап) :) ну а если туда добавить ау/фм :) было бы неплохо.
ну например в 128 канальном АУ
Ну это конечно красиво, но не реально на микроконтроллере. Максимум 32 ... Хотя может 32 я уже загнул !!! Надо пробовать ... Кстати, в программе есть такая переменная DECCER, в которой лежит значеине качества AY'а ... Сейчас значение 4, это означает, что любое значение частоты меньше 4-рёх будет искажаться !!! У меня такой вопрос возник, а кто-нибудь в мелодиях использует такую частоту ???
Меня ещё очень интересует проигрывать музыку с Atari !!! По сути там тот же AY, только на четыре канала, правда частота на него подаётся, помоему, в три раза меньше ...
желательно на арм. цап внешний может быть. вообще есть проект newGS на базе арм, который пока не успел даже стартовать (арм7+внешний стерео цап) ну а если туда добавить ау/фм было бы неплохо.
А арм в каком процессоре ??? Я имею в виду какой производитель ??? Есть BlackFin'ы, там вообще ничего не нужно, кроме DIMM и MCPU, но такие микроконтроллеры стоят под $100 ! Я уже пытался начти не дорогое, но так и не нашёл. В итоге я пришёл к выводу, что многое нужно делать на PLM'ках ... Но у меня нет никакой практики.
А арм в каком процессоре ???
Вот: PHILIPS LPC21XX, LPC22XX
Довольно приличные девайсы и цена не страшная. JTAG можно через LPT сделать (Wiggler). А главное IAR WorkBench ( там и асм и С ) со всем этим делом стыкуется.
А арм в каком процессоре ??? Я имею в виду какой производитель ??? Есть BlackFin'ы, там вообще ничего не нужно, кроме DIMM и MCPU, но такие микроконтроллеры стоят под $100 ! Я уже пытался начти не дорогое, но так и не нашёл. В итоге я пришёл к выводу, что многое нужно делать на PLM'ках ... Но у меня нет никакой практики.
Младшие модели BlackFin - 5$ мегаоптом, и 10$ в розницу.
Что же касается PLM'ок, то они актуальны при больших обьемах цифровой обработки сигналов (цифровые фильтры, например), там, где современные микроконтроллеры не справляются. Но такие PLM, т.е. FPGA (с умножителями и т.д.) стоят сами по себе достаточно дорого.
Фишка в том, что этот плеер работает от батарейки !!! Подключением через COM или LPT не существенно. Главное, что во флеш ты накачиваеш 30-40 мелодий на 128к, я уже подсчитал, и ходишь по улице, наслаждаясь тем, чего нет вообще ниукого !!!
Мало.
Минимум 100 и даже этого мало.
Зачем ограничевать когда 128 метров стоят меньше 10$?
А арм в каком процессоре ??? Я имею в виду какой производитель
ну я уже упомянул что по цене вне конкуренции пока LPC2101-03 (низкие цены потому что мало флеша) - от 2-3$, ну а дальше - много чего есть в диапазоне 5-7$ и море чего пожелаешь около 10$. гляди сюда скажем http://www.caxapa.ru/mcudb/?arch=6. А вообще этой задаче неплохо соответствует что-то вроде LPC2214+sram. сначало в сторону ADuC смотрели, но по цене проще внешний более битовый ЦАП поставить.
ну я уже упомянул что по цене вне конкуренции пока LPC2101-03 (низкие цены потому что мало флеша) - от 2-3$, ну а дальше - много чего есть в диапазоне 5-7$ и море чего пожелаешь около 10$. гляди сюда скажем http://www.caxapa.ru/mcudb/?arch=6. А вообще этой задаче неплохо соответствует что-то вроде LPC2214+sram. сначало в сторону ADuC смотрели, но по цене проще внешний более битовый ЦАП поставить.
А что єто за сахара ??? Меня больше заинтересовал ARM920T, который они продают за $20 ... Вот только я не понял, это цена производителя или сахары, которая, надеюсь, на нашей територии ... Ежели эта цена не наша, то гиблое дело, я через такое проходил, наши при заказе таких вещей делают накрутку до 500%. Но если ARM920T стоит эти деньги у нас, то за такую цену и с такими параметрами я в сторону других микроконтроллеров ещё долго смортеть не буду. Очень круто, если он доступен за такие деньги !!!
И ещё ... Эта штука 200 мипсов на 32-битовую команду !!! Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...
Вот только я не понял, это цена производителя или сахары, которая, надеюсь, на нашей територии ... попробуй efind.ru
о я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...а зачем? у меня с этим unreal свободно справляется
попробуй efind.ru
а зачем? у меня с этим unreal свободно справляется
Просьба анреальщиков обратится в сторону раздела эмуляторы :v2_devil:
И ещё ... Эта штука 200 мипсов на 32-битовую команду !!! Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...
Ресурсов АРМ9 хватит не только чтобы эмулировать АУ но и весь спектрум целиком... Т.е. для наших (точнее для ваших) задач вполне хватит простого АРМ7.
ПО АРМ9 системам (цены в рублях):
http://www.techno.ru/txt/6/Pr_carm.htm
Просьба анреальщиков обратится в сторону раздела эмуляторы
в чем разница мулить спектрум на ARM'е или intel/amd?
Просьба анреальщиков обратится в сторону раздела эмуляторы
2 The Exploited
Не в смысле разницы между процами, а в том что в разделе Железо обсуждаются именно железные разработки и приводить в пример программный эмулятор некорректно! Офтопик, в смысле. :v2_wink2:
приводить в пример программный эмулятор некорректно! Офтопик, в смысле. так это на я, а Робус пишет!
Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...
так это на я, а Робус пишет!
Цитата:
Сообщение от Robus
Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...
Дык, одно дело написать эмулятор под DOS или под Винду ( да хоть под FreeBSD), другое запихать всё нутро современного спека в ПЛИС (или написать код для микроконтролера), развести печатную плату, купить все необходимые радиодетали, собрать, настроить, исправить ошибки ( в железе!) и пустить в серийное (малосерийное производство)! Мало не покажется! Вот и разница между програмной и аппаратной эмуляцией!
Обсуждения муляторов/не муляторов удалены...
К сабжу не имеют никакого отношения - оффтопик!
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot