Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Так ведь синус, если не требуется перестройка частоты, можно сгенерировать вообще напрямую по таблице синуса, без всяких аккумуляторов. Причем, из-за симметричности функции синуса, хватит таблицы на 1/4 периода.
На выходе может быть либо полумост с верхним и нижним транзитсором и средней точкой, либо полный H-мост из четырех транзисторов, тут уж дело вкуса и потребностей.
Не знаю, про что вы так долго спорите, но как по мне, там тут проблема и выеденного яйца не стоит.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4397
Зарегистрирован: Пн окт 03, 2016 22:50:22

Сообщение Transformer-V »

[uquote="ARV",url="/forum/viewtopic.php?p=4797898#p4797898"]с какой целью в нем искать минимум и максимум?! Все параметры констант алгоритма известны заранее, еще до момента написания кода.[/uquote]
Это из серии "голубя-шахматиста"(С). Вот именно что известны, но так как наш подъездный юниор только осваивает программирование то, для него это шок, что предоставленные мною примеры значительно оптимизируют код и ускоряют его выполнение.

[uquote="ARV",url="/forum/viewtopic.php?p=4797929#p4797929"]Поскольку я тупой, я всегда всё делаю "правильно", и даже избыточно правильно, например, никогда не полагаюсь на приоритеты операций, но всегда расставляю приоритеты скобками. Поэтому, когда я вижу код поиска максимума, сопровождаемого заявлениями "в массиве нет нулей, поэтому можно перебирать, пока ноль не встретится", мой внутренний дебил бьётся в истерике: это же абсолютно не правильный алгоритм!
Только и всего.[/uquote]
"Перебор пока не встретиться ноль" без предварительной проверки безопасности входящих данных это дырявый код, любая отправка непроверенных данных в "мясорубку" высокоскоростного оптимизированного обработчика - алгоритма это дырка и гарантированный провал ПО в полной мере показывающий несостоятельность кодера и его решения. Так что вы тут правы.

Добавлено after 2 minutes 5 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798051#p4798051"]я просто сделал синусоиду на дсПИКе и применил для питание лампы.[/uquote]
Проще исполнить накал на двухтактном генераторе со средней точкой(трансформатор) подключенной к GND твоего поделия и не думать о синусе.
Последний раз редактировалось Transformer-V Вс мар 15, 2026 17:32:50, всего редактировалось 2 раза.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798052#p4798052"]Так ведь синус, если не требуется перестройка частоты, можно сгенерировать вообще напрямую по таблице синуса, без всяких аккумуляторов. Причем, из-за симметричности функции синуса, хватит таблицы на 1/4 периода.
На выходе может быть либо полумост с верхним и нижним транзитсором и средней точкой, либо полный H-мост из четырех транзисторов, тут уж дело вкуса и потребностей.
Не знаю, про что вы так долго спорите, но как по мне, там тут проблема и выеденного яйца не стоит.[/uquote]
Все не так. Да и не так просто.
1. Лампа - это люминисцентный индикатор. У него есть катод. Он прямого подогрева. То есть одновременно является накалом. Напряжение накала зависит от размеров индикатора, поскольку накал расположен над сегментами индикатора. Обычно это примерно 2,4...5,5 Вольт при токе порядка 50...70 мА. Напряжение анодов-сегментов традиционно 27 Вольт. Еще есть сетки. они коммутируют разряды индикатора, либо просто управляют включением, если знакоместо одно.
Проблема накала состоит в том, что если его запитать постоянным напряжением, то потенциал катода-накала относительно анода будет меняться по длине катода от заземленного его конца к плюсу питания. Поэтому его обычно питали еще при Советах от обмотки сетевого трансформатора со средней точкой. Брутально и просто. Это вдвое уменьшает падение по длине накала от середины к краям.
Нынче народ пошел ушлый и генерирует переменку накала с помощью генератора. Иногда отдельного, иногда его делают на МК. Синус там естественно нах не облокотился - более чем достаточно меандра. Но Игорёк желает именно синус. Просто потому что. Без объяснений. Принимаем его позицию.
2. Что требуется часам с питанием от USB и установкой с какого нибудь сервера точного времени. Ну там софт на компе и USB девайс в часах.
Игорек любит Микрочип и потому поставил для этой цели достаточно уникальный чип - dsPIC33 с USB с ценой 20 баксов в Чипе-Дипе.
Спрашиваю у Игорька - зачем? Ответ - мне нужен VLIW DSP контроллер чтобы генерировать накальный синус. :shock: :))) :music:
Приплыли.
Мало этого, синус генерируется с 512 отсчетами за период. Со слов Игорька, канешна. Частота синуса 400 Гц, в качестве ЦАПа - HiResPWM. Полный фарш... :)))
3. Народ (не я!) просит показать этот синус. Нам показывают какие то трапеции. :dont_know:
Я в ответ предлагаю Игорьку сделать накал автономным на PIC10F322 (SOT23-6, есличо), ФНЧ и сдвоенном ОУ в мостовом включении.
Игорек генерирует синус из четверти периода, где четверть периода это кусок синуса без нуля (он решил, что ноль не может быть отсчетом) и до 1023.
ФНЧ он считать не стал и поставил RC наобум. Естественно получилось фуфло. Фильтр оказался даже выше частоты ШИМ и едва завалил фронты самого ШИМа.
На самом деле эта схема просто этюд для эмбеддера. Конструкция выходного дня. Использует single-ended sinus PWM вместо четырех выходов встроенного в dsPIC33 HiResPWM.

По поводу NCO.
Вы не реализуете на STM32 NCO со скоростью 16 МГц, сохранив остальные функции чипа. Именно такая накачка может быть выбрана у PIC10F322.
Но работа с этим NCO сводится не к генерации самого синуса, а к генерации событий отсчетов синтезатора. Это позволяет разделить частоту ШИМ с частотой отсчетов и поднять частоту PWM до предела. Сие позволяет упростить требования к антиалиасинговому ФНЧ.
Вот такой несложный и занимательный этюд.
ЗЫ. Синус из четверти периода на маломощном МК - это отвратительная идея. она требует расчетов налету по разному для всех четырех квадрантов синуса.
Для используемых 32 отсчетах за период это даже для PIC10 является неумным решением. Досчитывать синус в прерывании на достаточно высокой скорости генерации отсчетов - отвратительно.
В МК с DMA это вообще бессмысленное занятие. Для DMA нужен линейный полный массив синуса. Прямо во флеше.
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798052#p4798052"]Так ведь синус, если не требуется перестройка частоты, можно сгенерировать вообще напрямую по таблице синуса, без всяких аккумуляторов. Причем, из-за симметричности функции синуса, хватит таблицы на 1/4 периода.
На выходе может быть либо полумост с верхним и нижним транзитсором и средней точкой, либо полный H-мост из четырех транзисторов, тут уж дело вкуса и потребностей.
Не знаю, про что вы так долго спорите, но как по мне, там тут проблема и выеденного яйца не стоит.[/uquote]
Так и было сделано - но есть особое мнение "гуру" - что неправильно :)
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

[uquote="Transformer-V",url="/forum/viewtopic.php?p=4798064#p4798064"]"Перебор пока не встретиться ноль" без предварительной проверки безопасности входящих данных это дырявый код, любая отправка непроверенных данных в "мясорубку" высокоскоростного оптимизированного обработчика - алгоритма это дырка и гарантированный провал ПО в полной мере показывающий несостоятельность кодера и его решения. е.[/uquote]
А если переменные типа int, то есть как положительные, так и отрицательные и 0 - это просто середина диапазона?

Добавлено after 3 minutes 33 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4798066#p4798066"]По поводу NCO.
Вы не реализуете на STM32 NCO со скоростью 16 МГц, сохранив остальные функции чипа. Именно такая накачка может быть выбрана у PIC10F322.[/uquote]
Ну почему же. Если взять скоростной STM, например на 533 МГц, то вполне всё можно, притом с большим запасом. Тем более, что остальные функции PIC10 настолько ограничены, что он не является конкурентом STM32 во всех отношениях.

А если учесть, что в PIC10 NCO представляет собой очень простой сумматор фазы, то для такого же результата достаточно будет и не слишком быстрого STM32.
Еще один минус PIC10 - небольшая память, как программ, так и ОЗУ. А значит, таблица синуса будет довольно небольшой, и это сокращает диапазон перестройки DDS
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Transformer-V",url="/forum/viewtopic.php?p=4798064#p4798064"]"Перебор пока не встретиться ноль" без предварительной проверки безопасности входящих данных это дырявый код, любая отправка непроверенных данных в "мясорубку" высокоскоростного оптимизированного обработчика - алгоритма это дырка и гарантированный провал ПО в полной мере показывающий несостоятельность кодера и его решения.[/uquote]
Очередная клоунада Трансформера, который никогда не имел дала с МК.
Разговор изначально шел о сортировке массива полученного из схемы захвата сигнала.
Трансформер решил надуть щеки и выступить с заявлением, традиционно и ожидаемо нелепо.
Ноль входит в диапазон чисел обрабатываемых в МК почти во всех алгоритмах. Исключение только для потока данных в ASCII.
Я даже не припомню ни одного случая передачи данных в ASCII в своей 20-летней практике эмбедда. Причина очень простая - избыточность. Причем незащищенная.
Но Трансформер ничего кроме обмена с CRT своего домашнего компа не видел. :dont_know:
Реклама
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

КрамП - тьфу ты, ТРАМк - тьфу ты, Василь Иваныч - ты ври - но не завирайся. Ты сказал что на накал надо ставить Р10, а для ЮСБ К50 - ну или МСР2200 - НЕ БЫЛО ТАКОГО????
Мой дсПИК стоит - ты сам говорил - 11 баксов. В яндекс директе :)
А теперь считаем стоимость народной меги - 350 рублей, стоимость РТС - той же 1307 - порядка 150 рублей, стоимость ЮСБ МСР2200 - 500 рублей. Плюс Р10 - порядка 200 рублей. Сколько будет???? Плюс сюда ещё свой операционник на выходе фильтра воткни за 120 рублей.
Ладно, давай по-другому - К50 - 500 рублей минимум - подождать месяц-другой надо пока привезет ЧИП-ДИП, плюс РТС, плюс ОУ - почти как дсПИК мой получается, не???
Ты холивар поднял - чтобы продвинуть свою глупую идею с NCO -которая ну никаким боком рядом здесь не нужна. КАК ты будешь использовать NCO??? По какому прерыванию я БУДУ ГРУЗИТЬ ШИМ???? Что будет делать NCO??? Внятно только, без рассуждений о погоде на Луне :)
Ты совесть имей гнать/плести пургу.
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4798066#p4798066"]Фильтр оказался даже выше частоты ШИМ и едва завалил фронты самого ШИМа.[/uquote]
Ну это кагбе да. Фильтр можно даже экспериментально подобрать. Хотя я не уверен, что для питания накала вообще нужен очень чистый синус. Если очень хочется, конечно оно и можно синус.
Последний раз редактировалось Rapra Вс мар 15, 2026 17:59:09, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798069#p4798069"]Если взять скоростной STM, например на 533 МГц, то вполне всё можно, притом с большим запасом. Тем более, что остальные функции PIC10 настолько ограничены, что он не является конкурентом STM32 во всех отношениях.[/uquote]
Вы это серьезно? :facepalm:
Взять 500 МГц чип для часов только для того, чтобы генерировать синус в накал? :))) :))) :))) Остальные функции часов подразумевают менеджмент питания от какой нибудь 2032 и USB скорее всего HID. Всё.
[uquote="Rapra",url="/forum/viewtopic.php?p=4798069#p4798069"]А если учесть, что в PIC10 NCO представляет собой очень простой сумматор фазы, то для такого же результата достаточно будет и не слишком быстрого STM32.[/uquote]
16 МГц - это 62,5 нс. С таким периодом нужно суммировать фазу. Естественно, в прерывании по таймеру с учетом латентности прерываний у АРМов.
Вы уверены в том, что говорите?

Добавлено after 2 minutes 39 seconds:
[uquote="Rapra",url="/forum/viewtopic.php?p=4798074#p4798074"]Фильтр можно даже экспериментально подобрать.[/uquote]
Нет, нельзя. Нужно сначала оценить его порядок. И если он будет слишком сложным, двигать частоту ШИМ, а может быть и отсчетов, выше.
То есть нужно сначала посчитать, а потом делать.
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Так вы же сами сказали про 16 МГц NCO. Зачем 16 МГц NCO на накале? По-моему, там достаточно фильтрованного меандра герц на 100-500, который даже 555-м таймером сделать без проблем.
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

