Very Hot Topic (More than 50 Replies) 16F876A отличия прошивки? (Прочитано 495 раз)
KMG
Гуру
*****
Вне Форума



Сообщений: 3776
Местоположение: Санкт-Петербург
Зарегистрирован: 06.06.2008
Re: 16F876A отличия прошивки?
Ответ #20 - 06.05.2014 :: 15:00:31
Post Tools
Цитата:
На самом деле основной вопрос в том, что начинающие привыкают сразу пользоваться всякими генераторами кода совершенно не вникая в сущность процесса. И даже три ножки не могут потом самостоятельно окучить. Опять же, в случае перехода на другую архитектуру (по различным причинам) сразу начинают искать волшебную тулзу с кнопочкой "сделать 3.14здато". Ну и метод ставить во главу угла при выборе архитектуры наличие волшебного софта, который все сделает за тебя, порочен по самое не могу.

С этим полностью согласен.
Цитата:
Та и это не беда. Их же не по пять раз на дню переконфигурировать надо. Один раз при первой итерации и подправить на второй. Так что экономия часа/двух времени не стоит возможных проблем, если вдруг софтина сгенерит неправильную конфигурацию.

Во первых эта софтина от самого производителя чипа а не third party. Во вторых в этом чипе уж очень "не ортогональный" muxing с кучей перекрестных завязок. Ну и в третьих это не генератор кода, а хелповник по выбору конфигураций с проверкой конфликтов.
  

(Вложенный файл удалён)
Наверх
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #21 - 06.05.2014 :: 15:31:55
Post Tools
По AVR у меня не все и не сразу получалось, по этому сравнивал свой скелет с тем, что выдавал один из компиляторов (Codevision AVR, кажется) и гонял в протеусе (эмулятор там так себе). По этому, когда есть вспомогательный софт - это плюс.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: 16F876A отличия прошивки?
Ответ #22 - 06.05.2014 :: 16:11:42
Post Tools
Цитата:
По AVR у меня не все и не сразу получалось
Для AVR существует уникальный Algorithm Builder fo AVR - по возможностям аналогичен ассемблеру (то есть, наиболее эффективный объектный код), но благодаря наглядной визуальной алгоритмической структуре очень удобен для прикладного программирования и по эффективности приближается к ЯВУ.
Во всяком случае раз в пять эффективней АСМ по трудозатратам.

Для мелких процев (с ограниченными ресурсами, недостаточными для Си) - это вообще идеальный инструмент.

Для ПИКов аналога не существует - потому в нашем применении (примочкостроени) связка AVR+AB+PROTEUS оказывается вне конкуренции.

При этом, обладая собственным отличным отладчиком, АБ готовит работоспособный код, который в протеусе дошлифовывается в совокупности со всей обвязкой (аналоговой и цифровой).
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #23 - 06.05.2014 :: 18:15:25
Post Tools
"...Опять же, в случае перехода на другую архитектуру (по различным причинам) сразу начинают искать волшебную тулзу с кнопочкой "сделать 3.14здато". Ну и метод ставить во главу угла при выборе архитектуры наличие волшебного софта, который все сделает за тебя, порочен по самое не могу. "

Справедливо, отчасти. Но опять возвращаемся к широкому шаганию и порванным штанам. В наше время мало кто будет париться месяцы от покупки stm32 до осознанного дерганья лапкой. А пропасть между МК и демо платой тем временем не заполнена.

Что до алгоритм билдера, помню у кого-то из форумчан он синтезатор частоты  применительно к тактированию BBD на таймерах делал, это мягко говоря, ахтунг.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #24 - 06.05.2014 :: 18:48:27
Post Tools
Цитата:
В наше время мало кто будет париться месяцы от покупки stm32 до осознанного дерганья лапкой.


Я не очень понимаю, зачем и над чем там месяцами париться?
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #25 - 06.05.2014 :: 19:16:12
Post Tools
Потому, что нет пошагового мануала для чайников, а самому инфу по крупицам добывать - уходит много времени.

