PDA

Просмотр полной версии : AY-микросхемы



tmp_online
22.05.2006, 19:42
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.

icebear
22.05.2006, 19:56
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.

Поищи форум на предмет "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) что-то довольно интересное... Посмотри, пожалуйста, это и есть та самая схемка?

CHRV
22.05.2006, 20:46
Я тут посмотрел: почти везде такие микросхемы дефицит. А разве каких-нибудь микросхем, полностью заменяющих их нет чтоли?
И еще: как думаете, можно найти принципиальную схему этой микросхемы? Ну там всякие описания резисторов, транзисторов, дорожек и т.д.
А вот здесь посмотреть никому в голову не приходит ;):
http://www.nedopc.com/catalog.php

tmp_online
23.05.2006, 12:02
щас прикину цены :)
Слушай, а ведь у вас тама не бесконечное число микросхем... А откудова берете? Вроде же сейчас их никто не производит. Или я глубоко ошибаюсь?

CHRV
23.05.2006, 12:38
щас прикину цены :)
Слушай, а ведь у вас тама не бесконечное число микросхем... А откудова берете? Вроде же сейчас их никто не производит. Или я глубоко ошибаюсь?
Я беру их со складов у китайских друзей.

tmp_online
23.05.2006, 16:55
Блин, даже микросхемы у китайцев начали скупать...

Orionsoft
23.05.2006, 18:15
КЕТАЙ рулит !

Trantor
23.05.2006, 18:25
А они на драгметалы понабирали, без разбору.

tmp_online
24.05.2006, 11:33
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках

Eltaron
24.05.2006, 11:56
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках
да теоретически-то хоть что можно :)
а практически еще кажеццо никто не делал
в принципе, нужно-то зафигачить спек без видеоконтроллера с аюком в ПЛМ, да приделать чтение MMC
а можно даже и не в ПЛМ, а просто рассыпухой, правда плеер получится размером с CD-walkman :)

DVS
24.05.2006, 12:42
Схема такого девайса уже где-то проскакивала (PIC + ROM).
А делать с MMC/SD я уже подумывал, но потом задвинул эту идею, не охота использовать тривиальный подход, хотелось бы эмулировать работу AY. По моему Conan или Spensor просчитывали эту возможность на Atmel Tiny с fast PWM, но дальше не сдвинулось.

Robus
24.05.2006, 13:00
Как думаете, с помощью этих микросхем можно сделать плеер, воспроизводящий музыку в .PT3 .VTX и еже с ними форматах? Эти файлы предварительно будут записаны на флешках

Но можно взять современный микроконтроллер за 3-4$ и сделать эмуляцию AY'ка на нём. Мало того, многие микроконтроллеры имеют в середине ЦАПы, то есть по сути нужен просто один микроконтроллер, да ещё и от батарейки будет работать. Например можно выбрать микроконтроллер Silicon Laboratories F02x, который на 25 мегагерц и имеет 16-ть выводов. Можно выбрать что-нибудь из серии F12x у него есть 128к флешки на 100000 перезаписей одного блока в 1024 байт плюс 8192 байт статики. Запакованнаую мелодию в флешку, распаковываем в RAM и играем. Правда F12x стоит по дороже, около 10$ но уже с флешкой. А соединять с компом можно через Com-Port.

Robus
24.05.2006, 13:04
Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.

ZEK
24.05.2006, 13:10
Мало того, многие микроконтроллеры имеют в середине ЦАПы,
К сожадению наоборот многие микроконтролеры содержат АЦП(ADC) и очень мало в основном "дорогие" ЦАП(DAC), но что действительно многие имеют это ШИМ который можно юзать как ЦАП(DAC), правда настройка необходима для точности

CHRV
24.05.2006, 15:42
Кстати в 2004-ом году я был на SpeXtream'е, и Looker показывал обыкновенный телефонный аппарат с АОНом, но вместо звонков играла спековская музыка.
Сделанный на микроконтроллере Венус5 имеющий АУ на борту.

