www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 09 Ное 2024, 23:30

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 46 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща
Автор Съобщение
МнениеПубликувано на: 05 Авг 2024, 00:00 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Цитат:
avrdude: ser_open(): can't set com-state for COMn

Пробвай с по-стар драйвер.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 07 Авг 2024, 07:51 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Пробвах с Ver. 3.8, после и с по-стария Ver. 1.7, пробвах и всички UBS-та - нищо не се получи. Разпознава платката, няма някакви конфликти в дивайс мениджъра и т.н.
Остана само да пробвам с по-къс USB кабел, че сега съм с един 50 см.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 07 Авг 2024, 09:04 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Деинсталирай наличните драйвери, като отметнеш и изтриване на файловете. Рестартирай.
Използвам този стар драйвер на няколко PC:


Прикачени файлове:
ch341ser_11_04_2011.zip [178.97 KiB]
37 пъти
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Авг 2024, 16:56 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Пробвах на WIN 7 и WIN 10, различни версии на IDE, по-къс кабел, но няма резултат - явно проблемът е в платките нано, клонинги, купувани преди години за няколко левчета от Китай.

А ето какво ми написа AI, след като му възложих задача да генерира код да Arduino + RDA5807 за една честота:


Прикачени файлове:
AI Arduino .jpg
AI Arduino .jpg [ 253.67 KiB | Прегледано 348 пъти ]
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Авг 2024, 20:44 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Супер. Само да спомене коя библиотека за RDA5807M (написани все пак от човек) е изполвал, че са много.
AI да пали поялника и да запоява и платката :D.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 12 Авг 2024, 15:39 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
:D Тая работа с AI няма да завърши добре. След като му направих забележка за библиотеката, веднага ми изпрати код за БНР, 103 MHz, София, без библиотека:

Код за потвърждение:
#include <Wire.h>
#define RDA5807_ADDR 0x10
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  tuneFrequency(1030);  // Tune to 103.0 MHz, BNR, Sofia
}
void loop() {
}
void tuneFrequency(float frequency) {
  uint16_t freqReg = (uint16_t)((frequency - 87.5) * 100);
  uint16_t freq = (freqReg + 10) << 2;
  uint16_t controlReg = 0x0000;
  controlReg |= 0x0340;
  writeRegister(0x00, controlReg);
  writeRegister(0x02, freq);
  uint16_t status = readRegister(0x01);
  Serial.print("Status Register: ");
  Serial.println(status, HEX);
}
void writeRegister(uint8_t reg, uint16_t data) {
  Wire.beginTransmission(RDA5807_ADDR);
  Wire.write(reg);
  Wire.write(data >> 8);
  Wire.write(data & 0xFF);
  Wire.endTransmission();
}
uint16_t readRegister(uint8_t reg) {
  Wire.beginTransmission(RDA5807_ADDR);
  Wire.write(reg);
  Wire.endTransmission();
  Wire.requestFrom(RDA5807_ADDR, 2);
  uint16_t data = (Wire.read() << 8) | Wire.read();
  return data;
}


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 23 Авг 2024, 07:37 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Досвидя ми да слагам цяла платка вътре, затова записах няколко чипа 328P, които със сигурност няма да използвам НИКОГА! Изгубих много време да си припомням това Ардуино и не искам да чувам повече за него :biggrin

Ето кода, ако някой иска приема само една радиостанция:
Код за потвърждение:
#include <Wire.h>
double f_ini = 103; // БНР 103 МHz София
void setup()
{
  Wire.begin();
  setFrequency(f_ini);
}
void loop()
{
}
void setFrequency(double fmhz)
{
  int frequencyB = 4 * (fmhz * 1000000 + 225000) / 32768;
  char frequencyH = frequencyB >> 8;
  char frequencyL = frequencyB & 0XFF;
  Wire.beginTransmission(0x60);
  Wire.write(frequencyH);
  Wire.write(frequencyL);
  Wire.write(0xB8);
  Wire.write(0x10);
  Wire.write((byte)0x00);
  Wire.endTransmission();
}


Прикачени файлове:
Arduino as ISP.jpg
Arduino as ISP.jpg [ 569.52 KiB | Прегледано 279 пъти ]
BNR_328P.jpg
BNR_328P.jpg [ 315.07 KiB | Прегледано 279 пъти ]
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 23 Авг 2024, 12:51 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Мисли по картинка: свързан за програмиране по горната първа снимка, с (почти) същия програмен код към радио-чипа (с някой ред в повече), чрез MicroCore в Arduino IDE, чипчето вместо 28 изводния ATmega328/168 и външен кварц можеше да е 8 изводния ATtiny13A без външен кварц.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 30 Авг 2024, 12:13 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Да, ама куриерът ми иска 7 лв за доставката на това малко чипче, а тези тухли 328Р и без това не ми трябват :D


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 30 Авг 2024, 12:22 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Това е почти на финала, спестих си фабричната платка на Arduino Uno и сложих някаква DIY, за която дори не си спомням защо съм я правил.
Радиото работи перфектно в София на 103 MHz, с антена около половин метър. Проблемът, е, че започва да работи добре след около 20 - 30 секунди, а преди това има някакви преходни процеси - пращи, чуват се разни станции и след това всичко се стабилизира.
Направил съм клипче, ако някой иска чуе и да помисли върху проблема: https://youtube.com/shorts/Ad660yHNsyc