1) подбрасывать монетку какую семью и  кого из семьи брать. Потом посмотреть список доступных МК в магазинах и передумать. Потом выясняется, что проще и дешевле купить на алиэкспрессе и снова переиграть выбор.
2) ломать голову как набросать макетку.
3) найти как шить и чем (софт и хард).
4) раскидать питание и земли. И кварц. И найти пины для прошивки. Т.е. примитивный демо борд своими руками.
5) найти в чем программировать. Всегда найдется тот, кто скажет что в такой-то среде и так программы писать и отлаживать нельзя, ищи что-то более современное.

Вот краткий перечень вопросов, который надо перед собой ставить, а потом со скрипом решать.

и этого перечня, как бы нигде нет.
А для авр подобное укладывалось в одну-две статьи на сайте и считалось само собой разумеющимся.
« Последняя редакция: 06.05.2014 :: 19:16:44 от »  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #26 - 06.05.2014 :: 19:35:36
Post Tools
Цитата:
Потому, что нет пошагового мануала для чайников, а самому инфу по крупицам добывать - уходит много времени.


Да вся эта инфа есть в даташите на выбранный камень. Иногда это два документа - даташит и User Manual. И уж плававши один раз, например, с AVR, не представляет никакого труда разобраться с другим камнем, пофиг какой архитектуры там CPU.

Единственная тонкость - это особенности архитектуры самого CPU. Которые с одной стороны нивелируются тем, что надо работать, например, на Си, а с другой стороны надо отдавать себе отчет о чреватости применения, скажем, типа char для регистровой переменной на 32хбитной архитектуре. Пожалуй, вдумчивое применение типов uint_fast8_t вместо char (и аналогичные для других размеров) - это признак человека, который в курсе дела.
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #27 - 06.05.2014 :: 20:16:37
Post Tools
dsPIC33 пошел бодрее, чем ARM. До него пики в глаза не видел. и это при том, что он дурацкий и мануал специфичный (дурацкий) и в рунете инфы ноль. По ARM инфы больше, но ... в общем, второй круг.

di:halt пытается двигать ARM, но все опять завязано на специфике его демо борды, что без запаха флюса немного не то (есть тот же maple mini за $14)

uint_fast8_t  - вроде как, аналогичный тип был у AVR дабы работать с регистром, а не ОЗУ
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
KMG
Гуру
*****
Вне Форума



Сообщений: 3776
Местоположение: Санкт-Петербург
Зарегистрирован: 06.06.2008
Re: 16F876A отличия прошивки?
Ответ #28 - 06.05.2014 :: 20:22:48
Post Tools
uint_fast8_t может быть и 8 и 16 и 32 и 64 бита, в зависимости от того какая разрядность работает быстрее для данной архтектуры
  

(Вложенный файл удалён)
Наверх
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #29 - 06.05.2014 :: 21:53:20
Post Tools
Цитата:
dsPIC33 пошел бодрее


Не надо это говно использовать. ARM, в некоторых случая (многие SoC) MIPS - выбор профессионалов. Остальное - не надо.
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #30 - 06.05.2014 :: 21:58:17
Post Tools
"весь регистр общего назначения, минимум 8 бит" я бы сказал.
Но до этого, надо решить кучу задач с проводками и софтом.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #31 - 06.05.2014 :: 22:03:33
Post Tools
Цитата:
Но до этого, надо решить кучу задач с проводками и софтом.


Да не нужно ничего решать. 20 евро для быстрого старта (см. ссылку выше). И лучше IAR, чем местная среда.

Как наиграетесь - можно уже и самому на плату процессор ставить.
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #32 - 06.05.2014 :: 22:06:03
Post Tools
у dsPIC пока есть сильный козырь - 16бит ЦАП в 2-4 канала.
Что делает его весьма годным для LFO хорусов/тремоло/фэйзеров/прочей модуляции.

Вроде, у старших STM есть 12 бит ЦАПы, но у dsPIC это добро лет 6.