CHRV
24.05.2006, 15:43
Но можно взять современный микроконтроллер за 3-4$ и сделать эмуляцию AY'ка на нём. Мало того, многие микроконтроллеры имеют в середине ЦАПы, то есть по сути нужен просто один микроконтроллер, да ещё и от батарейки будет работать. Например можно выбрать микроконтроллер Silicon Laboratories F02x, который на 25 мегагерц и имеет 16-ть выводов. Можно выбрать что-нибудь из серии F12x у него есть 128к флешки на 100000 перезаписей одного блока в 1024 байт плюс 8192 байт статики. Запакованнаую мелодию в флешку, распаковываем в RAM и играем. Правда F12x стоит по дороже, около 10$ но уже с флешкой. А соединять с компом можно через Com-Port.
Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед :).

Titus
24.05.2006, 15:51
Распространненое заблуждение. Увы микроконтроллеров за 3бакса для эмуляции не хватит, желающие доказать - вперед :).

Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:

icebear
24.05.2006, 15:55
Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:

А он даёт эти 25 мипсов? Я тоже раньше думал, что PICи белый и пушистые :)

Titus
24.05.2006, 16:21
А он даёт эти 25 мипсов? Я тоже раньше думал, что PICи белый и пушистые :)

На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц. Хотя я их не особо люблю (силабсовские контроллеры). Дорогие и непрактичные.

CHRV
24.05.2006, 17:03
Ты думаешь 25MIPS'ов буде мало, чтобы сэмулить AY??? :v2_biggr:
Ну сделай, посмотрим :).
Дело не в мипсах, а в умении их прилагать ;)

Titus
24.05.2006, 17:10
Ну сделай, посмотрим :).
Дело не в мипсах, а в умении их прилагать ;)

Мне эмулировать 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:
Это что же, я по твоему фанат-маньяк? Ща как бензопилу включу

Ronin
25.05.2006, 10:04
На сколько я помню, у силабсов 1 команда 8051 за один такт. Вот тебе и 25 мипсов на 25МГц.

ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст :) эт если уложите эмуляцию в 8кб :D

Titus
25.05.2006, 11:52
ну и че, lpc2101 - ARM, за 2.5$ так и все 50 мипсов выдаст :) эт если уложите эмуляцию в 8кб :D

Только не 2.5$, а 2$ (если мелкооптом). Только тут речь идет о контроллере с ЦАП'ом на борту :v2_wink2:

CHRV
25.05.2006, 12:57
Ну это уж можно запрограммировать... а, погодь, ты говоришь, что там микросхема AY стояла?

О, нашел! А схему сможешь достать?

Описание проца здесь:
http://www.venus.ru/news.php?id=67&arc=0&sct=1

tmp_online
27.05.2006, 11:50
Ух ты! Огромное спасибо

Robus
02.06.2006, 00:53
Ну вот и свершилось ... Хех ...

Прочитал я вот это:

Распространненое заблуждение. Увы микроконтроллеров за 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. Слушаем музыку.

Никогда не понимал, чего электронщики постоянно считают программистов за дураков ? Нет, что бы вместе сидеть и творить ?

... Продолжение следует ...

Robus
02.06.2006, 00:55
Вот текст программы для 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
..




... Продолжение следует ...

Robus
02.06.2006, 00:58
Это продолжение текста программы для 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




... Продолжение следует ...

Robus
02.06.2006, 00:59
Это продолжение текста программы для 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




Пользуйтесь. Плеер напишу позже, тут придётся попотеть !!!

ZEK
02.06.2006, 11:01
Гы. весело. Однозначно кульно.

DVS
02.06.2006, 12:04
2 Robus

Респект. Такую бы фичу в мой FlashTaper сделать, но можно расчитывать только на PWM 8bit @ 16kHz.

Я на досуге с PWM поэспериментировал (PWM выходы через ФНЧ подключил к УЗЧ):

1) такого качества (8 bit @ 16kHz при ZQ 8MHz) для голосовых сообщений хватает, но вот чтобы AY файлы играть... не очень то. может в режиме fast PWM можно что-то ещё выжать, пока не ясно

2) у AVR в моём проекте 14MIPS. Хватит, чтобы твой модуль в AVR заработал?

CHRV
02.06.2006, 12:26
Это продолжение текста программы для C51F120:

Пользуйтесь. Плеер напишу позже, тут придётся попотеть !!!

Ну вот хоть один толковый человек нашелся а то как пиз..ть так все горазды, а как мешки ворочать так никого :)

Конечно с огибающими и главное с шумом трудности наверно будут (шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность - можно посмотреть в одной из версий кода для ФПГА).

