Такого точно не должно быть. Что-то не то с настройками HDSDR.
1. Убедитесь, что Options->Input Channel Mode for RX установлено в I(Left)/Q(Right) (default).
2. Включите Options->Calibration Settings->Input Channel Calibration for RX, а затем нажмите Reset Calibration в этом окне. Эти калибровки не требуются для OSA103 Mini и должны быть все в нулях.
Это единственные известные мне настройки которые могут привести к такому эффекту. Попробуйте также работу с другими программами SDR радио.
Спасибо от UA6BCB
Добрый день, вопрос к автору программы osa-bpf для ардуино.
Я использую преселектро от приемника jrc. Там 6 поддиапазонов и электронная перестройка варикапами.
Перепиал программу под дешифратор в преселокторе, все работает штатно. Задействованы 3 порта pd2-pd4 хочу использовать порт pb9 для ШИМ управления перестройки напряжения варикапов.
Не могли бы Вы помочь с этой частью? Отдельно шим примеры из интернета работают и дпф перестраиваются, но стоит попробовать вставить в программу, все перестает работать.
Спасибо!
И второй вопрос, можно ли прям с ардуино управлять tx-rx, не собирая буфер на транзисторе.
Еще раз спасибо!
экранированный провод конечно хорошо, но я бы посоветовал уменьшить входное сопротивление этого входа, припаяв с обратной стороны платы осы небольшой резистор на землю. входы осы имеют входное сопротивление порядка 100к, естественно, что они ловят наводки. номинал резистора можно выбрать около 1к. небольшой конденсатор параллельно резистору тоже не помешает - отфильтрует РЧ, наведённую на провода.
Добавлено через 8 минут(ы):
не виде вашу схему, потому сделаю предположение, что транзистор автор установил для преобразования уровней 5В в 3.3В. или наоборот, для усиления до 12В для реле. если вы используете в осе входы D1..D4, то они должны выдерживать 5В уровни от ардуинки. естественно, зная что на входах осы установлен делитель 75к/25к, может потребоваться подстройка порога срабатывания выбранного входа в настройках. и да, поскольку при включении все ноги ардуины настроены на вход, чтобы избежать гличей, на стороне осы можно припаять резистор и конденсатор на землю. например 1к/470пФ
Последний раз редактировалось Muxa52; 02.10.2019 в 14:16.
Спасибо от Сергей1971
Вот программа бэндкодера под дешифратор 74ls145:
BandCoder.c
/*********************************************************/
/* Переключатель ДПФ и RX/TX для OSA103 Mini в роли SDR. */
/* Частично используется код из http://xelfaer.ru/?p=508 */
/* ss, 2017 */
/*********************************************************/
#define F_CPU 16000000UL
#include <avr/io.h>
#include <stdint.h>
//*** Инициализация UART ***//
inline void uart_init(void)
{
UBRR0 = 0; // 1Mbps
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); // 8 бит данных, 1 стоп-бит, без контроля чётности
UCSR0B = (1 << RXEN0); // разрешить прием данных
}
//*** Инициализация таймера 1, частота ~16 КГц ***//
inline void timer_init(void)
{
TCCR1A = 0; // режим CTC
TCCR1B = (1 << WGM12) | (1 << CS12) | (1 << CS10); // fOSC/1024
OCR1A = 0xFFFF; // считать до упора
}
//*** Прием данных по UART ***//
unsigned char uart_receive(void)
{
while (!(UCSR0A & (1 << RXC0)));
return UDR0;
}
uint8_t x; // индекс принятого байта в буфере
uint8_t buf[5]; // буфер приёма
uint16_t tmr; // предыдущее состояние таймера
#define FREQ (*(uint32_t*)buf)
#define RXTX (buf[4])
#define TXFLAG 0x80
//*** Переключение фильтров. Суммарно до 11 ДПФ на пинах PD2..PD7, PB1..PB5, нумерация с нуля ***//
void switch_bpf(uint8_t n)
{
//if (n < 6)
//{
// PORTD &= ~(4 << n);
// PORTB &= (1 << PB0);
//} else {
// PORTD = 1;
// PORTB = (PORTB & (1 << PB0)) | (2 << n);
//}
if (n < 6)
{
if (n == 0)
{
PORTD = B11100011;
}
if (n == 1)
{
PORTD = B11100111;
}
if (n == 2)
{
PORTD = B11101011;
}
if (n == 3)
{
PORTD = B11101111;
}
if (n == 4)
{
PORTD = B11110011;
}
if (n == 5)
{
PORTD = B11110111;
}
if (n >= 6)
{
PORTD = B11111011;
}
}
}
//*** Переключение RX/TX ***//
inline void show_tx(void)
{
if (RXTX & TXFLAG)
PORTB |= (1 << PB0);
else
PORTB &= ~(1 << PB0);
}
const uint32_t freqs[] = { // верхние границы диапазонов
400000
, 1600000
, 4400000 // 1.6 .. 4.4
, 12300000 // 4.4 .. 12.3
, 20500000 // 12.3 .. 20.5
, 30000000 // 20.5 .. 30
, 0xFFFFFFFFUL // если выше - включаем bypass
};
//*** Главная программа ***//
int main(void)
{
DDRD = 0xFC; // установим верхние 6 бит порта D как выходы, будем управлять ДПФ
PORTD = 0xFF; // установим логический 0 на все пины порта D, снимем подтяжки
DDRB = 0x3F; // индикатор/реле передачи на PB0, далее ДПФ
PORTB &= 0xC0; // обнулим младшие разряды
uart_init();
timer_init();
tmr = TCNT1;
while (1)
{
x = 0;
while (x < 5)
{
buf[x++] = uart_receive();
if (TCNT1 - tmr > 300) // если на приём ушло много времени,
x = 1; // ... то это первый байт пакета
tmr = TCNT1; // обновим таймер
}
for (uint8_t i = 0; i < sizeof(freqs) / sizeof(freqs[0]); i++)
{
if (FREQ <= freqs[i])
{
switch_bpf(i);
break;
}
}
show_tx(); // покажем работу на передачу
}
}
Вот такой код реализует ШИМ на порту PB1 arduino
SHIM.c
#include <avr/io.h>
int main(void)
{
DDRB |= (1 << DDB1);
// PB1 is now an output
ICR1 = 255;
// set TOP
OCR1A = 150;
// set PWM for 25% duty cycle
TCCR1A |= (1 << COM1A1);
// set none-inverting mode
TCCR1A |= (1 << WGM11);
TCCR1B |= (1 << WGM12)|(1 << WGM13);
// set Fast PWM mode using ICR1 as TOP
TCCR1B |= (1 << CS10);
// START the timer with no prescaler
while (1);
{
// we have a working Fast PWM
}
}
Подскажите как их объеденить, чтобы реализовать электронную перестройку варикапами, ктороые стоят в ДПФ? Спасибо за помощь.
В вопросе про RX/TX имел ввиду эту схему:
Можно ли без транзистора, напрямую с ардуины управлять переключением rx/tx?
Ну и фото макета:
Спасибо за помощь! В программировании не силен.
Спасибо от LEONID2
Всем привет. Второй день тестирую Осу в качестве трансивера на УКВ диапазонах, впечатления самые положительные, проведено множество QSO как по месту, так и по сегодняшней тропосфере. Проверены режимы SSB, FM и AM. https://youtu.be/qp3PtJ3I7iY
так можно ли на словах пояснить, для чего было снято видео, и что ставилось целью показать?
а то не совсем понятно какую пользу можно извлечь из разговоров и не калиброванного С-метра
если продемонстрировать возможность, то она не подлежит сомнению, тогда какой смысл просто слушать звуки?
Бэнддэкодер для ардуины я выбрасывал где то постами ниже, всё работает как надо, это что бы не изобретать огород
Да, я как раз этот код и взял, просто под дешифратор переписал, но у моих дпф помимо поддиапазонов еще электронная перестрока варикапами. В этом проблема.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)