0
так что врядли эта причина влияет на выбор схемы в интегральных супервизорах
И всё-таки, думаю, что-то в этом есть: должна быть веская объективная причина, почему множество Производителей, не сговариваясь, используют именно ту или иную схему! А характеристики (и ограничения) реальных компонентов — это традиционная «веская причина», для выбора тех или иных схемотехнических решений…
Возможно, это не единственная причина? Это другой вопрос… Да, допускаю.

p.s. Не берусь утверждать категорично. Однако, пересмотрел свыше десятка даташитов на разные компараторы (исключая Rail-to-Rail) — что интересно, все работают либо от нуля, либо ассиметрично ближе к нулю [Vss+0.5… Vdd−1.5] — тенденция…
  • avatar
  • Celeron
  • 14 апреля 2015, 05:02
0
Идея!Я доосмыслил тему, и пришёл к выводу, что Типовая схема «Рис.1» — действительно, лучшая по характеристикам, и самая универсальная/надёжная по применению. Не смотря на некоторую запутанность схемотехники…
Перейдя от абстрактной теории, к реальным электронным компонентам — многие вещи для меня прояснились, а схемотехнические решения обрели смысл. Статья была доработана.
  • avatar
  • Celeron
  • 14 апреля 2015, 01:41
0
Это не порядок, это 4 порядка.
Хм, да, накосячил немного… Исправлю описание.
  • avatar
  • Celeron
  • 12 апреля 2015, 01:56
0
ImageShack.us продался и зарубил всю халяву…

Теперь, могу порекомендовать хостинг картинок www.flickr.com
Free:
1 Terabyte of photo and video storage
Upload photos of up to 200MB per photo
Upload and download in full original quality
Unlimited monthly bandwidth
www.flickr.com/help/limits/

(у них после 5/20/2013 много халявы началось)
  • avatar
  • Celeron
  • 18 января 2015, 07:22
0
Кнопка SW2 на схеме — символическая, чисто для симуляции (там и подпись: «Software...»). На самом деле, Q4 будет управляться с выхода микроконтроллера. И конечно, у него будет либо токоограничивающий резистор на базе; или вообще, тут можно использовать МОП-транзистор; или даже, можно обойтись совсем без дискретного Q4, а коммутировать непосредственно портом МК, если мощность позволяет (об этом есть пара слов в оригинальном Патенте)…
  • avatar
  • Celeron
  • 15 января 2015, 02:15
+1
Обратите внимание на микросхемы: 74LVX3245, SN74LVCC4245A, SN74LVC4245A (8-bit, Dual-Supply Transceiver, 3-state Outputs, allows for translation from a 3.3V to a 5V environment and vice versa).
На Украине купить можно тут.
  • avatar
  • Celeron
  • 24 сентября 2014, 05:27
0
А можешь запостить фотку снятого сломанного лезвия, отдельно и крупно?
Судя по фотке, кажется, там заводская отливка была бракованная: т.е. материал хрупкий; даже если и был без выщерблины при покупке, но мог сломаться при лёгком нажиме. Не видна структура стали на сколе: есть ли там характерные пузырьки, и порошковая структура? Есть подозрение, что у китайцев/тайванцев закончилась сталь и они стали делать из пресованного гоуна.)
Повторно брать такую же модель не рекомендую.

p.s. В Мастераме брал?
  • avatar
  • Celeron
  • 24 сентября 2014, 00:13
0
В своё время, купил себе простой Стриппер «Proskit PK-3001E» — очень им доволен! Но это не универсальный инструмент, только для зачистки/резки монтажных проводов (малых сечений, до 0.8мм). Мне нравится его эргономика, но я не прихотливый. Однако заметил, что резиновые накладки на ручках вскоре стали съезжать, как на дешёвых китайских пассатижах — так что Pro'sKit бывает разный, и в общем-то это ширпотреб. :(
Так что рекомендовать к покупке не буду. Особенно перфекционистам. Но мне понравились, так что можно обратить внимание. Однако, это чисто для монтажа электроники.
Существует ещё следующая модель: «PK-3002E» (на большие диаметры провода, 0.8-2.6мм), но вот её я бы уже не стал брать — ниша применения несбаллансированная.
  • avatar
  • Celeron
  • 23 сентября 2014, 23:51