За IAR спасибо, приедут программаторы, сяду колхозить цветомузыку.
« Последняя редакция: 06.05.2014 :: 22:08:43 от »  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #33 - 07.05.2014 :: 06:40:52
Post Tools
Цитата:
у dsPIC пока есть сильный козырь - 16бит ЦАП в 2-4 канала.


Зачем Вам там 16 бит-то? Точнее, зачем делать LFO на процессоре, а потом, если я правильно понимаю, ставить аналоговый VCO, если проще делать сразу все управление на процессоре?

  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #34 - 07.05.2014 :: 20:27:44
Post Tools
Если поставить на выходе LFO оптопару - получается оптическое тремоло.

Используя ресурсы МК, можно  сделать без проблем tap tempo, что очень популярно, когда примочек целый зоопарк. Так же, имея LFO легко делается фэйзер и прочая модуляция.

VCO есть только в хорусах-флэнжерах. Лет 6-7 назад я очень хотел хорус с регулируемыми нижним и верхним порогом задержки, вместо LFO и VCO влепил tiny3. Но тогда не хватило знаний и навыков, юношеский максимализм мешал начать хотя бы с меги, а не тиньки. Но, оно работало, хотя и криво.
VCO все же лучше делать на PLL типа 4046,4047 - стабильность повыше чем у DDS, да и с сигналом LFO можно делать что угодно.

В общем, потом обрезал хорусу "LFO" и добавил тап, вышел аналоговый дилей с тапом, он есть тут, на gtlab.


Подитожу, что
1) LFO на МК  - это тап, много волн (синус, треугольник, меандр,пилы), и это модификация готовых примочек на раз-два.
8 бит маловато, 12 бит - нормально, 16 бит - отлично.

2) LFO+VCO для управления BBD - возможно, но геморройно. Программировать примочкостроители у нас очень не любят (Своего никто не пишет, есть один проект LFO на PIC, 8 бит ШИМ, который все используют). 

3) STM32 - зверь-машина, думаю, что на нем можно и BBD эмулировать, причем сразу 2 штуки, и рулить чем угодно и шим бит на 12-14 сделать легко, смешав 2 ШИМ канала через 0.1% резисторы или использовав штатные ЦАП. По этому я навострил лыжи в сторону ARM (одна из причин).
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #35 - 07.05.2014 :: 21:37:00
Post Tools
Цитата:
3) STM32 - зверь-машина, думаю, что на нем можно и BBD эмулировать, причем сразу 2 штуки, и рулить чем угодно и шим бит на 12-14 сделать легко, смешав 2 ШИМ канала через 0.1% резисторы или использовав штатные ЦАП. По этому я навострил лыжи в сторону ARM (одна из причин).


Я Вам шепну по секрету, что не надо мешать два канала ШИМ. Достаточно дизеринга (или сигма-дельта, лучше второго порядка). Заводите ШИМ, скажем, как 32МГц/256=125кГц, при сигма-дельта второго порядка будете иметь на верхней частоте (20кГц) соотношение сигнал/шум порядка 48дБ(за счет 8 бит ШИМа)+32дБ(за счет передискретизации в сигма-дельта)=80дБ. Хватит за глаза, я считаю. Это, кстати, на порядок лучше теоретической точности в 0.1% при суммировании двух каналов ШИМ.

Ну а расчитать новое значение семпла раз в 8мкс - это как два пальца.
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #36 - 08.05.2014 :: 12:26:37
Post Tools
Сигма-дельта, это очень здравая мысль, но, так понимаю, это дополнительный обвес, и далеко не фильтр на одном опере.

Была мысль сделать искусственные 12 бит ШИМ (видимо, один из подвидов дитеринга), когда 8 бит таймеру подсовываются каждые 256 тиков определенные байты, чтобы усредненный диапазон был 0-4095 , ~72дБ .
По идее, для LFO хватит (там 60-100Гц - верхний предел, вторым порядком проутюжить и будет толк), но фильтр второго порядка - это все равно обвес, пускай и один опер.
А у dsPIC - ничего не надо. Запулил слово (если лень DMA пользоваться) и все. Главное об стабилизатор на 3.3В не обжечься.
Немцы на них VA синтезаторы делают.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Rst7
Гуру
*****
Вне Форума