Захранването в момента е импулсно, 12 V.


Прикачени файлове:
ATMEGA 328P_RD_5807.JPG
ATMEGA 328P_RD_5807.JPG [ 78.54 KiB | Прегледано 255 пъти ]
Радиоточка.jpg
Радиоточка.jpg [ 182.1 KiB | Прегледано 255 пъти ]
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 31 Авг 2024, 12:37 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Странна работа. Тест с прогр. код от 4 съобщения по-горе: няма забавяне при включване. С Arduino UNO стартираше ли нормално?


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 02 Сеп 2024, 07:35 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Не помня, беше на слушалки, но след като ми обърна внимание, пак го включих към Arduino Uno и всичко беше нормално.

Преди това един приятел предложи да ми даде излишна за него платка за забавено включване на НЧУ (100 W), което щеше да върши работа, аз пък реших да напиша 2-3 реда в кода и през свободен пин на 328Р да управлявам усилвателя през MUTE или SWCH (напр. включване след 20 секунди) - все гениални решения, като напр. да вкарам в кода моно, а не стерео приемане.

След дълго чудене се реши да се сложи един електролитен кондензатор на RESET към маса и радиото заработи нормално. RC веригата 4.7к и 1 мкф оправи нещата.

Качеството на приемане е много добро, но като че ли се променя през различните часове на деня. Вечер е идеално - направо лампов звук :D


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 02 Сеп 2024, 14:52 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
DVS написа:
... да се сложи един електролитен кондензатор на RESET към маса и радиото заработи нормално. RC веригата 4.7к и 1 мкф оправи нещата ...

Да, преди време за RDA5807 в емулация на TEA5767 беше необходимо да забавя старта.

Програмно забавяне в случая:
Цитат:
Трябва по-голямо strart-up time. Увеличих времето при power-on преди първоначалното зареждане на регистрите ...
delay_ms(600); -> delay_ms(1000);

kn34pc.com/forums/RDA5807M - общи въпроси


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 03 Сеп 2024, 12:15 
Offline

Регистриран на: 11 Юни 2024, 15:10
Мнения: 40
Да, ама кой да чете :D

И понеже беше споменал АTtiny13a, ето какво начертах и бих го пробвал някога, но само заради кода от АI - написа код на три страници, та се наложи да го принудя да го събере в 20 реда.
Код за потвърждение:
#include <avr/io.h>
#include <util/delay.h>
#define RDA5807_ADDR 0x10
#define FREQ_REGISTER 0x03
void i2c_start() {
  PORTB &= ~0x08;
  PORTB &= ~0x10;
}
void i2c_stop() {
  PORTB |= 0x10;
  PORTB |= 0x08;
}
void i2c_write(uint8_t data) {
  for (uint8_t i = 0; i < 8; i++) {
    PORTB = (data & 0x80) ? (PORTB | 0x08) : (PORTB & ~0x08);
    PORTB |= 0x10; PORTB &= ~0x10; data <<= 1;
  }
}
void rda5807_init() {
  i2c_start(); i2c_write(RDA5807_ADDR << 1);
  i2c_write(0x00); // Reset
  i2c_write(0x81); // Enable, mono
  i2c_write(FREQ_REGISTER); i2c_write(0x3C); // 103.00 MHz
  i2c_stop();
}
int main(void) {
  DDRB |= 0x18; // Set SDA, SCL as output
  PORTB |= 0x18;
  rda5807_init();
  while (1);
}


Прикачени файлове:
ATtiny13A_prog.jpg
ATtiny13A_prog.jpg [ 80.65 KiB | Прегледано 225 пъти ]
ATtiny13a.jpg
ATtiny13a.jpg [ 120.21 KiB | Прегледано 225 пъти ]
Върнете се в началото
 Профил  
 
МнениеПубликувано на: 05 Сеп 2024, 16:29 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 1535
Местоположение: Силистра
Код за потвърждение:
void i2c_stop() {
  PORTB |= 0x10;
  PORTB |= 0x08;
}

... и други. Съмнявай се в работоспособността.

А трябва да е:


Прикачени файлове:
i2c_start_stop.png
i2c_start_stop.png [ 24.13 KiB | Прегледано 197 пъти ]
Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 46 мнения ]  Отиди на страница Предишна  1, 2, 3, 4  Следваща

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com