0
IMHO, схемотехники в статье ещё меньше, чем детальки. Забрал в личный блог, чтоб не ворчали на оформление…
  • avatar
  • Celeron
  • 23 сентября 2014, 07:42
0
К сожалению, не нашёл блога «для начинающих» (уточни). Нашёл только родственную статью в блоге «Схемотехника» \ «Согласование логических уровней 5В и 3.3В устройств»… (В которой рассматривается схемотехника разных самодельных согласующих цепей, приводится их модели в Proteus и анализ функциональных возможностей. В конце, упоминается существование специализированных микросхем «буферных драйверов», но они не рассматриваются подробно.)

В статье «Joonas Pihlajamaa — Voltage level shifting (recipes)», напротив и в дополнение, приводятся несколько типовых специализированных микросхем («Деталек»), для более надёжного (профессионального) решения этой задачи «преобразования логического уровня». Приводятся краткие тесты, и главное, рекомендации по выбору той или иной «Детальки», для разных случаев. Мне понравилось. Счёл такую обзорную статью полезной — решил обратить внимание Сообщества…
  • avatar
  • Celeron
  • 23 сентября 2014, 00:17
0
Recipes:

Simple low-to-high conversion: Flexible logic levels…
(Some things could passing without any special technics.)

Simple high-to-low conversion: Voltage dividers.

high-to-low conversion: «4050B» hex non-inverting buffer. Also convert logic levels upto 15V to standard TTL.
E.g.: you can power the 4050 with 3.3V voltage, but provide 5V logic at its input, to have 5V->3.3V conversion…

low-to-high conversion: «4104B» quad voltage translator.
(A special part, but use with the caution: you should always wire VDDO before VDDI!)

low-to-high or high-to-low conversion: «40109B» quad voltage level shifter.
(universal, but slow part)

low-to-high conversion (could 3.3V->5V): «74HCT125» quad tri-state buffer.
Even not intended for level shifting specially. But have «TTL input levels» (note: “T” in 74HCT series), so 3V interpret as “high”, even powered from 5V supply…
  • avatar
  • Celeron
  • 22 сентября 2014, 19:00
0
Кстати, обнаружил (см. картинки), в продаже встречается довольно много 3мм-светодиодов с отформованными выводами — зависит от производителя и модели.
  • avatar
  • Celeron
  • 14 сентября 2014, 19:19
0
Да, разводка сделана под стандартный 3мм светодиод — у него прямые ноги под 100mil. Это у меня просто завалялся какой-то древний миниатюрный светодиод (вероятно ещё советский): у него диаметр корпуса чуть меньше (толще чем 2.5мм, но меньше 3мм, где-то 2.8мм — такого стандарта не знаю, похоже на 3мм-стандарт олдскульного советского исполнения), но выводы таким образом сформованы под 100mil, что он хорошо стал на место. Задействовал.
  • avatar
  • Celeron
  • 14 сентября 2014, 19:03
0
Благодарю, ценно! Я эту группу «регистро-безопасных» макросов не использовал — потому недотестировал и проглядел…
Исправлено: <macrobaselib.inc> (ver.1.0.3 beta)
  • avatar
  • Celeron
  • 18 августа 2014, 20:21
0
«В лоб» работать с таким счетчиком нельзя.
Я думаю, что ОС на таком счётчике — может работать только на 32-битный микроконтроллерах. Там, где (int) также 32-битный. Иначе, возникает слишком много побочных эффектов, большой оверхед. Хочу уточнить (я не в курсе, ещё не работал): в 32-битных микроконтроллерах же есть атомарные операции с памятью читать/писать 32-битные числа?

Т.е. для 8-битных микроконтроллеров такая система «Прототридовских Таймеров» не подойдёт (плохо втуливается). Если рассчитывать на «атомарные нативные операции», то даже 24-битные микроконтроллеры — ещё мало (max_int = 2^24mc = 4.66часов, а потом наступит переполнение счётчика, а у таймеров «проблема 2000»).

Для 32-битных МК, уже лучше: max_int = 2^32mc = 49суток (т.е. раз месяц, как минимум, МК обязан быть перезагружен! можно реализовать специальным watchdog-ом)