Рад что послужил мотивацией, с меня там что нить разливное полагается при встрече :v2_cheer: .
:v2_clapp:

Robus
02.06.2006, 22:20
Ну вот хоть один толковый человек нашелся а то как пиз..ть так все горазды, а как мешки ворочать так никого

Если честно, то я то же люблю поговорить, но это от того, что хочется сделать вообще всё подрят, а времени совсем нет. Вот бы придумали какой-нибудь аппарат, чтоб нажал кнопку и выспался =)
А вообще-то, с удовольвствием "ворочил бы мешки", дай только волю и микроконтроллер, ну или процессор, что на сегодняшний современный век почти одно и то же ...


Конечно с огибающими и главное с шумом трудности наверно будут (шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность - можно посмотреть в одной из версий кода для ФПГА).

Огибающие нужно ещё сильно править ... Я вообще не понял в чём лажа. У меня в пик (громкость 15) и минимум (громкость 0) повторяется дважды, может в этом лажа ??? Да и не могу найти описание в какой момент записи в команды происходит сбрасывание огибающей ? И не могу понять должна ли огибающая совпадать с пилой на тоне каждого из каналов ? Кстати и какая частота выборки на AY'ке ? А то я подбирал по слуху ... Я имею в виду ежели значение тона на первый канал, например, 3, то с какой частотой должен происходить декремент таймера ? Вообщем, почти всё что было написано, сделано лишь пробуя методом втыка и сравнений на слух с эмулятором.


Рад что послужил мотивацией, с меня там что нить разливное полагается при встрече
Лучше давай развидём схему для плеера, всё же идей неплохая. Я в электронике далеко не монстр. А пиво, надеюсь, обязательно попьём ...

Robus
02.06.2006, 22:35
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 мипсов за копейки, но всё на шариках.

Robus
02.06.2006, 22:43
Да ...

шум генерится на основе полинома Жегалкина, т.е. генерящую случайную последовательность
А можно по точнее ? Что рандом я понял, но регистр AY_R6 [0..31] как конкретно влияет ??? Как я придумал сам себе, то если значение, паример, 5, это проиграть 6-ть раз один и тот же рандомный звук за один такт ??? Да ??? И можно по точнее по поводу самого метода Жегалкина ? Хотя я, думаю, можно будет сделать рандом самому... Вообщем много неясностей ...

DVS
03.06.2006, 09:15
У 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.

DVS
03.06.2006, 09:26
2 Robus

Напиши разрешение ЦАП в твоём uC и частоту сэмплирования.

CHRV
03.06.2006, 11:25
Да ...

А можно по точнее ? Что рандом я понял, но регистр 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);
Главное подобрать разряды регистра участвующие в суммировании таким образом чтобы случайная последовательность была наиболее длинная (так называемый совершенный полином). В принципе в вышеуказанныой прошивке уже подобранны разряды. Вообще на таких полиномах строятся рандом генераторы для всяких хардваре-устройств.

Robus
03.06.2006, 15:44
Извини конечно, но с AVR ты видимо дело не имел, так же как и я C51F120:

Дело имел, но это было в 2002-ом году, я делал клавиатуру на нём. По Serial'у, то есть на трёх проводах, было соединение с клавиатурой, а AVR'ка превращала это в коды нажатых клавиш на порт 254 для Z80. Но, признаюсь, почти ничего не помню ... Помню, что асм мне на много больше понравился, нежели у Intel51 ...


Напиши разрешение ЦАП в твоём uC и частоту сэмплирования.

Частота семплирования как и частота ЦАПа 100000 герц, но на ЦАП выдаётся со скоростью примерно 1.5 мегагерца. В итоге получается автоматическая интеграция. Хотя я бы плюнул на цапы и взял бы простешие два ЦАПа за $1 на 8-бит, тут же не нужна дикая точность, а в SILabs'овых точность ... Да и вообще у Cignal'ов с АЦП и ЦАПами не всё впорядке. Мы делали прибор в котором нужно было отцифровать аналоговую ПЗС со скоростью 1 мегагерц, в итоге оказалось что частота 1 мегагерц в описании это с дикими помехами ...

