Roadman, мыло посмотри.
Roadman, мыло посмотри.
Элементарно и топорно добавил "инициализацию" - копия того, что делает с трансивером Powersdr при включении, что конкретно - не знаю, но проблему с передачей при включении решает, а это было главное.
Остались вопросы с USB и индикацией...
US9IGY, посмотрел код. Всё понятно.
Прошил, но АЦП у меня по-прежнему не пашет. Платка из Китая ещё в пути.
По поводу USB. Вы не ответили ранее на мой уточняющий вопрос. Если выключить комп, а SDR не выключить, то при последующем запуске компа переходник не работает (при этом комп находит переходник и отражает его в диспетчере устройств). Так???
RA3PKJ, так, я это и имел в виду. И вот еще одно нашел неприятное свойство пробуя работать в jt65 - при переходе с передачи на прием иногда сбивается частота, не выбирается нужный фильтр и т.п. Нужно проверить.
У меня была такая проблема. Здесь аналогично, только со своими нюансами. Правда, у меня с CY7C68013 это почему-то не возникает. К тому же тут нюансы для меня пока не совсем прозрачны.
И всё-таки попробую описать.
Проблема вот в чём. Рассмотрим ситуацию, когда всё нормально. В конце функции TD_Poll проверяется условие if( !(EP1INCS & bmEPBUSY) ). Если всё нормально, то готовятся данные на отправку в комп и выставляется EP1INBC = 4; После отправки возникает прерывание ISR_Ep1in, в котором выставляется EP1OUTBC = 14;
Если выключить комп, то отправок в комп нет, и соответственно нет входа в прерывание ISR_Ep1in, и соответственно не выставляется EP1OUTBC = 14;(данные из компа невозможно принимать), к тому же больше не выполняется условие if( !(EP1INCS & bmEPBUSY) ) в функции TD_Poll. Короче разрывается круговорот, который не восстанавливается после включения компа. Как-то так.
Я решил проблему при помощи таймера, который при нормальной работе постоянно досрочно сбрасывается и не оказывает никакого влияния на работу программы. А при выключении компа таймер каждую 1 секунду пытается восстановить разорванный круг. В моём переходнике в файле main.c каждую секунду восстанавливается флаг PrevXferComplete = 1. А в CY7C68013 судя по-всему (как мне кажется) надо каждую секунду выполнятьПосмотрите main.c в моём переходнике.Код:EP1INBC = 4; EZUSB_IRQ_CLEAR(); EPIRQ = bmBIT2;
Добавлено через 17 минут(ы):
Да, таймер досрочно сбрасывать (точнее записывать в него начальное значение) надо при проверке условия if( !(EP1INCS & bmEPBUSY) ) в функции TD_Poll. Если условие выполняется, то сбросить досрочно таймер.
PS для сброса я записывал в таймер 1мс.
Последний раз редактировалось RA3PKJ; 10.08.2015 в 23:39.
US9IGY, разобрался с АЦП.
Сегодня пришла платка из Китая. Оказалось, что она попала сначала в Литву, а затем ко мне. То-то я долго ждал.
Прошил платку прошивкой логического анализатора, а старую китайскую платку прошил последней вашей прошивкой переходника. Сигналы АЦП оказались в норме. В недоумении полез тестером в платку переходника и оказалось, что китайцы не пропаяли CY7C68013 как следует. Непропай как раз на ножке, которая идёт к выходу АЦП.
Ну сейчас всё работает.
Александр RN3QMP обещал посмотреть почему не выводится значение КСВ, но видно пока ему не до этого.
Программа M0SDR работает только на 7 мГц, или я не вижу переключения диапазонов? Собрал платку UT3MK, ради любопытства.
А мне какую лучше использовать? PowerSDR со встроенной интегрированной звуковой картой и REALTEK 97 работать не хочет-ругается на 44кб. Я просто попробовать хочу,послушать-моё это или не моё!
Синтик- последний от RD3AY. Всё это дело и без программы работает,но хочется куда-то смотреть и что-то переключать!
Короче говоря, нужно сделать Повер в котором надо вывести на монитор значения поступающие от АЦП. В этом случае можно точно отладить, иначе в слепую будет долго и муторно. Я скомпилиурую Повер в котором сделаю окошко, с выводом значений, попутно ещё добавлю ручной ввод значений для просмотря что на что влияет, будем изучать-подгонять.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)