Перейти к содержанию
    

Aktus

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Добрый день. Прошу помочь с выбором стабилитрона и гасящего резистора в схеме защиты от переполюсовки. Вобщем-то, решение с полевым транзистором и стабилитроном для защиты транзистора от пробоя широко известно, и описано, например, здесь: https://habr.com/ru/post/254035/ Однако непонятно вот что: в схеме по ссылке используется источник питания 30 В, стабилитрон на 10 В и резистор 100 кОм. Понятно, что, поскольку типичное значение напряжения пробоя gate - source составляет 20 В, то использование стабилитрона на 10 В предохраняет транзистор от пробоя. Однако, для стабилитрона существует такой параметр, как "минимальный ток стабилизации", типичное значение которого составляет 5 мА (например, для серии BZX84C). Но как же тогда можно ставить резистор 100 кОм? Ведь если на резисторе падает 20 В, то ток будет всего 200 мкА, то есть стабилитрон попросту не будет работать. А чтобы обеспечить требуемые 5 мА, нужно ставить резистор не выше 4 кОм, причём, подходящей мощности и с довольно высоким тепловыделением. В моём случае ещё веселее - диапазон входных напряжений может быть от 12 и до 50 В. Прошу разъяснить, что я неправильно понимаю в работе схемы? Хотелось бы прежде всего понять принципы выбора компонентов. Спасибо.
  2. Потребление XR17D154

    Подскажите, пожалуйста, какой ток потребляет микросхема XR17D154? В даташите указано "ICC Power Supply Current 4 mA", но смущает условие "PCI Bus CLK and Ext. Clock=2MHz, all inputs are at VCC or GND and all outputs are unloaded" Это реальный рабочий ток, на который нужно ориентироваться при расчёте, например, источника питания? Или же это ток в каком-то холостом режиме, а в действительности потребление намного больше?
  3. USART & Atmega128A

    RabidRabbit, косяк признаю. Большое спасибо. Про раздел для начинающих понял, учту.
  4. USART & Atmega128A

    Всем добрый день. Пишу вроде бы простейшую прогу для ATmega128A в Atmel Studio 6.1. Просто передаю в комп 1 байт по UART. Сначала делаю следующим образом: #include <avr/io.h> #define UBRR_9600 47 unsigned char s[1] = "A"; int main(void) { UBRR0H = 0; UBRR0L = UBRR_9600; UCSR0B = (1<<TXEN0); UCSR0C = (1<<USBS0)|(1<<UCSZ00); UDR0 = s[0]; while(1) { } } Всё нормально, но вместо символа "A" (0x41) в окне терминала (Advanced Serial Port Monitor) вижу "Б" (0xC1) :) Почему-то устанавливается в 1 старший бит. А теперь то же самое, но через прерывание: #include <avr/io.h> #include <avr/interrupt.h> #define UBRR_9600 47 unsigned char s[1] = "A"; int main(void) { UBRR0H = 0; UBRR0L = UBRR_9600; UCSR0B = (1<<UDRIE0)|(1<< TXEN0); UCSR0C = (1<<USBS0)|(1<<UCSZ00); sei(); while(1) { } } ISR(USART0_UDRE_vect) { UDR0 = s[0]; } Здесь в терминале вообще ничего не вижу, хотя, по идее, должна быть бесконечная посылка символа "A". Ассемблерный код в обоих случаях одинаковый и, вроде бы, правильный: UDR0 = s[0]; LDS R24, 0x0100 OUT 0x0C, R24 Может кто-то сталкивался? Можете что-нибудь подсказать?
×
×
  • Создать...