Надо осмыслить. Пока не вижу применение PSK в генераторе сигналов.Boroda писал(а):AVGN, все ясно, в нашем деле вещь скорее бесполезная, а вот для настройки фазовых детекторов и радиотрактов и прочего радиоприема и дешифрации пойдет.
Код: Выделить всё
// frequency calc from datasheet page 8 = <sys clock> * <frequency tuning word>/2^32
void sendFrequency(double frequency)
{
int32_t freq = frequency * 4294967295/125000000; // note 125 MHz clock on 9850. You can make 'slight' tuning variations here by adjusting the clock frequency.
for (int b=0; b<4; b++, freq>>=8) {
tfr_byte(freq & 0xFF);
}
//**************************************************************
//tfr_byte(0x000); // Final control byte, all 0 for 9850 chip
tfr_byte(0x001); // Final control byte, 1 for 9851 chip
//**************************************************************
pulseHigh(FQ_UD); // Done! Should see output
}
// transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
void tfr_byte(byte data)
{
for (int i=0; i<8; i++, data>>=1) {
digitalWrite(DATA, data & 0x01);
pulseHigh(W_CLK); //after each bit sent, CLK is pulsed high
}
}
Для AD9851 надо включить множитель кварца на 6AVGN писал(а):Boroda, подключил AD9851.Частоту выдает неправильно.
В пять раз меньше. На дисплее 10МГц на выходе AD9851 - 2МГц
Радиолюбители (программировали на PIC контроллере) сказали что в AD9851 надо по другому передавать завершающий байт последовательности.
И прислали код для Ардуино.
Не подскажите как его прикрутить в блок пользователя или может Ваш можно модифицировать для AD9851?
Спасибо!Mining писал(а):Для AD9851 надо включить множитель кварца на 6
В блоке пользователя откройте LoopSection и замените
Control = (Phase << 3); // Регистр подстройки
На
Control = (Phase << 3) | 1; // Регистр подстройки
Не обращайте внимание, это сообщение погоду не строит.DerAlex писал(а):При компиляции сообщает что найдена неверная библиотека.