Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Ещё может быть окислы замкнули что-то, столько времени работали. Спиртом промыть можно.
Отправлено: 08.06.2024 23:13
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Если с питанием всё норм то надо ещё посмотреть генерацию на кварце, он вполне мог сдохнуть от времени.
Отправлено: 05.06.2024 1:24
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Цитата:
проще выбросить Может начать как положено при ремонте электроники - с напряжения питания? Или там хот что-то светиться из индикаторов?
Отправлено: 04.06.2024 19:29
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Не знаю как там в вашем Bascom AVR но во всех остальных это не правильно if pinb.2 = 0 Then
Должно быть if pinb.2 == 0 Then А вот тут ‘Pinb.4 = 0 апостроф зачем ? PS Посмотрел примеры Bascom AVR, действительно if pinb.2 = 0 Then правильно. И с апострофом понял - комментарии, но возможно это ошибка в данном случае Татды сори - не знаю... нужен спец по Bascom AVR
Отправлено: 03.06.2024 23:51
Отредактировано пользователем ken 04.06.2024 0:08:38
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Цитата:
R3 - в свойствах случайно не цифровой?
Отправлено: 14.04.2024 0:55
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Есть небольшие изменения в схеме. Связанно это стем что есть разброс параметров IRF7105. В некоторых случаях высокого уровня с выхода 555 не хватает для полного закрытия Р-канального мосфета сборки, сборка греться и повышается ток потребления, решается это включением в цепь питания IRF7105 диода и уменьшением сопротивления на выходе ТХ с 10 до 8,2 Ом для сохранения уровня тока в контуре ТХ.
Прикреплённый файл: ![]() ![]()
Отправлено: 09.03.2024 0:57
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Выкладывать исходники не буду по разным причинам, но могу помочь в написании кода.
Вот так открываем СОМ-порт (например СОМ1) HANDLE h_COM ; h_COM = CreateFile ("\\\\.\\COM1", GENERIC_READ GENERIC_WRITE, 0, NULL,OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if ( h_COM == INVALID_HANDLE_VALUE) ShowMessage("Error" ); Перед закрытием программы надо закрыть СОМ-порт, иначе при повторном открытии будет ошибка. CloseHandle (h_COM) ; Дальше нужны функции которые будут дёргать выводы СОМ порта в соответствии с протоколом I2C. #define SI5351_ADDR 0x60 // TxD-SDA #define _I2C_SDA_HI() ClearCommBreak(h_COM); //TxD = 1 #define _I2C_SDA_LO() SetCommBreak(h_COM);// TxD = 0 // DTR-SCL #define _I2C_SCL_HI() EscapeCommFunction(h_COM, CLRDTR);// DTR = 1 #define _I2C_SCL_LO() EscapeCommFunction(h_COM, SETDTR);// DTR = 0 #define _I2C_INIT() _I2C_SDA_HI(); _I2C_SCL_HI(); #define _I2C_START() _I2C_SDA_LO(); _I2C_SCL_LO(); _I2C_SDA_HI(); #define _I2C_STOP() _I2C_SCL_HI(); _I2C_SDA_HI(); #define _SendBit(data, bit) if(data&1<<bit){_I2C_SDA_HI();} else{_I2C_SDA_LO();} _I2C_SCL_HI(); _I2C_SCL_LO(); void i2c_SendByte(byte data){ _SendBit(data, 7); _SendBit(data, 6); _SendBit(data, 5); _SendBit(data, 4); _SendBit(data, 3); _SendBit(data, 2); _SendBit(data, 1); _SendBit(data, 0); _I2C_SDA_HI(); // recv ACK _I2C_SCL_HI(); _I2C_SCL_LO(); } void i2c_start(){ _I2C_INIT(); _I2C_START();} void i2c_stop() { _I2C_STOP();} void i2c_beginTransmission(byte addr){ i2c_start(); i2c_SendByte(addr << 1); }; bool i2c_write(byte s_byte){ i2c_SendByte(s_byte); return 1; }; byte i2c_endTransmission(){ i2c_stop(); return 0; }; void si5351_write(byte regAddr, byte data) { i2c_beginTransmission(SI5351_ADDR); // The I2C address of the Si5351A i2c_write((byte) regAddr); i2c_write((byte) data); i2c_endTransmission(); } Дальше нужна библиотека для si5351, я использовал Можно использовать любую Ардуиновскую библиотеку , просто заменив функции для I2C на наши: i2c_beginTransmission(SI5351_ADDR); i2c_write(byte);// byte - байт для отправки. i2c_endTransmission();
Отправлено: 08.01.2024 0:23
Отредактировано пользователем ken 08.01.2024 0:38:38
Отредактировано пользователем ken 08.01.2024 0:49:29 |
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Понадобился мне для экспериментов с SDR приёмниками гетеродин. Есть у меня Si5351, но все проекты с Si5351 обычно с контроллером, дисплеем и тд, при этом сама обработка сигнала в компьютере и без него никак. Так почему-бы не исключить контроллер и всю его обвязку?
И всё получилось) Не без минусов, частота устанавливаться медленно, потому как прямого доступа к портам давно нет, а через API функции очень медленно. Плавно перестраивать не получиться но вот сканировать с каким-то шагом вполне можно, да ненужна плавня настройка для SDR гетеродина, она будет в программе SDR приёмника. Программа позволяет использовать Si5351 и как гетеродин с преобразованием частоты вверх или вниз (режим F1) либо просто как генератор частоты с диапазоном 8кГц...160МГц. И грустного - у меня нифига не Si5351 а китайский клон MS5351M и он категорически отказывается в режиме (I-Q) работать ниже 2,8 МГц. Программа в бета версии, я вроде погонял её на всех режимах, но могут быть какие-то баги, если что обращайтесь - будем исправлять. Так-же не знаю насколько точно держит разность фаз во всей полосе частот. Для Список частот можно редактировать вручную, (файл Si5351_IQ.txt) главное что-бы в правильном формате и этот файл всегда находился в одной папке с программой. Я записал туда средние частоты любительских диапазонов полюс CB сетка С. Для подключения нужен USB->UART преобразователь с сигналом DTR, либо напрямую с COM порта, через простой преобразователь уровней, правда не пробовал через COM порт, на моих компах их нет. Прикреплённый файл: ![]() ![]() ![]()
Отправлено: 06.01.2024 23:52
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Да, я тоже пришёл к такой конфигурации, но придётся добавить коммутатор сигналов управления, в принципе надо добавить ещё один корпус 74HC4053.
Отправлено: 21.12.2023 1:15
|
|
Сотрудник
![]() ![]() Зарегистрирован:
11.12.2010 22:59 Из: Кишинёв
Сообщений:
63
![]() |
Нашёл интересную статью
Учитывая, что RDivider’s недоступны, минимальное значение Fpll составляет 600 МГц, а максимальное значение CLKx_PHOFF равно 127, мы никак не можем получить частоту, скажем, 3.5 МГц. Для решения этой проблемы в коде есть небольшой хак. Для частот в интервале 1.4-4.725 МГц используется частота Fpll ниже 600 МГц. Эксперименты показали, что PLL срывает, когда он работает на частотах ниже 177 МГц. Это дает минимальную частоту 177 / 127 = 1.4 МГц. Думаю если нужны частоты ниже - можно и на D-триггерах сделать, на низких частотах они приемлемо работают. Но главное: Из хорошего — схема демонстрирует стабильную работу на частотах до 100 МГц. Это максимальная частота, которую мой драйвер Si5351 может генерировать с фазовым сдвигом 90°. В отличие от D-триггеров, Si5351 прекрасно справляется с задачей на высоких частотах.
Отправлено: 20.12.2023 1:47
|
|