Перейти к содержанию

serg123

Members
  • Постов

    792
  • Зарегистрирован

  • Посещение

Весь контент serg123

  1. Не факт, посмотрите в инете передается ли rds на ваших станциях в вашем городе.
  2. Ясно, ну собственно определение ошибок тут только в двух блоках, а для еще двух надо корректор ошибок делать, но там для меня покрайней мере пока муть, или регистр 10h попробовать использовать но сильно лучше не станет. C SI4703 в этом плане попроще, там ошибки во всех блоках определяются. В общем нужен декодер ошибок.
  3. Есть такое, как уже говорил для приема дальних станций пришлось загонять мк в сон, причем как позже выяснилось помехой был именно i2c, экранирование не помогало, вот и жду теперь фильтры может поможет и от этого.
  4. Регистр 5L ,биты 5 и 4, в английском описании указано как неиспользуются. 0 - 1,8 мА, 1 - 2,1 мА, 2 - 2,5 мА, 3 - 3 мА. Несовсем так, как уже писал выше данные фильтры ставят чтобы широкополосные усилителе которые идут после антены, не усиливали все подряд, зашумляя этим нужный сигнал.
  5. Vlad, такой вапрос какой ток потребления установлен на RDA, всетаки данный фильтр ставят чтоб усилитель внутри приемнека широкополосный не усиливал все подряд заглушая при этом нужный сигнал.
  6. Да есть такое, в общем все началось с экспериментов установки различных токов потребления усилителем rda5807. Самым хорошим оказался режим с током 2.5 мА, удалось поймать мощные станции из города расположенного за 70 км от меня. Но пришлось загнать мк в сон при этом, вот и родилась эта идейка с фильтром.
  7. Может не стоит заморачиваться со светодиодом, показывал он стерео и ладно, к стати на счет улучшения качества приема. В RDA5807 есть встроенный антенный усилитель , так вот что то подсказывает что он широкополосный и ни кто не ставит входной полосовой фильтр на вход типа GFWB3 76-108 МГц. В общем заказал себе данные фильтры буду пробовать.
  8. Ясно буду разбираться.
  9. Перед началом рабы DMA устанавливается бит SPI1INTFbits.SPI1TXUIF = 1; в общем заказал логический анализатор надо посмотреть что там вообще происходит.
  10. Начал тестить по такой инициализации DMA void DMA1_Initialize(void) { /* stop and clear DMA 1 */ // DMA1CON0 = 0; /* configure DMA 1 */ /* 1. Program the appropriate Source and Destination addresses for the * transaction into the DMAxSSA and DMAxDSA registers */ DMA1SSA = (uint24_t) & SrcVarName0[0]; /* source address */ DMA1DSA = (uint24_t) & SPI1TXB; /* destination address */ /* 2. Select the source memory region that is being addressed by DMAxSSA * register, using the SMR<1:0> bits. */ DMA1CON1bits.SMR = 0b00; /* source pointer points to GPR space */ /* 3. Program the SMODE and DMODE bits to select the addressing mode. */ DMA1CON1bits.SMODE = 0b01; /* source is incremented after each transfer completion */ DMA1CON1bits.DMODE = 0b00; /* destination remains unchanged after each transfer completion */ /* 4. Program the Source size DMAxSSZ and Destination size DMAxDSZ * registers with the number of bytes to be transferred. It is recommended * for proper operation that the size registers be a multiple of each other. */ DMA1SSZ = 9; /* source transfer size is size of array */ DMA1DSZ = 1; /* destination size 1 */ /* 5. If the user desires to disable data transfers once the message has * completed, then the SSTP and DSTP bits in DMAxCON0 register need to be set */ DMA1CON1bits.SSTP = 1; /* SIRQEN bit is cleared when source counter reloads */ DMA1CON1bits.DSTP = 0; /* SIRQEN bit is not cleared when Destination Counter reloads */ /* 6. If using hardware triggers for data transfer, setup the hardware * trigger interrupt sources for the starting and aborting DMA transfers * (DMAxSIRQ and DMAxAIRQ), and set the corresponding interrupt request * enable bits (SIRQEN and AIRQEN). */ DMA1SIRQ = 21; /* HW trigger is SPI1TX */ DMA1AIRQ = 0; /* none */ /* enable hardware source trigger */ DMA1CON0bits.DMA1SIRQEN = 0; //PIE2bits.DMA1SCNTIE = 1; // Enable Source Count 0 Interrupt //PIE2bits.DMA1SCNTIE = 0; //DMA1_SetSCNTIInterruptHandler(DMA1_DefaultInterruptHandler); // PIR2bits.DMA1SCNTIF = 0; // Clear Source Count Interrupt Flag bit PIE2bits.DMA1SCNTIE = 0; // Disable Source Count Interrupt PIR2bits.DMA1AIF = 0; // Clear abort Interrupt Flag bit PIR2bits.DMA1ORIF = 0; // Clear overrun Interrupt Flag bit // // Can use DMAxDCNTIF to signal when DMA x transfer is complete PIR2bits.DMA1DCNTIF = 0; // Clear Destination Count Interrupt Flag bit PIE2bits.DMA1DCNTIE = 0; // Disable Destination Count 0 Interrupt // PIE2bits.DMA1AIE = 0; // Disable abort Interrupt PIE2bits.DMA1ORIE = 0; // Disable overrun Interrupt // /* 7. Select the priority level for the DMA * (see Section 3.1 ?System Arbitration?) and lock the priorities * (see Section 3.1.1 ?Priority Lock?) * 0 being the highest priority and 4 being the lowest priority. */ m_ARBITER_UNLOCK(); /* unlock Arbiter settings */ MAINPR = 3; ISRPR = 2; DMA1PR = 0; DMA2PR = 1; SCANPR = 4; m_ARBITER_LOCK(); /* lock Arbiter settings */ /* 8. Enable the DMA (DMAxCON0bits. EN = 1) */ DMA1CON0bits.EN = 1; /* 9. If using software control for data transfer, set the DGO bit, * else this bit will be set by the hardware trigger. */ DMA1CON0bits.DGO = 1; /* * DMA Transfer is started with * MA1CON0bits.DMA1SIRQEN = 1; */ } Старт передачи пакета void SendPktToSlave(void) // Enable DMA1 to send a full data packet according to DMA1SSZ size { PIE2bits.DMA1SCNTIE = 1; // Enable Source Count 0 Interrupt DMA1CON0bits.SIRQEN = 1; // Start of Transfer Interrupt Request Enable DMA_Busy = 1; // признак занятости шины } И прерывание по завершению передачи пакета void __interrupt (irq(IRQ_DMA1SCNT)) DMA1Complete(void) //Enabled 10-Jul-2019 { // ------- DMA 1 DCount = 0 Interrupt (DMA - SPI1 Transfer is complete) ------------------------ DMA_Busy = 0; PIR2bits.DMA1SCNTIF = 0; // Clear Destination Count Interrupt Flag bit PIE2bits.DMA1SCNTIE = 0; // Disable Destination Count 0 Interrupt } Так вот при этом не срабатывает прерывание.
  11. serg123

    ILI9341 DMA SPI PIC18F47k42

    Привет народ, собираю проект с использованием дисплея ILI9341 и PIC18F47k42. Сейчас все работает просто через SPI. Так вот вопрос, никто не использовал похожую связку с использованием DMA? И еще скорее всего у меня проблема в этом можно ли передавать команды просто по SPI, а данных по DMA не отключая модуль DMA.
  12. Где то на просторах инета, уже точно не помню где. Один человек считывал все возможные регистры для чтения из RDA5807, там правда говорилось, что в 10h регистре хранится уровень ошибок, но анализируя поведение данного регистра, это не совсем так, больше похоже на индикатор rssi но для RDS сигнала.
  13. В новых ревизиях вроде должны добавить определение ошибок в блоках данных, но пока новые описания никто не виде
  14. ОК вот https://pichobby.lg.ua/shemu/sound.html Ну это от местности зависит если у меня RDS начинает принематся на уровне RSSI больше 45, то у baza3812, он мне сильно помог с настройкой алгоритма, больше 70. И при чтениееи данных стоит посамтривать на регистр 10h, он не указан в описании но вполне себе считывается. И в его битах с 11 по 8 заложена информация о качестве RDS не об ошибках, а качестве. Так вот если там о то считывание RDS вразы улучшается.
  15. Не поверите у меня RDS в pic16f88 влез со всем функционалом RDA5807, да и насчет требовательности сигнала, оказываете есть ключик немного упрощающий данный процесс.
  16. Особо прав по удолению кроме личных сообщений мало у кого есть, либо это косяк с тормознутостью интернета. В общем на работе учителя выстовляют оценки в журнал они вроде есть,, а строницу обновляешь глядь их уже нету.
  17. Как то ну очень давно собирался такой стробоскоп с возможностью управлением от музыки, все прекрасно работало.
  18. Датчик холла можно попроще какой-нибудь цифровой типа A3144 , если используются клапана, то там электромагнит, данный датчик в теории при срабатывании клапана тоже должен будет сработать.
  19. У вас есть шунт, не хотите использовать его сделайте токовые трансформаторы тока примеров в инете по его расчетам полно https://rustaste.ru/raschet-transformatora-toka.html, ну а дальше можно и сам ток посмотреть, а используя компаратор отследить включение. Изначально я предлагал оптопару, подключите ее на стороне нагрузке на стороне вторичного питания где ни будь, оптопара включилась устройство работает.
×
×
  • Создать...