30.05.2015, 11:53 | #91 |
Новый Пользователь
Регистрация: 07.04.2014
Возраст: 38
Город: Бузулук
Регион: 56
Машина: Opel Astra J
Сообщений: 11
|
Доброго времени суток! А кто нибудь пробовал подключать к Radxa fm модуль на si4731 через I2C?
|
30.05.2015, 12:02 | #92 |
Новый Пользователь
Регистрация: 07.04.2014
Возраст: 38
Город: Бузулук
Регион: 56
Машина: Opel Astra J
Сообщений: 11
|
Почему нельзя сразу не подключить к I2C к плате, не используя ардуино?
|
05.10.2015, 13:46 | #93 |
Старший Пользователь
Регистрация: 01.08.2014
Возраст: 46
Регион: Украина
Сообщений: 274
|
Мп1905 в наших краях купить не удалось
Купил теа5767. Подключил по мануалу к про микро (леонардо), залил тестовый скетч (взят с сайта ардуины в разделе данного модуля, настроен на одну частоту)... тишина... ни щелков ни треска ни шипения. Сижу и туплю, или что то не дописано в мануале или теа5767 не рабочая. На форуме ардуино посоветовали залить скетч i2c сканера и посмотреть видется модуль подключеный к ардуине. Залил, потестил, да видется, адрес устройства показывает. Что и как делать дальше не понимаю, где искать косяк... |
13.10.2017, 17:02 | #94 |
Новый Пользователь
Регистрация: 27.06.2017
Город: Тула
Регион: 71
Машина: Toyota Harrier
Сообщений: 1
|
Есть сейчас аналоговое радио SONY (TYX-??). Все вроде отлично работает - но нет РДС... По сравнению с ней si4703 будет сильно отличаться? Приемники массовые - сравнивал кто? Интересует вариант не в городе, а при удалении - при слабом сигнале.
|
31.10.2017, 02:26 | #95 |
Старший Пользователь
Регистрация: 28.02.2013
Возраст: 45
Город: Железнодорожный
Регион: 50, 90, 150
Машина: Polo Sedan
Сообщений: 174
|
А какие проблемы с RDS ? До боли все примитивно, чип у меня si4709, я не использую библиотек так как они урезаные и немного не правильные, проще мануал глянуть по чипу и RDS, все встанет на свои места.
https://www.silabs.com/documents/pub...otes/AN243.pdf Читаю 8 значное поле группа 0A и 64 значное поле группа 2A. Вот старое видео https://yadi.sk/i/OdWArynw3PFJvE, сейчас все глаже.
__________________
POLO SEDAN Nexus7 2012 переход на 2013lte[/B] |
12.11.2017, 18:45 | #96 |
Старший Пользователь
Регистрация: 28.02.2013
Возраст: 45
Город: Железнодорожный
Регион: 50, 90, 150
Машина: Polo Sedan
Сообщений: 174
|
Ну что после прочтения менуала разбрались с RDS ?
Если нет, могу скинуть функцию по чтению RDS. Только придется немного доработать под себя. Я регисты читаю по 8 бит, а не перевожу их в 16 как в библиотеке. На ардуино и на stm все читает на ура. Кстати можно еще время читать и статус привязки станции. Прокатит на всех чипах пхожих
__________________
POLO SEDAN Nexus7 2012 переход на 2013lte[/B] |
12.11.2017, 19:11 | #97 |
Старший Пользователь
Регистрация: 28.02.2013
Возраст: 45
Город: Железнодорожный
Регион: 50, 90, 150
Машина: Polo Sedan
Сообщений: 174
|
так как чтение регистров из чипа начинается с 0x0A и далее инкримент, читаю по 8 бит без сдвига для создания 16 битных регистров, читать все смысла нет, нужны только с 0x0A по 0x0F, то есть 6 по 16 бит или 12 по 8 бит.
бит RDSR не использую, так как читаю по прерыванию. uint8_t Si4709_read[12]; #define RDSR Si4709_read[0x00] & 0x80 // 0x0A #define RDS_0A Si4709_read[0x06] >> 3 == 0 // 0x0D #define RDS_2A Si4709_read[0x06] >> 3 == 4 // 0x0D #define RDS_0A_ID Si4709_read[0x07] & 0x03 // 0x0D #define RDS_2A_ID Si4709_read[0x07] & 0x0F // 0x0D #define RDS_C_h Si4709_read[0x08] // 0x0E #define RDS_C_l Si4709_read[0x09] // 0x0E #define RDS_D_h Si4709_read[0x0A] // 0x0F #define RDS_D_l Si4709_read[0x0B] // 0x0F uint8_t Si4709_write[8] = {0x40, 0x01, 0x00, 0x00, 0x98, 0x04, 0x00, 0x1D}; // начальная конфигурация uint8_t rdsBuffer[9]; uint8_t rdsBuffer2[65]; uint8_t completed, flag, flag2, razmer; uint16_t completed2; void RDS(void) { rdsBuffer[0] = 0x01; rdsBuffer2[0] = 0x02; READ_4709(); if (RDS_0A) { if (rdsBuffer[(RDS_0A_ID) * 2 + 1] != RDS_D_h || rdsBuffer[(RDS_0A_ID) * 2 + 2] != RDS_D_l) { rdsBuffer[(RDS_0A_ID) * 2 + 1] = RDS_D_h; rdsBuffer[(RDS_0A_ID) * 2 + 2] = RDS_D_l; completed = 0; flag = 1; } completed |= 1 << (RDS_0A_ID); if (completed == 0x0F && flag) { CDC_Transmit_FS(rdsBuffer, 9); flag = 0; } } if (RDS_2A) { if (rdsBuffer2[(RDS_2A_ID) * 4 + 1] != RDS_C_h || rdsBuffer2[(RDS_2A_ID) * 4 + 2] != RDS_C_l || rdsBuffer2[(RDS_2A_ID) * 4 + 3] != RDS_D_h || rdsBuffer2[(RDS_2A_ID) * 4 + 4] != RDS_D_l) { rdsBuffer2[(RDS_2A_ID) * 4 + 1] = RDS_C_h; rdsBuffer2[(RDS_2A_ID) * 4 + 2] = RDS_C_l; rdsBuffer2[(RDS_2A_ID) * 4 + 3] = RDS_D_h; rdsBuffer2[(RDS_2A_ID) * 4 + 4] = RDS_D_l; completed2 = 0; flag2 = 1; } completed2 |= 1 << (RDS_2A_ID); if (completed2 == 0xFFFF && flag2) { for (int i = 64; i > 0; i--) { // сокращаем размер пакета, убирая прбелы с конца if (rdsBuffer2[i] != 0x20) { razmer = i + 1; break; } } CDC_Transmit_FS(rdsBuffer2, razmer); flag2 = 0; } } HAL_Delay(40); } Все написаное только для чтения RDS.
__________________
POLO SEDAN Nexus7 2012 переход на 2013lte[/B] |
12.11.2017, 19:24 | #98 |
Старший Пользователь
Регистрация: 28.02.2013
Возраст: 45
Город: Железнодорожный
Регион: 50, 90, 150
Машина: Polo Sedan
Сообщений: 174
|
как то так
__________________
POLO SEDAN Nexus7 2012 переход на 2013lte[/B] |
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4) | |
|
|