WT-синтезатор на одном чипе.

Различная музыкальная электроника

Модератор: Модераторы

Аватара пользователя
maxlab
Пользователь
Сообщения: 26
Зарегистрирован: 07 мар 2017, 20:07
Местоположение: Ust-Labinsk

Re: WT-синтезатор на одном чипе.

Сообщение maxlab » 13 мар 2017, 19:15

Запустил SAM2695 в параллельном режиме. Вроде не икает :good:
тестовые коды для PIC18F67K22 выглядят так... может кому пригодятся
main.c

Код: Выделить всё

#use delay(clock=64M, crystal=16M)
#use SPI(SPI1,FORCE_HW,MODE=0)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <font.h>
#include <lcd.h>
#include <hardware.h>
#include <YM2149.h>
#include <YM2612.h>
#include <SAM2695.h>


BYTE main()
{
   glcd_init(ON);
   glcd_text57(20,32,"Initializing...",1,1);
   YM_FM_init();
   if (SAM_Init()==0) return 0;
   enable_interrupts(GLOBAL);
   enable_interrupts(INT_EXT);   
   while(TRUE)
      {
      }

}


hardware.h

Код: Выделить всё

#define A0       PIN_A2
#define A1       PIN_A3
#define RD       PIN_A0
#define WR       PIN_A1
#define YM_IC    PIN_G3
#define SD_CS    PIN_C2    /* Select for MicroSD    */
#define HC_CS    PIN_F7    /* Select for HC595    */
#define YM_CS1    PIN_G4    /* Select for YM2612#1    */
#define YM_CS2    PIN_A5    /* Select for YM2612#2    */
#define SM_CS    PIN_F1    /* Select for SAM2695    */

SAM2695.h

Код: Выделить всё

#define PAR_MODE   0x3F
#define UART_MODE   0xFF
#define PAR_OK      0xFE
   
/* Prototypes */

BYTE SAM_Init();
BYTE read_SAM_Data();
BYTE read_SAM_Status();
BYTE check_RF();
BYTE check_TE();
void write_SAM_Data(BYTE Data);
void write_SAM_Control(BYTE Data);

/*Interrupt INT0*/

#INT_EXT
void int0_isr()
{
BYTE data;
data = read_SAM_Data();
write_SAM_Data(data);
}

/* Functions*/

BYTE SAM_Init()
{
BYTE res;
write_SAM_Control(PAR_MODE);
res = read_SAM_Data();
if (res==PAR_OK) return 1;
   else return 0;
}

BYTE check_RF()
{
BYTE data;
data = read_SAM_Status();
return bit_test(data,6);
}

BYTE check_TE()
{
BYTE data;
data = read_SAM_Status();
return bit_test(data,7);
}

void write_SAM_Control(BYTE Data)
{
output_high(A0);
output_low(SM_CS);
output_low(WR);
output_e(Data);
delay_us(1);
output_high(WR);
output_high(SM_CS);
}

BYTE read_SAM_Data()
{
BYTE data;
output_low(A0);
output_low(SM_CS);
output_low(RD);
data = input_e();
output_high(RD);
output_high(SM_CS);
return data;
}

void write_SAM_Data(BYTE Data)
{
output_low(A0);
output_low(SM_CS);
output_low(WR);
output_e(Data);
delay_us(1);
output_high(WR);
output_high(SM_CS);
output_high(WR);
}

BYTE read_SAM_Status()
{
BYTE data;
output_high(A0);
output_low(SM_CS);
output_low(RD);
data = input_e();
output_high(RD);
output_high(SM_CS);
return data;
}

Для компилятора CCS PICC
Бонус - воспроизведение миди в параллельном режиме https://ru.files.fm/u/zjrvgxmr
Удачных экспериментов!
Девице - device

Аватара пользователя
Dmitry Dubrovenko
Администратор
Сообщения: 2017
Зарегистрирован: 12 окт 2014, 20:20
Местоположение: Санкт-Ленинград
Контактная информация:

Re: WT-синтезатор на одном чипе.

Сообщение Dmitry Dubrovenko » 20 мар 2017, 17:58

maxlab писал(а):Запустил SAM2695

А каков уровень сигнала на выходе?
Подпись

Аватара пользователя
maxlab
Пользователь
Сообщения: 26
Зарегистрирован: 07 мар 2017, 20:07
Местоположение: Ust-Labinsk

Re: WT-синтезатор на одном чипе.

Сообщение maxlab » 20 мар 2017, 19:59

0.25v примерно. Стандарт для линейного выхода вроде
Девице - device


Вернуться в «Музыкальная электроника»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 53 гостя