То КРАМ: Я вот сейчас доделаю часы с матрицей из 256 светодиодов 2812 - только не ори что ты такое сделаешь на ПИК18:) - не сделать можно, мне интерфейс нужен человеческий - без кнопочек :) - управление со смартфона, в часах стоит PIC32MX 1-й серии+ BLE (силабс ERF32BG22 - этот работает в режиме NCP (сетевого сопроцессора - т. е. ВСЁ приложение крутится на ПИК32, а в ERF32BG22 поднят только стек блютузный). И матрица состоит из диодов размером 1.5*1.5 мм - уже распаяна.
Не об этом разговор.
Следующей конструкцией также будут часы:) - люблю время смотреть :) На индикаторе ИВ-18.
Так вот там также будет человеческий интерфейс - и блютуз и WiFi (web сервер).
Опять будешь орать про избыточность????
Типа в часах на 2812 он применил 2 32-х битных камня????? Так?

Добавлено after 2 minutes 37 seconds:
Если разговор про часы на ИВ-21 - поглядите размер индикатора. Вот именно под размер индикатора и была сделана плата. Вопросы, Крам?
здесь на сайте есть очень удачная конструкция на этом индикаторе - но там 2 платы этажеркой. У меня одна плата, и именно под размер индикатора - ну да я показывал.
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798073#p4798073"]КАК ты будешь использовать NCO??? По какому прерыванию я БУДУ ГРУЗИТЬ ШИМ???? Что будет делать NCO??? Внятно только, без рассуждений о погоде на Луне[/uquote]
В десятый раз одно и тоже.
1. NCO генерирует прерывания с частотой отсчетов синуса.
2. В прерывании от NCO грузится линейный массив синуса последовательно - каждое прерывание - один отсчет и инкремент указателя/индекса.
Намекну про NCO. Это 20 битный счетчик фазы и 16 битный регистр инкремента фазы. Каждый фронт накачки NCO происходит суммирование числа загруженного в регистр инкремента фазы с содержимым регистра фазы. Каждое переполнение регистра фазы при суммировании вызывает прерывание от NCO.
Формула расчета частоты генерации прерываний NCO очень простая:
Fint=Fnco*INCreg/2^20
То есть частота прерываний линейно зависит от содержимого регистра инкремента фазы.

Добавлено after 5 minutes 52 seconds:
[uquote="Rapra",url="/forum/viewtopic.php?p=4798078#p4798078"]Так вы же сами сказали про 16 МГц NCO. Зачем 16 МГц NCO на накале? По-моему, там достаточно фильтрованного меандра герц на 100-500, который даже 555-м таймером сделать без проблем.[/uquote]
Можно и 555 таймером. Но у него навес и он не бывает в SOT23-6.
Но еще раз повторю.
Игорёк желает практику в генерации синуса. Ему он нужен сам по себе.
Я предложил именно этюд. И этот этюд генерирует нормальный синус самыми простыми средствами самого простого МК.
А так я еще Игорьку предложил использовать меандр и коммутировать напряжение анода синхронно с меандром так, чтобы при коммутации разрядов индикатора вдоль накала происходила компенсация падения на накале.
Тоже этюд и уже для основного МК, естественно.
Но он и это не понял... :facepalm:

Добавлено after 3 minutes 21 second:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798079#p4798079"]Опять будешь орать про избыточность????[/uquote]
Игорёк. Делай что хочешь. Хоть на голове стой.
Глупости делать у нас в стране не запрещено Конституцией...
Я предложил тебе почувствовать цифровой синтез кончиками пальцев и понять как это работает. Но тебе не интересно. Ну значит я обратился не по адресу. :tea:
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Не знаю, зачем вы уже полтора десятка страниц спорите на тему синуса.

