РРМ кодер, эконом вариант?

PARSEK

С интересом слежу за темой.
Таймера на экране не хватает.
КМК, неплохо бы рисочки триммеров пожирнее, или стрелочки там изобразить, чтобы читалось лучше.

михалыч2

можно узнать, будет ли выложена в общественность прошивка? а то собрать хочется, а программировать пока сам не умею 😦

avisenja

Всем привет!
Прошивку можно выложить, только проект ещё сырой, возможны корректировки схемы и прошивки, по мере развития.

Если не лень, и есть лишние деньги и время - делать макет для пробы и отладки, то подготовлю, а если уже готовую конструкцию хочется - то ждите.

ВитГо

Лучше просто выкладывайте по мере изменений - иногда и советы умные давать будут - ну и опять таки для целей топика (пример проектирования) это более подходит

avisenja

теперь с таймером😒, но надо ожевлять:(

PARSEK

Уже красивей с таймером!
А что это за значок справа под надписью 0,3w? (0,3w - это излучаемая мощность радиопередатчика?)

михалыч2

можно ещё узнать, схемне решение не будет изменяться? а тоя сейчас буду травить плату под кодер, а схеам может измениться 😉

ВитГо

Кстати поддерживаю!

Было бы неплохо сейчас определить что может поменяться а что нет…

Тогда в повторяемых конструкциях можно будет закладываться на возможные изменения…
Хотя нужно сказать что плата вроде не сложная… если что можно и новую сделать…
или собрать все на макетке…

avisenja

Всем привет!
Схемка может быть, что подкарректируется, лучше не суетиться или сделайте пробный на макетке, сейчас мне надо время, надо прогу чуть упорядочить, да и отдохнуть малость надо.
0.3 w - да это мощность, значёк под уровнем мощи - блокировка двигуна или глушилка

avisenja

Всем привет!
Кому совсем не в терпёж, то вот *на побаловаться*, много чего крутиться и вертиться, но не окончательная версия.
Прошивка уже со всеми битами конфигурации, загружаем в прогр и прошиваем, без всяких заморочек.

sslobodyan
avisenja:

вот *на побаловаться*, много чего крутиться и вертиться, но не окончательная версия

Посмотрел я на код. Вам здесь уже рекомендовали сначала ядро разработать, а Вы и не вняли совету. Занимаетесь второстепенными вещами - батарейкой, таймером, мощностью. А математики нужной то и нет. Нет свободных микшеров, ЕРА, экспонент. Даже калибровки (нормализации АЦП) я не увидел. Идете четко по моим граблям. И получается пока не бюджетнее, а намного хуже чем у Фокуса в плане функционала.
А почему Вы не работаете на 3.3 вольтовом питании? И не надо городить согласование с дисплеем.
Извините, если показался резковатым. Просто я почти год шел к четкому пониманию как оно должно работать, поэтому перебрал много вариантов, пока наконец не написал за два дня ядро. Правда, я сразу выбрал 18 серию за их приоритетные прерывания (а высокоприоритетном висит обработка формирования ППМ с помощью компаре-модуля, а на низкоприоритетном - опрос АЦП, кнопок и математика). А в суперцикле я оставил только интерфейс с пользователем как наименее приоритетную задачу.
Удачи Вам!

enb65

Немного не в тему, Сергей можно Вас попросить по подробней расказать о том как формировать PPM с помощью компаре модуля (основную идею и шаги алгоритма, это я для себя прошу). Можно в личку чтоб не засорять ветку.

avisenja

Всем привет!
Если дисплею положенно питаться по даташиту 2,7-3,3в, то и нечего его насиловать, понятие * ведь работает и от 5в * как базис --> сомнительно! Хорошо, питаем схему от 3,3в, тогда как согласовывать с внешними модулями (синтезатор и т.д. , или малоли чего ещё ?) - шило на мыло?
Вы * sslobodyan * целый год , выводили ПО, а я пока потратил 3 недели - урывками и просто физически всё сразу осмыслить невозможно, кстати, ещё добавлено часть кода, просто не до выкладывания сдесь, да и надо ли?
А кое чего Вы просто не увидали, или незахотели, и сразу критик-горлопанство! не солидно, лодно, на палемику просто нет времени, да и желания.

Давайте свой исходник, тоже покритикуем, - ШУТКА! (лично мне не интерестно)

ВитГо

Ребята, не ругайтесь !!!

Грабли они везде 😃
В чем то вы оба правы !
В какой то мере и общую структуру программы нужно продумать (чтобы потом как дерево листьями каждую ветку одевать), но зачастую до общей структуры нужно и листики представить…
Так что здесь просто копятся еще идеи и способы их реализации… одновременно отрабатывается схема…
На счет питания дисплея кстати мне больше нравиться идея с 3,3в согласованием - ведь действительно в основном все что кроме дисплея скорее всего будет иметь питание 5 в…

А вот исходники (прокомментированные) очень даже интересны !! и это без шуток !

Кстати, есть хорошее правило: критикуя предлагай !!

Возможно если следовать ему - то критика будет уже не критикой а предложением на изменение схемы или программы с обоснованием - вот это очень продуктивно !
Соответственно если будет предложена схема на 3.3 в - то тогда и можно будет говорить о подводных камнях и скалах

sslobodyan
enb65:

Немного не в тему, Сергей можно Вас попросить по подробней расказать о том как формировать PPM с помощью компаре модуля (основную идею и шаги алгоритма, это я для себя прошу). Можно в личку чтоб не засорять ветку.

Наиболее для меня приемлемым (быстрым и точным) показался такой вариант. Запускаем таймер1 с таким предделителем, чтобы он не переполнился за 20мс. Заполняем массив “перепадов” временем изменения сигнала. Обнуляем таймер1 и ССР1 пишем время первого “перепада” который формирует межканальную паузу первого канала. В ССР модуль настроен на сравнение ССР1 и таймера и по равенству переключает (либо вверх, либо вниз - зависит от ППМ или ИППМ) выход ССР с вызовом прерывания ССР. В прерывании выбираем следующее время “перепада”,грузим его в ССР1 и настраиваем модуль на переключение в другую сторону.

Вот кусок моего кода (как раз прерывание по формированию ППМ).

#int_CCP1 HIGH
void CCP1_isr(void)
{
if (edge_idx == 0) { // на первом канале обнулим таймер
set_timer1(0);
}
CCP_1 = edge[edge_idx];
if (edge_idx & 0x01) { // открывающий канальный перепад
setup_ccp1(CCP_COMPARE_CLR_ON_MATCH);
}
else { // закрывающий канальный перепад
setup_ccp1(CCP_COMPARE_SET_ON_MATCH);
};
if (++edge_idx == (num_ch+1)*2) {// пошла межкадровая пауза
edge_idx=0;
}
}

Здесь в edge[] записаны времена переключения порта ППМ (формируются отдельно в блоке математики), edge_idx-индекс этого массива, num_ch-количество формируемых каналов в пакете.

avisenja:

Всем привет!
Если дисплею положенно питаться по даташиту 2,7-3,3в, то и нечего его насиловать, понятие * ведь работает и от 5в * как базис --> сомнительно!

Я не предлагал питать дисплей 5 вольтами.

avisenja:

Вы * sslobodyan * целый год , выводили ПО, а я пока потратил 3 недели - урывками и просто физически всё сразу осмыслить невозможно, кстати, ещё добавлено часть кода, просто не до выкладывания сдесь, да и надо ли?

Я очень сильно сомневаюсь, что в Вашей программе кто-то еще сможет разобраться кроме Вас. Так что особого смысла в ее выкладывании я тоже УЖЕ не вижу.

avisenja:

А кое чего Вы просто не увидали, или незахотели, и сразу критик-горлопанство! не солидно, лодно, на палемику просто нет времени, да и желания.

Давайте свой исходник, тоже покритикуем, - ШУТКА! (лично мне не интерестно)

Молодой человек, Вы напоминаете мне меня самого лет так с 15 назад. Тоже за все хватался с неимоверным энтузиазмом. Это только потом приходит понимание, что не все так просто, как кажется на первый взгляд. Вот поэтому я и советовал Вам (именно советовал, а не критиковал и не горлопанил - не люблю людей, а особенно мне не знакомых, обижать) подумать, осмыслить и вникнуть в постановку задачи. Что Вы хотите сделать? Простой 4-канальник без наворотов типа еская? Или с нормальной математикой и возможностью настройки как у Фокуса и у брендов? Если Ваша задача - максимум, то решите, что будет самым в ней самым важным, а что пока можно отложить. Пока я увидел у Вас только простенький ви-хвост, да и то без возможности изменить степень влияния каждого микшируемого канала. Если я чего-то не заметил - не стесняйтесь, укажите мне и я заберу свои слова обратно. Для меня самым важным было как раз понять математику, как там все микшируется, как наложить кривую (экспоненту), где добавлять триммера и как ограничивать через ЕРА. А формировать ППМ на основе данных с АЦП - так таких кодеров куча в нете есть.
Давать свой исходник я Вам и не собираюсь. Там все на С, без асма.
Еще раз прошу прощения, что мог показаться резковатым - совсем не хотел никого обижать. В дальнейшем в полемику с Вами вступать не буду. Хочу чтобы все у Вас получилось и Вы могли с гордостью показать свой кодер, который не уступит Фокусу, а может и превзойдет его по функционалу.
Удачи!

enb65

Сергей спасибо, невнимательно читал документацию, почему то считал что в режиме сравнения не возникает прерывание 😦. Буду читать внимательнее 😃.

sslobodyan
enb65:

Сергей спасибо, невнимательно читал документацию, почему то считал что в режиме сравнения не возникает прерывание 😦. Буду читать внимательнее 😃.

Рад, что помог. Можете еще сюда заглянуть www.microchip.ru/lit/?mid=1x0
Если что, то давайте в личку.

михалыч2

но вот схему лучше адаптировать под 3.3 вольта, поскольку как раз таки почти все нормальные синтезаторы работают максимум от 3.3вольт! да и вообще я часто наблюдаю микросхемы которые работают в диаппазоне 2.5-5вольт. просто ну очень не хочется ставить столько сабилитронов 😉

avisenja

Всем привет!

Можно и 3,3в только в конфиге надо убрать сброс проца по снижению напряжения питания, и диоды прийдётся поставить с барьером шотки (малогабаритные!), т.к. порог переключения по напряжению из *1* в *0*, по входу у пика составляет 1в при питании 5в, а падение напряжения на кремниевом диоде в среднем 0,6-0,7в, вот и кумекайте.

Есть ещё одно общее правило, чем выше амплитуда сигналов управления, тем выше устойчивость к помехам.

Что дороже, модель или кучка стабилитронов?

Ладно…, у меня уже таймер тикает, правда за четыре минуты - секунда набегает, по мне этой точности ЗА ГЛАЗА.