p.s. Эти свойства — есть побочный эффект того, что рассмотренная выше «таймерная служба» опирается на один централизованный счётчик. В «Диспетчере задач RTOS» же: у каждого Таймера свой счётчик. Но эти счётчики приходится все декрементировать, каждую миллисекунду — там счётчики «активные»: пропускать циклы декрементации нельзя! За счёт этого, возникает некий вычислительный оверхед (требуется больше процессорного времени и кода). Но на 8-битных МК — иначе нельзя (вернее, можно, но ещё сложнее).
  • avatar
  • Celeron
  • 19 февраля 2014, 14:21
0
Возможно, ты плохо читал...
Ну, не всё-то слово в слово пишется. :) Тут, пока не попробую, пока не разберусь в тонкостях реализации (какой там ещё объём служебного кода) — сравнить не смогу. Я сейчас ещё не готов обсуждать Прототриды…
  • avatar
  • Celeron
  • 19 февраля 2014, 13:59
0
Прототредс позволяет превратить таск такого диспетчера в более-менее полноценный поток
«Мсье знает толк в извращениях!» (с)
Мне сложно вообразить как это можно сделать… Но лучше так не делать. ИМХО, с Прототридами — лучше воспользоваться «таймерным костылём», предложенным авторами и упомянутым выше. Совместно с самодельным «счётчиком времени», вместо clock_time().

Между «Диспетчером задач» и «Прототридами» — гораздо больше различий, чем аналогий:
* Нити прототридов — это как детерминированные «верёвки». А Задачи диспетчера — это как «бусины бисера» (они настолько фрагментарные, по сравнению с Нитями, что их следует рассматривать как «вышивку» с многочисленными «сетевыми связями»).
* В Диспетчере: Таймеры управляют/запускают Задачами (а Таймеры безличны). Но в Прототридах, наоборот: Нити управляют/проверяют Таймерами (и Таймеры выделенные, идентифицируются адресом). Соответственно, у их Таймеров разные не только движки, но и интерфейсы заточены под совсем разные модели
* В «Диспетчере задач» всё заточено под оптимизацию использования памяти, минимизацию вычислений, уменьшение объёма кода. А Прототриды — компромисны: наперёд всего «гибкость» и прозрачность кода (простота), а «лёгкость» (малый объём кода и стека) — желательна, но не в ущерб первому…
В общем, как-то так.
  • avatar
  • Celeron
  • 19 февраля 2014, 05:39
0
А вот «Таймерной службы» — в прототридах не хватает, да…

В архиве с исходниками есть файл «example-codelock.c» — там предлагается некая реализация примитивной «Таймерной службы», но она катит только для WIN32/POSIX систем, потому что опирается на «system clock»:
struct timer { int start, interval; };

static int timer_expired(struct timer *t)
{ return (int)(clock_time() - t->start) >= (int)t->interval; }

static void timer_set(struct timer *t, int interval)
{ t->interval = interval; t->start = clock_time(); }

Хотя, идея интересная! Можно, например, выделить в памяти микроконтроллера 32-битный счётчик, и наращивать его каждую миллисекунду… А в вышеприведенных методах, вместо вызова clock_time() — сравнивать со значением счётчика. Profit!
  • avatar
  • Celeron
  • 19 февраля 2014, 02:39
0
Глянул на «Protothreads» — интересная штука! (лёгкие и кроссплатформенные) Но ничего конкретного про них, пока, сказать не могу — это нужно поработать с ними всерьёз, в рамках практического проекта…

Сложилось предварительное соображение: что функционал «Диспетчера RTOS» прототридам — бесполезен, как «пятая нога», потому что в них уже есть механизм «дочерних тридов» (как замена дроблению Задач):
void PT_SPAWN(struct pt *pt, struct pt *child, thread);
Spawn a child protothread and wait until it exits.

void PT_WAIT_THREAD(struct pt *pt, thread);
Block and wait until a child protothread completes.

Но и «дочерние триды» в них нужны лишь — как побочный эффект от «простоты и лёгкости»: потому что в них нельзя блокировать поток в вызовах вложенных функций (за счёт упрощённой работы со стеком).
  • avatar
  • Celeron
  • 19 февраля 2014, 02:18
0
Будут вопросы — пиши. У нас тут, конечно, научат — главное, успевай пригибаться да уворачиваться.
Я в электронике слабоват (например, LCD-дисплеи ещё не крутил), а больше — по программно-алгоритмической части… Поэтому задавай вопросы здесь (без обиняков) — кто захочет, ответит.
  • avatar
  • Celeron
  • 18 февраля 2014, 19:27