Если про PIC10F322 с модулем NCO, то... ну да, прикольная штука, наверно даже полезная. Однако, количество I/O-пинов у PIC10 удручает, всего 4 штуки. Ну и малый размер памяти не позволит получить большую таблицу формы сигнала, а значит и диапазон перестройки будет небольшим, так что все эти мегагерцы на деле получаются не такими уж и радостными.
Во-вторых, как я помню, младшие PIC-и имеют неприятную особенность, когда тактовая частота инструкций равна 1/4 частоты осциллятора. Фактически, из 16 МГц имеем всего то 4 МГц. В свое время для меня это было еще одной причиной отказа от PIC.

Вы как хотите, но лично я бы не выделял отдельный МК или генератор под генерацию напряжения накала. Лишний корпус - лишнее место на плате, лишние деньги.
И если генерировать НЕИЗМЕННЫЙ по частоте сигнал с микроконтроллера, то я бы не стал писать DDS-генератор или использовать аппаратный NCO. Зачем переводить буквы, если перестройка частоты не нужна? Смотрите на задачу проще.
Прелесть DDS - именно в перестройке частоты малыми шагами. А при неизменной частоте DDS только обуза.
Последний раз редактировалось Rapra Вс мар 15, 2026 18:40:35, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="igorg1",url="/forum/viewtopic.php?p=4798079#p4798079"]То КРАМ: Я вот сейчас доделаю часы с матрицей из 256 светодиодов 2812 - только не ори что ты такое сделаешь на ПИК18[/uquote]Это можно сделать на любом МК имеющем ШИМ и 256*3 байт ОЗУ для матрицы экрана, но можно и налету считать пиксели через знакогенератор. Лишь бы успевал считать пиксели за 1,25 мкс.
У меня на работе где то валяется эта матрица.
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798086#p4798086"]Не знаю, зачем вы уже полтора десятка страниц спорите на тему синуса.

Если про PIC10F322 с модулем NCO, то... ну да, прикольная штука, наверно даже полезная. Однако, количество I/O-пинов у PIC10 удручает, всего 4 штуки. Во-вторых, как я помню, младшие PIC-и имеют неприятную особенность, когда тактовая частота инструкций равна 1/4 частоты осциллятора. Фактически, из 16 МГц имеем всего то 4 МГц. В свое время для меня это было еще одной причиной отказа от PIC.

Вы как хотите, но лично я бы не выделял отдельный МК или генератор под генерацию напряжения накала. Лишний корпус - лишнее место на плате, лишние деньги.
И если генерировать НЕИЗМЕННЫЙ по частоте сигнал с микроконтроллера, то я бы не стал писать DDS-генератор или использовать аппаратный NCO. Зачем переводить буквы, если перестройка частоты не нужна? Смотрите на задачу проще.
Прелесть DDS - именно в перестройке частоты малыми шагами. А при неизменной частоте DDS только обуза.[/uquote]
Во, и я об этом же :)
Зачем мне NCO - если я по прерыванию таймера, который является основой ШИМ (это в случае Р10) могу загрузить новое значение ШИМ???
ЗАЧЕМ, КРАМ?
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Ну так то прав Игорь.
И даже больше скажу - например STM32 может через DMA грузить новое значение в таймер ШИМа с частотой шагов синусоиды, не задействуя при этом ЦПУ вовсе. Один таймер работает на генерацию ШИМ, второй таймер генерирует "пинки" DMA.

Если же рассматривать модуль NCO в PIC10, то надо его рассматривать в другом контексте - как генератор сетки частот. Вот тогда будет другой разговор!
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4798090#p4798090"][uquote="igorg1",url="/forum/viewtopic.php?p=4798079#p4798079"]То КРАМ: Я вот сейчас доделаю часы с матрицей из 256 светодиодов 2812 - только не ори что ты такое сделаешь на ПИК18[/uquote]Это можно сделать на любом МК имеющем ШИМ и 256*3 байт ОЗУ для матрицы экрана, но можно и налету считать пиксели через знакогенератор. Лишь бы успевал считать пиксели за 1,25 мкс.
У меня на работе где то валяется эта матрица.[/uquote]
Вот такая?
Изображение