Robus
07.06.2006, 09:01
Сегодня капался в прайсах, и выяснил что есть такой процессор C51F411, очень хороший, имеет 32 ноги из них 29 это свободные порты и самое главное, что 50 мипсов, стоит немного дороже $7.8. Я ориентируюсь на него, у него ещё и USB есть. Так что сегодня сделаю версию под 50 мипсов и без потери качества. И ЦАП у него на 200 килогерц и два Serial-Port'а. За такие деньги это давольно таки неплохо ... Если всё получится, то программа уменьшится вдвое за счёт 50-ти мипсов.

Robus
10.06.2006, 22:22
Блин ... Нужна помощь ... CHRV, спасибо, конечно, но в VHDL'е я не очень разбираюсь ... Хотя я понимаю, что там нет ничего особо мудрёного, но всё же хочется найти чёткое описание AY'а ... Не поверхностное а именно чёткое, что после записи в такой-то регистр, например, сбрасывается счётчик огибающей и в т.д. Вообщем шипения с сделал, рандом получил и звучит велеколепно, но некоторые вещи меня довели до бешенства. Как вы помните, что я заметил разницу между проигрыванием музыки в Mental Mastarbation'е. Бился я очень долго, никак не получалось, потом пришёл домой с работы и решил запустить на реальном Speccy этот Mental ... И заметил, что у меня-то какраз самое что не на есть точно, а эмулятор немного искажает ... Я по натуре дотошный и каждый левый звук бкдет меня достовать. Пробовал я на Unreal'е. Вроде всё хорошё, уже был доволен как решил попробовать ещё пару демок. Нашёл какой-то гифт, называемый EXOTIC_M. Там есть часть от ACID'а. На моём AY'ке просто ужас какой-то ... Совсем не то. Эмулятор сэмулировал лучше, да же скажем на слух звучит просто идеально. На реальном Speccy ни как у меня не как в эмуялоре. Я да же предположил, что писали эту музыку на эмуляторе. В чём дело ??? Найдите, пожалуйста, описание. Мне нужно чёткое определение, что если в регистре R01 лежит 0, то это частота такая-то ... Как я понял это 1750000 герц, я прав ??? Соответственно, ежели 1, то делится на два !!! Получается формула 1750000/(R01+1) !!! Так ??? И по поводу регистра R6, какая частота получается тут ??? Как я понял, это рандомное значение выбирается с частотой 1750000/(R6+1) !!! Вообщем нужно описание, а то делать путям втыка очень сложно ... В среду будет первый рабочий день, и надеюсь что за среду разберусь в чём дело ... А так всё, вообщем, играет велеколепно !!!

DVS
11.06.2006, 08:15
2
Robus

Надо код на C реализации генератора шума AY? Да и вобще эмуляции всего AY на C ? :-)

Robus
11.06.2006, 11:27
2
Robus

Надо код на C реализации генератора шума AY? Да и вобще эмуляции всего AY на C ? :-)

Шум я уже сделал ... На это понадобилось окло 20-30-ти минут ... И С здесь будет лишним ... Нужно программу уместить в 4096 байт ... А все версии под Си, которые я качал требуют минимум под 16384 ... Я и сам мог с самого начала разложить табличку значений от 0..4095 в частоты, для этого не нужно знания Си. Кроме всего мне нужно точно проэмулировать, а эмуляторы не делают этого точно, и, как я понимаю, там именно эти самые распростронённые варианты на Си. Мне нужно описание, на Си написать я могу и сам. У меня всег-лишь нет описания, а не умения программировать.

DVS
11.06.2006, 11:40
У меня всег-лишь нет описания, а не умения программировать

Не горячись, я про это не говорил.


Кроме всего мне нужно точно проэмулировать, а эмуляторы не делают этого точно

Круто завернул.

Дело в том, что на эмуляции AY "собака" съедена и исходные тексты и всевозможные описание можно посмотреть на сайте Сергея Бульбы.

PS: ты забыл добавить вот это: :v2_finge:

Robus
11.06.2006, 11:47
Сергея Бульбы.

ООО ... Кстати ... Сейчас проверю как у Бульбы проигрывается музыка из Mental Masturbation ... Интересно так же не точно как в Unreal'е ???

Robus
11.06.2006, 11:56
Не горячись, я про это не говорил.
Ссори ... Просто я не понимаю, когда екстремальный код исполняют командами 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 мипсов - это очень хороший процессор. ;)

