Сообщение от
Egord
В исходниках файл ReadMe.
Это автосгенерированный файл - только состав файлов темплейта отражает.
Залезать в файл dds7.cpp:
Код:
/* Board hardware configuration */
//#define PLL1_TYPE PLL_TYPE_LMX2306 //PLL_TYPE_ADF4001
//#define PLL2_TYPE PLL_TYPE_LMX2306 //PLL_TYPE_ADF4001
#define DDS1_TYPE DDS_TYPE_AD9852
//#define DDS1_TYPE DDS_TYPE_AD9951
//#define DDS2_TYPE DDS_TYPE_AD9852
//#define DDS2_TYPE DDS_TYPE_AD9951
#define AMP1_TYPE AMP_TYPE_AD8320
//#define AMP2_TYPE AMP_TYPE_AD8320
//#define AMP3_TYPE AMP_TYPE_AD8320
Здесь типы микросхем - поменять очевидное.
Код:
#define DDS_CLOCL_MULT 8
static const char AINITAIL_OSC [32] = "200000000"; /* oscillator on input to DSS */
#define LO2_PLL_R_CALC 2000 /* result of divide DDS Fclk to PLL2 compare freq (0.1 MHz) */
Тут тоже, под то, что надо.
Код:
//static const unsigned char targetdds1 = 0; /* ad9857 DDS */
//static const unsigned char targetamp1 = 1; /* ad8321 amplifier */
static const unsigned char targetdds1 = 0; /* DDS1 */
//static const unsigned char targetdds2 = 1; /* DDS2 - LO3 output */
//static const unsigned char targetpll1 = 2; /* lmx2306 after DDS1 - divide by r1 and scale to n1 */
//static const unsigned char targetpll2 = 3; /* lmx2306 - fixed 2-nd LO generate */
static const unsigned char targetamp1 = 4; /* ad8321 amplifier */
//static const unsigned char targetamp2 = 5; /* ad8321 amplifier */
//static const unsigned char targetamp3 = 6; /* ad8321 amplifier */
//static const unsigned char targetctl1 = 7; /* ad8321 amplifier */
static const unsigned char targetadc1 = 7; /* mc145170 after DDS1 - divide by r1 and scale to k1 */
Это менять не надо - если внешнего дешифратора нет, чипселекты свитчем по адресу, приходящему в программы выдачи или снятия чипселекта prog_select().
Код:
/*
* интерфейс с платой - управление чипселектом
*/
static void prog_select(
unsigned char target, /* addressing to chip */
unsigned char select /* zero - done sending data, non-zero - start sending data */
)
{
SPDIO_VAL(0); // запись бита информации
CSB_SET(); // chip select inactive
lpt_and_writeb(target << 2, 0x07 << 2);
if (select)
{
CSB_CLR(); // chip select active
#if TESTING
// TRACE1("%2d: ", target);
#endif
}
else
{
#if TESTING
// TRACE0("\n");
#endif
}
}
инициализацию интерфейса с платой и выдачу битов смотреть чуть выше:
Код:
/*
* интерфейс с платой - выдача одного бита на последовательный канал
*/
static void prog_bit(
unsigned char target, /* addressing to chip */
fastbool_t bitv /* zero or non-zero values */
)
{
SPDIO_VAL(bitv != 0); // запись бита информации
SCLK_SET(); // latch!
SCLK_CLR(); // inactive state
}
Так что тут разобраться, по моему, легко. Будут проблемы - отвечу.