Ещё раз - мне нужен WEB сервер - или BLE - именно BLE - а не то что продают на али модули с блютуз - со всей безопасностью BLE, и с нужными мне сервисами, которые я подниму.
Плата на фото не отмыта.
Друг Кота
Аватара пользователя
Сообщения: 25498
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Rapra",url="/forum/viewtopic.php?p=4798086#p4798086"]Однако, количество I/O-пинов у PIC10 удручает, всего 4 штуки.[/uquote]
Для генератора нужен всего один пин на выход. Однако можно еще один пин на вход использовать для синхронизации генерируемого сигнала от внешнего источника.
[uquote="Rapra",url="/forum/viewtopic.php?p=4798086#p4798086"]Ну и малый размер памяти не позволит получить большую таблицу формы сигнала, а значит и диапазон перестройки будет небольшим, так что все эти мегагерцы на деле получаются не такими уж и радостными.[/uquote]
Мегагерцы получаются ровно такими же, как и в интегральном DDS, но естественно, что не на каждый клок NCO, а только на его переполнение. Только причем тут диапазон перестройки к размеру таблицы? Размер таблицы не имеет никакого отношения к перестройке. Отсчеты перестраиваются, а массив синуса неизменен.
[uquote="Rapra",url="/forum/viewtopic.php?p=4798086#p4798086"]я помню, младшие PIC-и имеют неприятную особенность, когда тактовая частота инструкций равна 1/4 частоты осциллятора. Фактически, из 16 МГц имеем всего то 4 МГц.[/uquote]
Этот PIC предназначен для управления своей периферией, а не для расчетов. В предложенной конструкции пустой суперлуп и всего расчетов - загрузка значения отсчета по индексу в PWM.
NCO и PWM работают на частоте осциллятора, а не на частоте ядра.
[uquote="Rapra",url="/forum/viewtopic.php?p=4798086#p4798086"]Лишний корпус - лишнее место на плате, лишние деньги.[/uquote]
Этот корпус - 20 центовый SOT23-6. Остальное тоже самое, что и в случае с резидентным МК. То есть цена МК - это цена какого нибудь мелкого танталового конденсатора.
Еще раз. Задача NCO в данном случае не в мелком шаге перестройки - перестройка как таковая вообще не нужна. Он нужен для разнесения частот ШИМа и отсчетов не кратными делителями, а дробным.

Добавлено after 2 minutes 7 seconds:
[uquote="igorg1",url="/forum/viewtopic.php?p=4798095#p4798095"]Вот такая?[/uquote]
Она самая.

Добавлено after 2 minutes 22 seconds:
[uquote="Rapra",url="/forum/viewtopic.php?p=4798094#p4798094"]Ну так то прав Игорь.
И даже больше скажу - например STM32 может через DMA грузить новое значение в таймер ШИМа с частотой шагов синусоиды, не задействуя при этом ЦПУ вовсе.[/uquote]
Вот это как раз не слишком хорошая идея. Частота ШИМа имеет самую высокую паразитную энергию и ее нужно отодвинуть от сигнала как можно дальше, но не увеличивая дискретизацию синуса.
Прорезались зубы
Сообщения: 206
Зарегистрирован: Сб дек 24, 2011 10:17:24

Сообщение igorg1 »

То: КРАМ - НЕ ВРИ, у тебя не может быть такой платы с диодами 2812, такая плата существует в единственном экземпляре только у меня :)
И не ври сколько ПИК10 стоит - как минимум 100 рублей - зайди в Чип-Дип. И программировать как его будешь??? разъём куда поставишь???
Даже однорядный с шагом 1.27мм :)
Вымогатель припоя
Сообщения: 612
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Так я и говорю - применительно для STM32 - генерация несущей ШИМа - это один таймер, а генерация отсчетов модулирующего сигнала - это другой таймер. Таймер несущей можно сделать хоть на мегагерц, он работает аппаратно. И можно применить фильтр 1-го порядка, поскольку несущая будет далеко от самого сигнала.

Добавлено after 4 minutes 2 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4798099#p4798099"]Только причем тут диапазон перестройки к размеру таблицы? Размер таблицы не имеет никакого отношения к перестройке.[/uquote]
Как раз размер таблицы синуса влияет на диапазон перестройки генератора по частоте. Чем больше элементов в таблице, тем более низкую частоту сигнала по отношению к частоте семплирования можно получить на выходе.
Последний раз редактировалось Rapra Вс мар 15, 2026 19:23:36, всего редактировалось 1 раз.
Ответить

Вернуться в «PIC»