Robus
11.06.2006, 16:35
А ты на 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 ??? С намёком конвертации из остальных форматов в него ...

DVS
11.06.2006, 18:02
Вообщем, буду доделывать плейер ... Скоро понадобятся наработки по проигрыванию PT3 ... Заодно вопрос на будущее, а подойдёт-ли плеер только PT3 ??? С намёком конвертации из остальных форматов в него ...

Тут не грех вспомнить про SD/MMC и FAT16/32 :-)
И ещё прикольно бы было схему посмотреть (минимальную). Надо оценить доступность компонентов и возможность самостоятельной сборки.

Это я к тому, что я хотел на AVR AY эмулировать, но оно как-то не получается. Поэтому есть очень хрупкая идея слияния с моим проектом.

DVS
11.06.2006, 18:07
Кстати, по аналогии с PT3, мне задают вопрос насчёт TAP (у меня только поддержка TZX), но конвертация в TZX тоже дело несложное. Я не знаток форматов AY и если PT3 достаточно распространён и "широкий" по возможностям, то нужно остановиться на нём.

Robus
11.06.2006, 18:44
Тут не грех вспомнить про 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.

DVS
11.06.2006, 19:14
Немного не понял о ФАТе ??? Это же плейер, который с компом будет соеденён по USB или COM-Port'у ! А поддержку буду писать под ПиЦи, и это уже второй вопрос, который на много проще ...


Почему хрупкая ... Очень даже нормальная идея.

Ну что ж посмотрим, если договоримся и железо доставаемое... Кстати насчёт железа, 16 разрядный MSP 430 (тоже довольно прилично укомплектован ЦАПами и MIPSами :-) ) у вас не в обороте? Просто с Cygnal дела не имел. Ещё конечно DSP какой-нить потянет, но это уже дороговато. Опять же средства отладки и разработки... Мне очень нравится связка AVR + JTAG или MSP430 + JTAG, короче надоело наощупь проги писать (даже если есть симулятор, какой-бы он не был, это не то).

DVS
11.06.2006, 19:18
Конечно понятно, что если через UART будет играть, то в принципе можно повешать другой контроллер и рулить... Но тут есть свои минусы...

Robus
11.06.2006, 20:22
Мне очень нравится связка AVR + JTAG или MSP430 + JTAG, короче надоело наощупь проги писать (даже если есть симулятор, какой-бы он не был, это не то).

Но Cygnal так же с JTAG'ом ... Много есть процессоров. Например Hyndai выпускает какой-то совй проц на 500 мипсов, но его в Киеве соглашаются доставать только под заказ и втри-дорого. А есть просто чудесные процессоры на, вдумайтесь в эту цифру, 8000 мипсов, да ещё и каждая каоманда ARM7 32-бит, но Texas Instrument продаёт их не менее чем 50000 штук, да и в Киеве так же за процессор хотят не менее $100. Я выбирал процессор лишь из-за его цены - всего 3.5 доллара, ну потом нашёл более лучше с точки зрения впайки за $7. Последний на 40 выводв, 50 мипсов и паяется просто. E Analog Device, есть ихние BlackFin'ы ... И да же цены доступные, но как я буду паять шарики ??? А разводка платы ??? Кто изготовит трёхслойную плату ??? Вот поэтому и приходится уродоваться с доступным ... Все компоненты точно доступны как в России, так и в Украине. Стоит копейки ...

ZEK
11.06.2006, 22:35
Блин ... Нужна помощь ... CHRV, спасибо, конечно, но в VHDL'е я не очень разбираюсь ... Хотя я понимаю, что там нет ничего особо мудрёного, но всё же хочется найти чёткое описание AY'а ... Не поверхностное а именно чёткое, что после записи в такой-то регистр, например, сбрасывается счётчик огибающей и в т.д.

Могу помочь с чтением xHDL языков если будеш ставить конкретные вопросы, я тебе попробую помочь. По крайней мере как это реализовао в xHDL версиях.

Robus
11.06.2006, 22:48
Могу помочь с чтением xHDL языков если будеш ставить конкретные вопросы, я тебе попробую помочь. По крайней мере как это реализовао в xHDL версиях.

Думаю, что с описанием я теперь всё точно сделаю в среду ... Но у меня другой вопрос, если ты разбираешься с VHDL'ем, то можно я тебе буду ставить вопросы по поводу матриц, а ты мне расскажешь ? Как я понял, с ними ты работал ? А заодно после уяснения множества непонятностей, для меня, с матрицами я смогу задавать вопросы по поводу самого VHDL'я ...

Заранее спасибо ...

ZEK
12.06.2006, 00:14
Но у меня другой вопрос, если ты разбираешься с VHDL'ем, то можно я тебе буду ставить вопросы по поводу матриц, а ты мне расскажешь ?
Чем сможем тем поможем :) Тем более люди на форуме есть которые сталкивались программируемыми мелкосхемами.
Только в другом треде (например в этом http://zx.pk.ru/showthread.php?t=2960) или в личке

DVS
12.06.2006, 07:47
Но Cygnal так же с JTAG'ом ...
К сожелению для каждого семейства контроллеров свои JTAG отладчики. У меня есть только для AVR и MSP (не взаимозаменяемые).

Robus
12.06.2006, 09:14
К сожелению для каждого семейства контроллеров свои JTAG отладчики. У меня есть только для AVR и MSP (не взаимозаменяемые).
Это точно, что свои ... Меня это всегда так раздражало ... Вроде выбираеш процессор и думаеш, - "щас впаяю, да как запущу", а потом выясняется, что программатор ещё кучу баксов стоит !!! А отладчиком я не пользовуюсь. Пока пошагово найдёш баг, бытсрее прочитаеш собственную программу и поймёш его головой. Так что оценить дебагер просто немогу. Единственнный дебаггер на этой планете, которым я пользовался это STS, но всем дебаггерам до STS как земле до неба !!! Хотя не, земля к небу намного ближе ... =)

icebear
12.06.2006, 11:53
Не погоречился ... У Z80 есть 16-ти битовые операции, что упрощает в сотни раз структуру программы: Например:

Как только у Z80 появится хоть одна команда, исполняющаяся за один так, тогда и будет "в 6 раз больше" :)

Robus
15.06.2006, 01:27
Итак ... Как и обещал, сделал последнюю версию ... Лажа была смехотворная ... Проверено, вся музыка играет точно так же как на настоящем AY'ке ... В демке, которая игралась неправельно игрвется всё так как на настоящем AY'ке ... А точнее не совсем так как на эмуляторе. Так же точно играется на моём плеере. Перепроверил около 20-ти дисков с софтом, вроде всё отлично !!! Завтра постараюсь развести схему и выложить, но собиру её не раньше чем через неделю, - плату будут разводить ... Теперь сожусь за плеер PT3 !!! Надеюсь, что с ним будет проще. Так же надеюсь на помощь от тех, кто делал плееры для PT3, наверное жешь там много всяческих тонкостей !!!

Eltaron
15.06.2006, 06:24
хе, столько лет считалось, что это в принципе невозможно, а Robus взял и за пару недель сделал :) респект! жаль тока МК какой-то редкий, у нас в магазинах таких нету..

Robus
15.06.2006, 08:58
хе, столько лет считалось, что это в принципе невозможно, а Robus взял и за пару недель сделал респект! жаль тока МК какой-то редкий, у нас в магазинах таких нету..
Не .... Совсем не редкий !!! Наоборот, оооочень доступный !!! А темболее в России. Вообще, большинство компонентов в Киев попадают через Россию. Название МК C89F411 !!! Поробуйте поискать в прайсах, его цена $6-$7 ... Этому МК уже 4-ре года и если он до Киева доехал, то у вас он должен быть и подавно !!!

--------------

В крайнем случае готов купить в Киеве и отослать !!! Да же запаять на плату !!! Только предупреждаю, десяток плат я согласен сделать, но больше просто не хочется тратить время. Электроника, не моё это призвание ...

caro
15.06.2006, 11:01
Не .... Совсем не редкий !!!
Название МК C89F411 !!! Если точнее то называется C8051F411.
Купить можно запросто, достаточно поискать на www.efind.ru
Кстати оценочный набор C8051F411-EK стоит от 35 до 45$

В Екатеринбурге продукцию Silabs продает фирма "ЭФО" тел: (343) 378-41-22

