Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 6 из 58 ПерваяПервая ... 34567891656 ... ПоследняяПоследняя
Показано с 51 по 60 из 578

Тема: Как управлять Si5351

  1. #51
    EPROM это было бы конечно удобно чтоб без контроллера делать генераторы на фиксированную частоту.
    А так тини13 ставлю для загрузки предварительно рассчитанных регистров.


  2. #52
    Ну вот, регистры программа научилась читать, reg0=0b11110000; вот тут не совсем понятно, у меня si5351a, 4-й бит он только для si5351c, указывает что источник колебаний не соответствует требованиям, а тут в нем должен быть ноль тогда, или оба варианта и они ничего не значат?

  3. #53
    Цитата Сообщение от ur3ilf Посмотреть сообщение
    Не умалчивает.
    Частично умалчивает- приходилось с помощью ClockBuilder генерить разные нетепичные прошивки и расшифровывать неописанные регистры. Так кстати и регистр адреса I2C был вычитан. Предполагалось в одном устройстве использовать две SI5351 на общей шине. Но у двух микросхем были одинаковые адреса. Самое простое оказалось сделать у одной из них отключаемое питание. При этом во второй микросхеме менялся адрес на шине программно, а потом включалось питание первой. Это было проще чем городит мультиплексор на шину.
    Александр

  4. #54

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,414
    Позывной
    LZ2WSG
    SoundMaster, как идея: не оставляйте собития (и I2C адреси) непонятными, а организовайте простые эксперименти (части кода), которые дадут необходимую информацию.

    Напр. я бы включил к аппаратный I2C напр. EEPROM 24C02 по ее схеме. Буду писать/найду код для сканирования I2C. Буду читать шину и писать код, пока не получу четкий адрес EEPROM-а = 0x50.

    Когда это удастся, я буду выключить 24C02 и буду включить Si5351 (с или без конвертер уровня 5V/3,3V по I2C). Сканирование адресов определенно даст адрес чипа (ожидается (7-bit): 0x60, 0x62, в частности: 0x61 и др. 0x61 (Si5351С ИС нет) вариант или другой адрес у меня никогда не был) и не буду спрашивать себя, является ли это реальным I2C адресом моего Si5351, купил ли я подделку с маркета и др. Потом начинаю писать код для чипа с управлением по этому I2C адресу .
    (частично использовал переводчика).
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	24c02.gif 
Просмотров:	187 
Размер:	11.1 Кб 
ID:	340461  
    Последний раз редактировалось veso74; 29.07.2020 в 15:06.

  5. #55
    Цитата Сообщение от khach Посмотреть сообщение
    Это было проще чем городит мультиплексор на шину.
    Мультиплексор ни когда и не городил. Можно использовать любые пины вход/выход для i2c. Успешно использую как аппаратный так и программный i2c. Можно по трём пинам две шины запускать. Общий клок а данные на разных пинах. Тоже работает без проблем. В железе по сути всегда "ногодрыг" по определённой последовательности в итоге и не важно кто и как в программе этот ногодрыг реализует- функция компилятора с библиотеки или по тактово на ассемблере прямое управление.

  6. #56
    У меня вопрос, написано что Multisynth может быть 4,6,8 и в интервале от 8+(1/((2^20)-1))) до 900+(1/((2^20)-1))), где (1/((2^20)-1)))=с в формуле (a+(b/c)), то есть c может быть не обязательно (1/((2^20)-1))) а меньше, вплоть до 1, это правильно? или значение c фиксировано и равно только (1/((2^20)-1)))

  7. #57

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    1,414
    Позывной
    LZ2WSG
    Не могу найти более подходящей темы для написания. Si5351, управляющий код. Варианты управления давно были сделаны и проанализированы из многих интернет-ресурсов. В связи с небольшой задачей (ATtiny13A -> Si5351A) задумался над следующим случаем:

    Feedback divider,: а + (b / c), скорее его знаменатель c [1..1048575]. В процессе расчета, в зависимости от входных данных и выбранной точности расчета, цифры в поле могут быть любыми.

    могу обработать:
    1. масштабировать знаменатель, пока он не станет меньше 1048575 (0xFFFFF)
    2. (частный случай 1) масштабировать знаменатель до другое число (напр. четное, 1000000 и др).
    3. сократит знаменатель и числитель до математически максимально возможного, а при необходимости масштабировать дробь
    4 ... другое действие?

    В некоторых общедоступных кодах (библиотек Si5351) варианты обработки 1 или 2.

    Когда есть более чистый спектр? К каким цифрам в обработки мне стремиться (для коеф.c)?
    В (3) в некоторых случаях не будет делителя с дробным коэффициентом (на точных частотах, на кратных частоте кварца и т. д.).

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

    Меня больше интересует теоретическая сторона, практическая - работает .
    (частично использую переводчик БГ -> РУ)
    ---------
    случайный пример:
    b = 456789
    c = 2283945
    ---
    в. 1:
    b = 209715
    c = 1048575
    ---
    в. 2
    b = 200000
    c = 1000000
    ---
    в. 3
    b = 1
    c = 5

  8. #58

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    992
    Вероятно, для ответа на вопрос без долгих экспериментов и дорогих приборов, нужно знать внутреннюю реализацию pll и ms в сишке. Тогда, быть может, и физика с матстатистикой подскажут.

    Скрытый текст

    Я тут для тини13 лабу сделал (нашел одну сишку) Освежил в памяти регистры и блок схему. (: В частном случае можно использовать mux между pll и ms и обновлять два регистра, а в общем программировать регистры заново. Но, даже в тини13, как выше уже отмечали, программирование заранее рассчитанными регистрами прекрасно размещается. Лаба может пригодиться тем, кто любит ковыряться с сишкой и микроконтроллером на уровне даташита и инструкций. https://github.com/ozforester/swap2freq


  9. #59
    Сейчас у меня включен один выход output_00. Работает в качестве bfo на ssb. Чтобы приемник работал на АМ мне надо выключить выход. Как это сделать? Просто записать 0 в старший бит 16-го регистра, то есть весь регистр будет одни нули, или еще надо записать другие байты в другие регистры? Попробовал один байт, все выключилось и потом записываю 0х80 чтобы обратно включить и не включается


  10. #60
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    12,968
    Записей в дневнике
    18
    Вот так это делается:

    Код:
    // Si5351    https://github.com/etherkit/Si5351Arduino
    #include <si5351.h>  //  v2.1.4 or later
    
    int cal_factor = 710;  // Calibration factor Si5351. Подбирается на частоте 10.000.000 Гц
    int freq = 10000000;   // Частота на CLK1
    
    
    // - - - - - - - - - ИНИЦИАЛИЗАЦИЯ - - - - - - - -  - - - - -
    void setup() {
    
        //  Инициализируем  Si5351
        si5351.init(SI5351_CRYSTAL_LOAD_8PF, 0, 0); // Actual Lib Etherkit SI5351 v2.1.4 or later
        
        // Калибровка. 
        si5351.set_correction(cal_factor * SI5351_FREQ_MULT, SI5351_PLL_INPUT_XO);
    }
    
    
    // - - - - - - - - - ГЛАВНЫЙ ЦИКЛ - - - - - - - -  - - - - -
    
    void loop() {
    
    
      //  ------------ CLK1: Включение / Выключение BFO по сигналу BFO_On_Off ------------
      
      if (digitalRead(BFO_On_Off) == LOW)   {
        si5351.output_enable(SI5351_CLK1, 1);
        si5351.set_freq(freq * SI5351_FREQ_MULT, SI5351_CLK1);
        si5351.drive_strength(SI5351_CLK1, SI5351_DRIVE_8MA);    
      }
      else {
        si5351.output_enable(SI5351_CLK1, 0);
      }
    
    
    }
    Последний раз редактировалось IG_58; 04.12.2022 в 18:39.
    Игорь

Страница 6 из 58 ПерваяПервая ... 34567891656 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Подскажите, плиз, как управлять таким тюнером :)
    от sonycman в разделе Технический кабинет
    Ответов: 5
    Последнее сообщение: 23.03.2015, 00:23
  2. Как удобнее управлять амплитудой нч сигнала?
    от R3LAI в разделе Технический кабинет
    Ответов: 5
    Последнее сообщение: 07.08.2014, 10:31
  3. Управлять исполнительным устройством при помощи одной кнопки
    от stolyarov-ae в разделе Технический кабинет
    Ответов: 11
    Последнее сообщение: 21.01.2013, 09:23
  4. Помогите! Нужно управлять LPD 430мГц через ррадио телефон!
    от V205 в разделе Технический кабинет
    Ответов: 2
    Последнее сообщение: 17.03.2009, 14:29
  5. Как управлять линией передачи в MIDI портe
    от Юрий(UR5VEB) в разделе Программное обеспечение
    Ответов: 19
    Последнее сообщение: 09.11.2006, 00:22

Ваши права

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