Свежие обсуждения
Микроконтроллеры

MSSP(IIC) и USART

1 11 13

Gregory: под словом джиттер я понимаю "дрожание" (смещение) фронта/спада импульса относительно того места (имеется ввиду осциллограмма), где он должен находиться. Причём все остальные характеристики остаются без изменений, да и сам фронт/спад, в следующий период (или через несколько периодов) возвращается "на исходную"

Дак, джиттер-то у вас вследствие чего появляется?

Гембель - это головная боль плюс геморрой. Работал года три с одесскими ребятами, очень острыми на язык, вот оно и прилипло.

Gregory Решение должно быть точно таким же. Т.е. конвертер, "облегчает жизнь" приёмникам.

А на самом деле иногда осложняет, пример я приводил.

Gregory Ну, во-первых, про ночь там речи не было, а, во-вторых, сами же предлагаете переходить на АВРы. Вы забываете, что у меня всё давно сделано и работает без проблем

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

Работает и хорошо. Не пойму только, что мы здесь обсуждаем тогда, и надо ли обсуждать?

 

GM:
вследствие чего появляется
Из-за того, что реализацию двух UART'ов я вижу, в двух обработчиках прерываний, от двух различных таймеров. Естественно, они периодически будут "накладываться" друг на друга. Если есть другая идея реализации, поделитесь.

пример я приводил
Извиняюсь, но я не вижу ничего страшного в этом примере. Как говорил выше, вместо оконечного устройства, байт проигнорирует конвертор.

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

что мы здесь обсуждаем
Ну, как же? Вон сколько различных предложений и алгоритмов было. Ваши, в частности. То, что кому-то они не нравятся, не значит, что и всем остальным тоже.

По поводу АВР, уверяю, как только возникнет необходимость, обязательно займусь.
Как мне кажется, если уж и переходить, то писАть на АСМе. А то ведь, из-за громоздкости атмеловского АСМа, многие переходят на ЯВУ, и вся "скорость" теряется в "неоптимальности".

 

Так и думал, что вы не так джиттер понимаете, как я. Джиттер при выводе данных по прерываниям возникает из-за того, что процессор должен завершить исполняемую команду и только после этого перейти к обработке прерывания. Ваш джиттер - это некая задержка на время работы прерывания. Борьба тут простая, выдать бит, и тут же разрешить остальные прерывания.

Ну и хорошо, что не видите ничего страшного. Для радиолюбительской поделки и так сойдёт . Как и превышение частоты.

По поводу громоздкости атмеловского АСМа. Кто ж такую глупость сморозил, а вы повторяете ? Давайте более предметно, дайте пример пиковского асма, посмотрим, у какого проца громоздкий код, а у какого компактный.

 

GM:
тут же разрешить остальные прерывания
И как Вы это предлагаете реализовать?
А если оба UART'а вообще совпадут?

Кто ж такую глупость сморозил
Я.
Хоть я и занимаюсь пока только ПИКами, но не мог же пройти мимо атмеловского сайта. Очень порадовала таблица из, если не ошибаюсь, 130 команд.
А у среднего семейства ПИКов (к которому относится в/у девайс) их - 35. Если хотите удостоверится, скачайте любой даташит.

 

Gregory А если оба UART'а вообще совпадут?

Ну так, выдать требуемый бит, и тут же разрешить остальные прерывания. Задержка будет в три команды (для аврки 20 Мгц это составит ровно 0,15 мкс, неужто много на фоне 32 мкс?).

Как я сейчас понимаю программирование в целом, как область человеческой деятельности, большое количество разнообразных команд это очень хорошо. Скажу про себя, в основном я пишу программы для Ф2812, есть описание команд на 396 страницах (порядка 380 команд), но их много и они позволяют иногда такое вытворить, что сам диву даёшься.

Описания пиков у меня есть, есть даже раритетный диск 1998 года компании майкрочип. Тридцать пять команд у пика - это не их достоинство, а их беда, да ещё такая ужасная мнемоника, не на ночь глядя вспоминать. Плюс к тому один аккумулятор и один косвенный указатель.

И взять 130 команд авророк. Это как сравнивать искуственный язык эсперанто и (хотя бы) могучий русский матерный. Ну никак не переводится фраза: "Ты чем думал, дятел?"

Кстати, многие команды из этих 130 задублированы, т.е. мнемоник две, а команда одна. Есть команды с различной адресацией, например, команда LD (загрузить). Команда одна, а посчитана 9 раз плюс 3 модификации команды. Та же ситуация с командой ST (сохранить). Убеждён, что указание 130 команд - просто маркетинговый ход.

Ну и напоследок, предложение остаётся в силе. Дайте пример пиковского асма, какой считаете нужным, посмотрим как авр справится с таким кодом, и на каком проце будет компактнее код.

 

Господа, давайте-таки съезжать с накатанной колеи. Сейчас начнем меряться, у кого команд больше Если уж на то пошло, ни у одного контроллера нормальной системы команд нет.

 

GM:
неужто много
А джитер - и не есть "катастрофа" (в разумных приделах, разумеется), а просто некоторое ухудшение параметров.

на каком проце будет компактнее код
Что-то Вы опять всё не так поняли. Речь была именно о системе команд (у ПИКов, кстати, как Вы рассуждаете, тоже много "дублирующихся"). А по производительности, было сказано как-раз наоборот. Прочтите ещё раз внимательней.
А вообще.
давайте-таки съезжать с накатанной колеи
(Только ув. Чав забыл "НЕ" поставить )

 

Вот ещё подумалось. Если соединить выход передатчика миди с приёмником миди, а выход передатчика ком с входом приёмника ком, затем записать в буфер какую-нибудь фразу типа "The quick fox jumps over the lazy dog", а ещё лучше рекурсивные вирши, то передача в теории должна быть бесконечной. Чем не идеальная проверка? Оставляете на сутки, потом смотрите, какая фраза передаётся, и передаётся ли вообще.

 

Мысль интересная.
Как предлагаете записывать-считывать?

 

Вариантов много. Например, забить буфер конвертера до отказа, потом замкнуть входы-выходы, подключить гипертерминал для мониторинга.