Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 8 из 25 ПерваяПервая ... 56789101118 ... ПоследняяПоследняя
Показано с 71 по 80 из 246

Тема: Плата STM32F429I-DISCO как контроллер DUC/DDC трансивера

  1. #71
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Коррекция?(только частота?)
    Тупую железяку частота волновать не должна. Коррекцией контроллер занимается.
    Сейчас вывод сделан так:
    Код:
    /* programming FPGA SPI registers */
    // http://www.sdr-deluxe.com/publ/ddc_module_1_cifrovoj_radiotrakt_transivera/1-1-0-51
    static void prog_fpga_freq1(
    	spitarget_t target,		/* addressing to chip */
    	const phase_t * val		/* FTW parameter for NCO */
    	)
    {
    #if FTW_RESOLUTION >= 32
    	const uint_fast32_t v32 = (* val) >> (FTW_RESOLUTION - 32);
    #else
    	const uint_fast32_t v32 = (* val) << (32 - FTW_RESOLUTION);
    #endif
    
    	rbtype_t rbbuff [11] = { 0 };	
    
    	RBVAL8(10 * 8, v32 >> 24);	// rx
    	RBVAL8(9 * 8, v32 >> 16);
    	RBVAL8(8 * 8, v32 >> 8);
    	RBVAL8(7 * 8, v32 >> 0);
    	RBVAL8(6 * 8, v32 >> 24);	// tx
    	RBVAL8(5 * 8, v32 >> 16);
    	RBVAL8(4 * 8, v32 >> 8);
    	RBVAL8(3 * 8, v32 >> 0);
    	RBVAL8(2 * 8, 0);			// att
    	RBVAL8(1 * 8, glob_tx ? 255 : 0);
    	RBVAL8(0 * 8, 0);
    
    	spi_select2(target, FPGA_SPIMODE, SPIC_SPEEDUFAST);
    	prog_spi_send_frame(target, rbbuff, sizeof rbbuff / sizeof rbbuff [0]);
    	spi_unselect(target);
    }
    Номера битов идут с нуля - ближайшего к мастеру. Переворачиванием занимается макрос RBVAL8
    Давайте доверимся надписи на генераторе, с изменением чсастоты потом... Я думаю, приём сигналов точного времени вполне пойдёт для контроля.
    Последний раз редактировалось Genadi Zawidowski; 12.09.2016 в 23:06.
    ... Я там глубину сам промерял!


  2. #72

    Регистрация
    12.08.2013
    Адрес
    Нижний Новгород
    Сообщений
    214
    Позывной
    R3TGP
    Ok!но уже завтра.

  3. #73
    Аватар для rolin
    Регистрация
    08.11.2007
    Адрес
    Seattle, WA
    Сообщений
    5,063
    Позывной
    N7DDC
    Цитата Сообщение от avbelnn Посмотреть сообщение
    alt_buf[0]=frequency>>24;
    alt_buf[1]=frequency>>16;
    alt_buf[2]=frequency>>8;
    alt_buf[3]=frequency;
    А может так ?

    alt_buf[0]=frequency; // старший
    alt_buf[1]=frequency << 8;
    alt_buf[2]=frequency << 16;
    alt_buf[3]=frequency << 24; // младший

  4. #74
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    rolin, а Вы как автор можете сказать - какой байт раньше из мастера выходит - старший или младший в поле частоты у Вас? Что в пределах байта старший бит первым, я предполагаю это как у всех...
    ... Я там глубину сам промерял!

  5. #75
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Цитата Сообщение от avbelnn Посмотреть сообщение
    Не знаю как насчёт стабильности связи с компом,пару раз терялся в диспетчере задач(восстанавливал ась после нажатия на reset на плате discovery)нужно тестить.
    Исправлено "отваливание" USB порта.
    Правда, куда-то пропало переклюяение на приём при пропадании связи по USB (если была вклчюена передача).
    Вложения Вложения
    ... Я там глубину сам промерял!

  6. #76
    Всем доброе утро.
    Смотрю данную тему регулярно.
    Вопрос только один. Вы в итоге хотите SDR-DRM трансивер получить?

  7. #77

    Регистрация
    12.08.2013
    Адрес
    Нижний Новгород
    Сообщений
    214
    Позывной
    R3TGP
    Цитата Сообщение от rolin Посмотреть сообщение
    А может так ?

    alt_buf[0]=frequency; // старший
    alt_buf[1]=frequency << 8;
    alt_buf[2]=frequency << 16;
    alt_buf[3]=frequency << 24; // младший
    Может и так,только при передаче частоты 7150000 Гц в модуль её значение будет 176 Гц.
    А что,в Verilog по другому?
    output reg [7:0] tx_imag
    reg [31:0] buffer_tx;
    ...
    begin
    tx_imag = buffer_tx[31:0];
    end
    И после операции присвоения tx_image примет значение buffer_tx[31:24],а не buffer_tx[7:0]?

    переменной uint8_t будут присвоены младшие 8 вит переменной uint32_t.
    Цитата Сообщение от Genadi Zawidowski Посмотреть сообщение
    какой байт раньше из мастера выходит
    reg [7:0] cnt = 0;
    reg [87:0] buffer;

    always @(posedge sck)
    begin
    buffer[87 - cnt] <= sdata;
    end
    Пришёл первый байт(MSB-старшим битом вперёд),записался в старший байт buffer[87:0].

  8. #78
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Значит у меня передается правильно.
    Что хотим получить... К сожалению исходников DRM нет. Или другая аббревиатура тут должна быть?
    Автономный DUC/DDC трансивер есть. В данной теме тестирую то, что в одиночку не сделать. Как побочный эффект, скорее всего получится программа управления платами от rolin на однои процессоре в готовой плате от ST.
    Последний раз редактировалось Genadi Zawidowski; 13.09.2016 в 12:10.
    ... Я там глубину сам промерял!

  9. Спасибо от US8IDZ

  10. #79

    Регистрация
    12.08.2013
    Адрес
    Нижний Новгород
    Сообщений
    214
    Позывной
    R3TGP
    Геннадий,а возможно подцепить кодек для вывода звука?Свободных i2S на плате больше нет,а если сделать "ногодрыгом",в качестве тактирования 12.88 МГц использовать PA8(MCO1) или PC9(MCO2),висят на I2C для touch(если не нужен).Есть готовый аудиотракт на кодеке CS4272.
    Прошивку сгенерил,вечером проверю.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	I2S.gif 