CHRV
15.06.2006, 11:39
В крайнем случае готов купить в Киеве и отослать !!! Да же запаять на плату !!! Только предупреждаю, десяток плат я согласен сделать, но больше просто не хочется тратить время. Электроника, не моё это призвание ...
Ну чтож дело пошло!
Дороже конечно пока реала, но зато интересно использовать в энерго-экономных устройствах, а если еще на АРМ перевести вообще здорово будет.
От меня лично пожилание - наиболее подробно исходник прошивки комментировать :).

DVS
15.06.2006, 12:14
Всё конечно прикольно, я вот только не пойму: устройство подключается через UART к ПЦ, а ведь можно подключить AY через LPT к ПЦ. В чём фишка то, кроме конечно эмуляции на асме?

Я сомневаюсь что можно на Спеке даже с ZX-MCard обеспечить необходимую скорость потока через RS232, значит получается, что это устройство исключительно для обладателей ПЦ?

Не конечно прикольно скачать исходник и дальше сделать как хочешь, но на это не многие способны.

ASDT
15.06.2006, 12:15
"но зато интересно использовать "
Можно сказать ширее - ещё один кирпичик в фундамент будущего ZX :)
(В переводе для CHRV - АТМ-3 :) )

DVS
15.06.2006, 12:17
Можно сказать ширее - ещё один кирпичик в фундамент будущего ZX

А ну если так...

Robus
15.06.2006, 23:38
Если точнее то называется 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 вольт. Такие блоки питания продаются на любом радио-рынке !!!

Robus
16.06.2006, 00:17
Блин ... Зачем это ограничение в 19 килобайт на картинки ??? Вообщем первый вариант схемы лежит в этом архиве !!! Надеюсь формат TIF смогут просмотреть все ???

Orionsoft
16.06.2006, 00:28
а я правильно понял , что микс каналов происходит "внутри"
- можно ли это будет потом менять с кнопочек ?

Robus
16.06.2006, 07:43
а я правильно понял , что микс каналов происходит "внутри"
- можно ли это будет потом менять с кнопочек ?

Смотря как менять ?!? Есть всего два ЦАПа, поэтому сделать отдельно три канала нельзя. Но внутри их можно миксовать как угодно. В программе, на прерываниях, есть микс каналов, где просто меняешь значение микса и хоть все в левое ухо, а хочешь, можешь просто один оставить ... Но получить отдельно три канала - никак !!!

Ronin
16.06.2006, 09:43
В чём фишка то, кроме конечно эмуляции на асме?

ну например в 128 канальном АУ :D


Можно и на АРМ !

желательно на арм. цап внешний может быть. вообще есть проект newGS на базе арм, который пока не успел даже стартовать (арм7+внешний стерео цап) :) ну а если туда добавить ау/фм :) было бы неплохо.

Robus
16.06.2006, 14:14
ну например в 128 канальном АУ

Ну это конечно красиво, но не реально на микроконтроллере. Максимум 32 ... Хотя может 32 я уже загнул !!! Надо пробовать ... Кстати, в программе есть такая переменная DECCER, в которой лежит значеине качества AY'а ... Сейчас значение 4, это означает, что любое значение частоты меньше 4-рёх будет искажаться !!! У меня такой вопрос возник, а кто-нибудь в мелодиях использует такую частоту ???

Меня ещё очень интересует проигрывать музыку с Atari !!! По сути там тот же AY, только на четыре канала, правда частота на него подаётся, помоему, в три раза меньше ...

Robus
16.06.2006, 14:18
желательно на арм. цап внешний может быть. вообще есть проект newGS на базе арм, который пока не успел даже стартовать (арм7+внешний стерео цап) ну а если туда добавить ау/фм было бы неплохо.

А арм в каком процессоре ??? Я имею в виду какой производитель ??? Есть BlackFin'ы, там вообще ничего не нужно, кроме DIMM и MCPU, но такие микроконтроллеры стоят под $100 ! Я уже пытался начти не дорогое, но так и не нашёл. В итоге я пришёл к выводу, что многое нужно делать на PLM'ках ... Но у меня нет никакой практики.

DVS
16.06.2006, 14:23
А арм в каком процессоре ???

Вот: PHILIPS LPC21XX, LPC22XX

Довольно приличные девайсы и цена не страшная. JTAG можно через LPT сделать (Wiggler). А главное IAR WorkBench ( там и асм и С ) со всем этим делом стыкуется.

Titus
16.06.2006, 14:45
А арм в каком процессоре ??? Я имею в виду какой производитель ??? Есть BlackFin'ы, там вообще ничего не нужно, кроме DIMM и MCPU, но такие микроконтроллеры стоят под $100 ! Я уже пытался начти не дорогое, но так и не нашёл. В итоге я пришёл к выводу, что многое нужно делать на PLM'ках ... Но у меня нет никакой практики.

Младшие модели BlackFin - 5$ мегаоптом, и 10$ в розницу.
Что же касается PLM'ок, то они актуальны при больших обьемах цифровой обработки сигналов (цифровые фильтры, например), там, где современные микроконтроллеры не справляются. Но такие PLM, т.е. FPGA (с умножителями и т.д.) стоят сами по себе достаточно дорого.

newart
16.06.2006, 15:04
Фишка в том, что этот плеер работает от батарейки !!! Подключением через COM или LPT не существенно. Главное, что во флеш ты накачиваеш 30-40 мелодий на 128к, я уже подсчитал, и ходишь по улице, наслаждаясь тем, чего нет вообще ниукого !!!
Мало.
Минимум 100 и даже этого мало.
Зачем ограничевать когда 128 метров стоят меньше 10$?

Ronin
16.06.2006, 18:28
А арм в каком процессоре ??? Я имею в виду какой производитель

ну я уже упомянул что по цене вне конкуренции пока LPC2101-03 (низкие цены потому что мало флеша) - от 2-3$, ну а дальше - много чего есть в диапазоне 5-7$ и море чего пожелаешь около 10$. гляди сюда скажем http://www.caxapa.ru/mcudb/?arch=6. А вообще этой задаче неплохо соответствует что-то вроде LPC2214+sram. сначало в сторону ADuC смотрели, но по цене проще внешний более битовый ЦАП поставить.

Robus
17.06.2006, 21:57
ну я уже упомянул что по цене вне конкуренции пока 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) проэмулировать ...

jtn
17.06.2006, 22:21
Вот только я не понял, это цена производителя или сахары, которая, надеюсь, на нашей територии ... попробуй efind.ru


о я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...а зачем? у меня с этим unreal свободно справляется

CHRV
18.06.2006, 11:30
попробуй efind.ru

а зачем? у меня с этим unreal свободно справляется
Просьба анреальщиков обратится в сторону раздела эмуляторы :v2_devil:

CHRV
18.06.2006, 11:34
И ещё ... Эта штука 200 мипсов на 32-битовую команду !!! Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...
Ресурсов АРМ9 хватит не только чтобы эмулировать АУ но и весь спектрум целиком... Т.е. для наших (точнее для ваших) задач вполне хватит простого АРМ7.
ПО АРМ9 системам (цены в рублях):
http://www.techno.ru/txt/6/Pr_carm.htm

jtn
18.06.2006, 11:47
Просьба анреальщиков обратится в сторону раздела эмуляторы
в чем разница мулить спектрум на ARM'е или intel/amd?

Ovvnex
18.06.2006, 12:39
Просьба анреальщиков обратится в сторону раздела эмуляторы

2 The Exploited
Не в смысле разницы между процами, а в том что в разделе Железо обсуждаются именно железные разработки и приводить в пример программный эмулятор некорректно! Офтопик, в смысле. :v2_wink2:

jtn
18.06.2006, 17:56
приводить в пример программный эмулятор некорректно! Офтопик, в смысле. так это на я, а Робус пишет!

Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...

Ovvnex
18.06.2006, 18:40
так это на я, а Робус пишет!
Цитата:
Сообщение от Robus
Если эти деньги будут $20, то я сразу же сожусь за эмуляцию процессора на этом монстре. В итоге можно будет почти весь комп (Speccy) проэмулировать ...

Дык, одно дело написать эмулятор под DOS или под Винду ( да хоть под FreeBSD), другое запихать всё нутро современного спека в ПЛИС (или написать код для микроконтролера), развести печатную плату, купить все необходимые радиодетали, собрать, настроить, исправить ошибки ( в железе!) и пустить в серийное (малосерийное производство)! Мало не покажется! Вот и разница между програмной и аппаратной эмуляцией!

CHRV
10.07.2006, 16:32
Обсуждения муляторов/не муляторов удалены...
К сабжу не имеют никакого отношения - оффтопик!