Мимо проходил...

Сообщений: 1619
Местоположение: Харків-city
Зарегистрирован: 22.03.2010
Re: 16F876A отличия прошивки?
Ответ #37 - 08.05.2014 :: 12:58:16
Post Tools
Цитата:
Сигма-дельта, это очень здравая мысль, но, так понимаю, это дополнительный обвес, и далеко не фильтр на одном опере.


Так ШИМ-то тоже нужно фильтровать. Просто там практически бесплатно можно расширить ДД за счет сигма-дельта преобразования.

Цитата:
А у dsPIC - ничего не надо. Запулил слово (если лень DMA пользоваться) и все.


Я боюсь, что качество встроенных ЦАПов Вас крепко разочарует.
  

(Вложенный файл удалён)

"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредствен
Наверх
WWW  
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #38 - 08.05.2014 :: 18:05:01
Post Tools
dsPIC как ЦАП вполне ничего, та же дельта-сигма. Делал LFOшку на нем года три назад (угораздило на ассемблере, си был платный и кряка небыло).

Просто, хочется не хуже того, но без недостатков присущих дспикам.
А недостатки Вы знаете: потребляет много, хранение данных один сегмент в 16кб (если данных больше, то только в программе их держать, через загрузку регистров), трудно достать, богатая эррата, бесперспективняк устроиться даже прокладкой между stackoverflow.com и менеджером, потому что PIC говнокодеры никому не нужны, а stackoverflow по заданной теме - пуст, и т.п.

Но гранит ARM пока не сильно слаще.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
research
Участник


Re: 16F876A отличия прошивки?
Ответ #39 - 13.05.2014 :: 07:05:55
Post Tools
Прикидывал по сигма-дельта модуляторам на досуге.
Для 12 бит нужен отрезок в 4096 тактов. Для частоты дискретизации 48кГц, без оверсэмплинга, надо  196 608 000 тактов в секунду. Чего обычный stm с 72МГц тактовой явно не потянет.
Разве что, stm405/407 с его 168МГц тактовой частоты чего-то сможет.
Для 12 бит при 72МГц тактовой можно получить теоритическую частоту дискретизации 17.5кГц, что не так уж и много.

Выходит, что идея смешивания 2х 8битных ШИМ каналов не так уж и плоха. Можно попробовать слукавить и применить автокалибровку, заведя фильтрованную сумму ШИМ на АЦП.

Суммарный сигнал (пускай и 12 бит, 8+4) у нас условно состоит из "старшего байта", от которого нам нужен младший бит (или два). И "младшего байта", от которого нас интересует старший бит, или два.

При пуске устройства проводится автокалибровка.
Суммарный сигнал, допустим, усиливаем в 256 раз и заводим на АЦП.
Ставим младший бит старшего байта в "1", измеряем.
Ставим старший бит младшего байта, измеряем. Проверяем на соотношение 1:2. При необходимости, корректируем остальные биты младшего байта, благо на дробную часть остается еще 4 бита. (старший бит тоже придется корректировать, мы не знаем, куда сопротивления микшера уведет).

Подозреваю, что трусы через голову, но может и заработать. Тем более, дабы не возиться с совсем крохотными величинами, можно обыгрывать не 8+4, а 7+5 (что уже логичнее) или 6+6 бит (запас на дробь меньше, но можно и дитерингом обыграть или еще как, ибо остается запас для oversampling'a) или задействовать большее число ШИМ каналов, 3, или 4.

Теоретический итог:
при тактовой 72МГц, ШИМ8 бит даст  частоту дискретизации 281,25кГц.
Из расчета оверсемплинга 6х, частота дискретизации будет  46,875 кГц. С дитерингом особо не разгонишься, но скромный запас имеется.
Из затрат - один-два ОУ и стабилитрон, чтобы вход АЦП не сжечь.
« Последняя редакция: 13.05.2014 :: 07:12:40 от »  

(Вложенный файл удалён)
Наверх
 
IP записан
 
 
  « Главная ‹ Раздел Наверх этой страницы