Просмотров:	50 
Размер:	13.3 Кб 
ID:	242835  


  11. #80
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,093
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Отсутствие свободных ног это единственное, что останавливает. Ещё одно требование - кодек придется тактировать от того же клока, что и SAI. т.е, или подать в процессор на PC9 122880 / 5 или формировать с FPGA сигнал BCLK (WS можно использовать тот же).
    Ещё один ваиант:
    перевести канал обмена между FPGA и процессором в например 256 битный режим.
    На приёме используются два 32-битных слота для квадратур, на передаче два слота как и раньше - пераваемые квадратуры. Два дополнительных (или один - упаковать в 32 бита два 16-ти битных канала кодека) использовать для передачи информации в кодек, который (звуковой интерфейс которого) повесить на FPGA. Данные от кодека (микрофон!) в процессор передавать в свободных слотах приёмного канала.

    Сейчас я 256 бит в своих трансиверах использую так:
    На передачу - два слота квадратуры, остальные шесть свободны.
    На приём: квадратуры основного приёмника, квадратуры дополнительного приёминика - это 48к выборок в секунду.
    Оставштеся четыре слота преносят две квадратуры канала спектроанализатора - с частотой 96к выборок в секунду.
    В модификациях попроще неиспользуемые слоты просто не заняты.

    todo1: вероятно, пока не поздно, лучше перейти к изначально заложеной Philps идеологии тактирования I2S - отдельно существующий источник синхросигналов (BCLK и WS) - master, приёмники и передатчики аудиоданных со своей разрядностью - slave. В случае появления кодека, присоединенного на FPGA это, как мне кажется, существенно упростит отладку.
    todo9: может, FIR фильтр квадратур в Вашем проекте когда-нибудь перреедет в FPGA? Это существенно разгружает процессор. Картинка (делал UA1ATD) объясняет структуру, в реализации используются многоканальные готовые блоки.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	digiplisflowchart.png 
Просмотров:	93 
Размер:	70.1 Кб 
ID:	242845  
    Последний раз редактировалось Genadi Zawidowski; 13.09.2016 в 14:17.
    ... Я там глубину сам промерял!

Страница 8 из 25 ПерваяПервая ... 56789101118 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Контроллер SDR трансивера Тюльпан
    от R6DAN в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 2107
    Последнее сообщение: 02.11.2023, 09:27
  2. Бюджетный DDC/DUC
    от Слесарь в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 74
    Последнее сообщение: 14.08.2016, 23:44
  3. Бюджетный DDC/DUC
    от Слесарь в разделе Технический кабинет
    Ответов: 3
    Последнее сообщение: 10.08.2016, 13:19
  4. SDRstick UDPSDR-HF1/2 DDC+DUC
    от Windk в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 55
    Последнее сообщение: 17.09.2013, 21:50
  5. Очередной DDC/DUC трансивер MakSDR
    от makkosik в разделе Software Defined Radio (SDR), Digital Radio Mondiale (DRM)
    Ответов: 27
    Последнее сообщение: 30.08.2012, 10:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •