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

керамика на выходе МК


3d_killer

Рекомендуемые сообщения

Собрал схемку (на соплях), в схеме МК атмега далее ULN2003 и несколько реле, так как все дело на соплях при включении релюшек МК ловит помеху и ребутится (иногда), поставил керамику на выходы мк к массе которые идут на ULN по 0,1мкф, помеху ловить перестало, стоит ли такое решение включать в печатную плату? это никак не повлияет на работу МК? Спрашиваю потаму как такого решения в схемах никогда не видел.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Вообще-то помеху стараются убрать в месте возникновения. Защитные диоды в ULN2003 задействованы? 9 ножка куда подключена?
Контакты реле коммутируют индуктивную нагрузку? Если "да", то снабберы имеются?
Питание МК гальванически развязано от нагрузки, управляемой контактами реле? Развязка питания и правила разводки общего провода выполнены?
А цеплять конденсаторы, тем более такой ёмкости = излишне нагружать порт.
Кстати, а ножка сброса как подключена, RC-фильтр, а лучше супервайзер питания имеется? 

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

нет, в данный момент на соплях все, 9 ножка подключена к + питания,контакты реле пока никуда не подключена, на снабберы совершенно нет места, скорее всего будут включать вентилятор, пару блоков питания и катушку пускателя, питание  МК и реле идет от одного источника (импульсный 5 вольт), правило разводки общего провода выполню на печатной плате, ножка сброса через конденсатор на землю и через резистор 10ком на +, фильтра нет на печатной плате к мк будет стоять дроссель на 120мкГн и конденсаторы на 1000 мкф и керамика на 0,1.

Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1 час назад, 3d_killer сказал:

в какой цепи

после микома и буферов ... вот пример - под экраном - контроллер с буферами, за ним - коммутация (реле) в ВЧ цепях.

123456.jpg

Ссылка на комментарий
Поделиться на другие сайты

вижу дроссели а еще рядом конденсаторы, что там за соединение?

вот нашел в статье о защите от помех, не знаю относится это к МК

2017-10-09_22-39-00.jpg

Ссылка на комментарий
Поделиться на другие сайты

Часто сброс МК в таких схемах идет через висящий в воздухе вход RES. Его нужно подтянуть к питанию внешним резистором 5-10 ком. Можно дополнительно зашунтировать конденсатором 0,1 мкФ. По моему опыту этого обычно хватает для восстановления нормальной работы МК в схемах, где присутствуют мощные реле или контакторы.

Ссылка на комментарий
Поделиться на другие сайты

ошибся с темой,  удалите пожалуйста

Изменено пользователем wws63
не в ту тему написал

Опыт - это то, что получаешь, не получив того, что хотел

Ссылка на комментарий
Поделиться на другие сайты

может конечно первому варианту платы не хватало просто питания в момент включения реле и он ребутился, так как про ножку ресет все было выполнено, 9 реле как никак, хотя и ИИП не слабенький 5вольт 4А

Ссылка на комментарий
Поделиться на другие сайты

22 часа назад, 3d_killer сказал:

что там за соединение?

"Г"-образное ... емкость - на массу, дроссель - последовательно.

 

Подобное проверяется просто - мы радиостанцией 2-5 Ватт "ШАРАШИМ" рядом по ПП, можно раздолбанный коллекторный двигатель включить в одну розетку ... и т.п.

Ссылка на комментарий
Поделиться на другие сайты

37 минут назад, 3d_killer сказал:

где правда?

 

В 09.10.2017 в 22:26, KRAB сказал:

контроллер с буферами, за ним

а у тебя? :)

 

37 минут назад, 3d_killer сказал:

порты МК

 

Уберите гребанную ПЕРДОМОРДЕРАЦИЮ .... откровенно заиПло ... либо меня ТУТ - не будет ...

Изменено пользователем KRAB
Ссылка на комментарий
Поделиться на другие сайты

а так все равно, помеху ловило. Так вот если я еще и кварц уберу и перейду на внутренний генератор, будет более помехоустойчиво?

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, 3d_killer сказал:

все равно, помеху ловило

по земельке может что-то "бегать" ... + экранирование ... внутренний генератор - маловероятно, что поможет ... :)

Ссылка на комментарий
Поделиться на другие сайты

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

2017-10-10_23-04-22.jpg

Ссылка на комментарий
Поделиться на другие сайты

подскажите откуда землю брать на внешние датчики 1 или 2 (по правилам я так понимаю 1)

2017-10-10_23-22-40.jpg

Изменено пользователем 3d_killer
Ссылка на комментарий
Поделиться на другие сайты

ок.

А для чего вам LC -фильтр НЧ?

Если вы избавляетесь от шума по питанию, тогда почему МК так далеко от фильтра?

В поисках работы..

Looking for job

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Этот вариант меня вполне устроит. То есть тот инструмент, которым редко пользуемся, отключаем и убираем в коробку. По сути так оно и есть - качественные оловоотсос и пневмопинцет мне нужны крайне редко. 
    • Вашими бы устами да мед пить. А мозги топикстартеру пожаловать в качестве кешбека. Но suum cuique...
    • Данная тема к "импульсникам" не относится, поэтому всё "внетемное" удаляю. Не флудим. Для обсуждения других схем создавайте отдельные темы!
    • @READART Из практики. Даже 2в1 ухитряются путаться и мешать друг другу. Что за ад будет происходить с 4в1 я с трудом представлю. Вероятнее всего он будет низведен до банального 2в1 из-за неудобства.
    • нечего там смотреть, достаточно взглянуть на картинку- это похоже болячка этой деки- присоединяюсь к теме- у меня такая же проблема!
    • @donec Спасибо, но нет. Слишком всё как то всё сложно и запутано написано там в этом коде.  Я сейчас тем временем продолжаю разбираться с дисплеем. Выяснил причину артефактов на дисплее, а она кроется в коде, но это ещё нужно понять как исправить. Собственно в чём суть дела вывод по одному символу работает корректно и всё отображается правильно, но как только я пытаюсь вывести строку то на дисплее сразу появляются всяческие артефакты. Так что тут получается нужно каким то образом править код вывода строки. Вот весь код написанный под ATMEGA16. #define F_CPU 7372800UL #define BAUND 9600L #define UBRRL_value (F_CPU/(BAUND*16))-1 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #define MAIN_H_ #define LCD_H_ #define LCD_DDR DDRA #define LCD_PORT PORTA #define LCD_PIN PINA #define DATA 0b11110000 #define RS PA2 #define E PA3 #define E1 LCD_PORT|=(1<<E) #define E0 LCD_PORT&=~(1<<E) #define RS1 LCD_PORT|=(1<<RS) #define RS0 LCD_PORT&=~(1<<RS) void lcd_ini(void); void lcd_str(char* str); void lcd_pos(uint8_t line, uint8_t pos); void lcd_num(uint8_t num, uint8_t line, uint8_t pos); uint8_t n=0; void write(uint8_t n) { n<<=4; E1; //линию Е в 1 LCD_PORT&=~DATA; //удалить предыдущую отправку LCD_PORT|=n; //выставить значение на пины управления дата битами asm("nop"); //пропуск такта E0; //линию Е в 0 } void send_byte(uint8_t byte, uint8_t tip) { if (tip) //если тип данные на линии RS 1 { RS1; } else //иначе тип команда и на линии RS 0 { RS0; } write(byte>>4); //передача старшего полубайта write(byte); //передача младшего полубайта } void lcd_ini(void) { LCD_DDR|=DATA | (1<<RS) | (1<<E); _delay_ms(20); RS0; write(3); _delay_ms(5); write(3); _delay_us(150); write(3); _delay_us(50); write(2); _delay_us(50); send_byte(40,0); _delay_us(50); send_byte(12,0); _delay_us(50); send_byte(1,0); _delay_ms(2); send_byte(6,0); _delay_us(50); } void lcd_str(char* str) { uint8_t n=0; while(str[n]) { send_byte(str[n],1); n++; } } void lcd_pos(uint8_t line, uint8_t pos) { uint8_t adress=(line*0x40+pos)|0x80; send_byte(adress,0); _delay_us(50); } void init_pin(void); #define C_PC0 (~PINC&(1<<PC0)) #define C_PC1 (~PINC&(1<<PC1)) #define LED_1_ON() PORTD|=(1<<PD2) #define LED_1_OFF() PORTD&=~(1<<PD2) #define LED_2_ON() PORTD|=(1<<PD3) #define LED_2_OFF() PORTD&=~(1<<PD3) #define FLAG_END_RX (1<<3) #define FLAG_ERR_RX (1<<4) #define BUF_SIZE 20 char rx_buf[BUF_SIZE]; char buf_index = 0; char rxb; volatile start=1, flags; ISR(USART_RXC_vect) { char rxb = UDR; if(!(flags & FLAG_END_RX)) { rx_buf[buf_index]=rxb; if(rx_buf[buf_index] == 0x0D) { flags |= FLAG_END_RX; return; } buf_index++; if(buf_index >= BUF_SIZE) { buf_index = 0; flags |= FLAG_ERR_RX; } } } void init_UART() { UBRRL = UBRRL_value; UBRRH = UBRRL_value>>8; UCSRB|=(1<<TXEN); UCSRB|=(1<<RXEN); UCSRC|=((1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)); UCSRB|=(1<<RXCIE); sei(); flags = 0; } void send_UART(char value) { while(!(UCSRA&(1<<UDRE))); UDR=value; } int main(void) { init_pin(); init_UART(); _delay_ms(500); send_UART('O'); send_UART('K'); send_UART('!'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; DDRB = 0b10000000; PORTB = 0b11111111; lcd_ini(); while(1) { if (~PINB & (1<<1)) { send_UART('P'); send_UART('B'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('A',1); lcd_pos(1,0); lcd_str("PORT B1"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("GAMES AND SOFT"); //send_byte(0b01000001,1); //A //send_byte(0x41,1); //A //send_byte('A',1); //A } if (~PINB & (1<<2)) { send_UART('P'); send_UART('B'); send_UART('2'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('B',1); lcd_pos(1,0); lcd_str("PORT B2"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("TIFASO"); } if (~PINB & (1<<3)) { send_UART('P'); send_UART('B'); send_UART('3'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('C',1); lcd_pos(1,0); lcd_str("PORT B3"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("HELLO"); //lcd_pos(1,0); //lcd_str("PLAYER BT201"); } if (~PINB & (1<<4)) { send_UART('P'); send_UART('B'); send_UART('4'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('D',1); lcd_pos(1,0); lcd_str("PORT B4"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("FILE MUSIC MP3"); //lcd_pos(1,0); //lcd_str("USB PLAYER VOLL"); } char i = 0; if (rx_buf[i] == 'M'){ i++; if (rx_buf[i] == '1') { LED_1_ON(); LED_2_OFF(); } else if (rx_buf[i] == '2') { LED_1_OFF(); LED_2_ON(); } else if (rx_buf[i] == 'T') { LED_1_ON(); LED_2_ON(); } else if (rx_buf[i] == 'K') { LED_1_OFF(); LED_2_OFF(); } } if (C_PC0) { send_UART('P'); send_UART('C'); send_UART('0'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('E',1); lcd_pos(1,0); lcd_str("PORT C0"); } if (C_PC1) { send_UART('P'); send_UART('C'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('F',1); lcd_pos(1,0); lcd_str("PORT C1"); } } } void init_pin(void) { DDRC = 0b00000000; PORTC = 0b11111111; DDRD |= ((1<<2)|(1<<3)); PORTD &=~ ((1<<2)|(1<<3)); } Собственно за вывод символа отвечает send_byte она работает правильно, а за вывод строки отвечает lcd_str вот в ней как раз таки и вся проблема с артефактами. А что конкретно не так я пока ещё никак не пойму. Может кто более опытным глазом увидит и подскажет что нужно исправить.
×
×
  • Создать...