Search the Community
Showing results for tags 'MCU'.
-
Иногда возникают вопросы, ради которых создавать отдельную тему не имеет смысла, давайте задавать простые вопросы в этой теме (типа как "Вопросы от начинающих"). Первый вопрос: Чтобы сконфигурировать одно устройство необходимо загрузить в регистр некоторые данные, формат показан на картинке в прикреплении. Что такое MSB и LSB?
- 8920 replies
-
- Микроконтроллер
- МК
-
(and 2 more)
Tagged with:
-
Для людей которые интересуются темой микроконтроллеров, но не знают с чего начать. Объясню с чего начать, отвечу на интересующие вопросы, бесплатно. От вас нужно сильное желание разобраться в теме. Кому интересно постите сюда. Успевайте, возьму только несколько человек.
- 2880 replies
-
- PIC
- Микроконтроллер
-
(and 3 more)
Tagged with:
-
Приветствую всех! Столкнулся с одной проблемой, Хочу отремонтировать асечку после переполюсовки. Есть подозрение, что cгорел mcu. Вот его имя и фамилия: Искал данный чип в инете. Ничего не нашел... Может что-нибудь подскажите или дадите совет? Премного буду благодарен!
-
Всем привет. Так получилось, что цифровой электроникой я занимаюсь уже более 5 лет (работаю с FPGA). Последний раз я программировал микроконтроллеры еще в университете, и с тех времен у меня в столе пылится десяток ATTiny13, которые были куплены на заре появления Aliexpress для простых университетских проектов. С тех пор многое поменялось: университет я закончил, магистерскую защитил, профессиональные интересы сместились в сторону FPGA и цифрового синтеза, но ощущение того, что я пропустил какую-то важную главу в электронике никуда не делись, а наоборот, только росли. Во время очередной инвентаризации моих закромов с электронными компонентами, я наткнулся на уже упомянутые ATTiny13 и решил, что пора закрыть этот гештальт. Понятно, что в 2022 году интернет полон руководствами того, как работать с микроконтроллерами AVR и более того, в современных реалиях, когда есть STM, возможно эти руководства уже никому и не нужны. Славные времена, когда Atmel был лучшим предложением за свои деньги, остались в прошлом, и только Arduino не потерял актуальности. Поэтому, я решил вести блог не столько ради того, чтобы кому-то что-то объяснить, сколько ради отслеживания личного прогресса и, возможно, обсуждения, если кому-то будет это интересно. Поехали. Как человек, который привык работать с красивыми фирменными отладочными платами, в какой-то момент я понял, что не хочу каждый раз тратить время на пайку макетных плат, а потом еще и искать где на ней отвалился провод. Было решено воскресить свои знания по работе в DipTrace: нарисовать схему, развести плату и отправить все это дело на jlcpcb. Стоит отметить, что до этого, я никогда не пользовался услугами китайских изготовителей плат и было немного боязно за возможность потерять время и деньги, но почитав в интернете про опыт других электронщиков я все-таки решил рискнуть (ну и на самом деле мне очень не хотелось "плескаться" в хлорном железе). После отправки архива с исходными файлами платы, китайский инженер-технолог прислал мне письмо, где указал на найденные им недостатки. Скажу честно, я был приятно удивлен таким сервисом. Замечания были исправлены, архив с исходниками был еще раз отправлен и все что мне оставалось - ждать. Пока я ждал платы, было решено обновить свои знания в программировании на С. Приобрел первую попашуюся книгу по С в ближайшем ко мне книжном магазине. Вот такую: Книга показалось мне удачной. Конечно, в ней ничего не рассказывалось про микроконтроллеры, но в целом чтобы вспомнить синтаксис языка - мне хватило. Таким образом прошел месяц подготовлений, а потом я получил заказанные мною платы. Если говорить о качестве, то он топ за свои деньги. Местами есть мелкие недочеты, но в целом жаловаться не на что. Как Вы могли уже обратить внимание, у меня было некоторое количество разноцветных PLS, и надо признать, после монтажа внешний вид у плат получился как минимум интересный. Т.к. моя основная операционная система на компьютере - linux, то мною были установлены avr-gcc компилятор и avrdude. При попытке вычитать ID микроконтроллера usbasp'ом, avrdude ругался на то, что вычитанный ID не соответствует ID ATTiny13. Проблема решилась снижением скорости на ISP установкой перемычки JP3 на программаторе. После успешного чтения ID была написана простейшая программа мигания светодиодами. Чтобы не заморачиваться со скриптами, было решено читать ID контроллера, компилировать прошивку и загружать ее во flash с помощью Makefile. Далее я поигрался с таймером, ШИМом и wachdog-таймером. Все исходники лежат на GitHub. Там же буду размещать другие примеры работ с АЦП и прерываниями, когда дойду до них. На этом пока завершаю свое повествование. video_2022-08-14_17-56-54.mp4
-
Доброго времени суток! В целом, имеется опыт разработки малых устройств, что-то понимаю, в общем, старательно читаю даташиты, даже понимаю их, но на звание серьёзного инженера (пока что) не претендую. Я пытаюсь использовать I2C на 8-битном PIC16F18326. Сижу в даташитах. Всё понимаю, всё делаю, на мой неопытный взгляд, правильно. Даже копирую полностью рабочие примеры (я даже купил такой же микроконтроллер, как в примере, скопировал код, контролируя, что он делает. Но всё равно не работает - SCL/SDA на 5в и всё тут). Так вот: PIC16F18326 on breadboard (прошу прощения, я хз как это по-русски) на внутреннем 32мгц кристалле. Чип пашет, без проблем моргаю LEDкой. Ну, думаю, щас быстренько подниму I2C. В итоге SCL SDA сидят на 5в без движения. Я использую LED для отладки. Судя по LED, код заloopливается в месте, где проверяется while PIR1bits.SSP1IF==0. Я уже везде был, кучу форумов перерыл. Уже попробовал всё, что мог представить. Я довольно новый в мире PIC, хотел попробовать их, а они ужасно сопротивляются. Уже 2 недели долблюсь безуспешно. Подтяжки 10к, проблем с ними никогда не было. Собственно, вот код (я уже там попробовал повыключать ADC, вычитал про баг, что сначала I2C пины надо делать OUTPUT LOW, а потом уже INPUT из-за бага MSSP, но ничего не помогло). // PIC16F18326 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FEXTOSC = OFF // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled) #pragma config RSTOSC = HFINT32 // Power-up default value for COSC bits (HFINTOSC with 2x PLL (32MHz)) #pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled; I/O or oscillator function on OSC2) #pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) // CONFIG2 #pragma config MCLRE = ON // Master Clear Enable bit (MCLR/VPP pin function is MCLR; Weak pull-up enabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config WDTE = OFF // Watchdog Timer Enable bits (WDT disabled; SWDTEN is ignored) #pragma config LPBOREN = OFF // Low-power BOR enable bit (ULPBOR disabled) #pragma config BOREN = ON // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored) #pragma config BORV = LOW // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V) #pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset) #pragma config DEBUG = OFF // Debugger enable bit (Background debugger disabled) // CONFIG3 #pragma config WRT = OFF // User NVM self-write protection bits (Write protection off) #pragma config LVP = ON // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored.) // CONFIG4 #pragma config CP = OFF // User NVM Program Memory Code Protection bit (User NVM code protection disabled) #pragma config CPD = OFF // Data NVM Memory Code Protection bit (Data NVM code protection disabled) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h> #include <htc.h> #include <stdio.h> #include <stdint.h> #define _XTAL_FREQ 32000000 void i2c_is_idle(void){ //while(!PIR1bits.SSP1IF); //while(SSPCON2bits.SEN==1 || SSPCON2bits.RSEN==1 || SSPCON2bits.PEN==1 || SSPCON2bits.RCEN==1 || SSPCON2bits.ACKEN==1 || SSPSTATbits.R_nW==1){}; while(PIR1bits.SSP1IF == 0){ PORTCbits.RC2=1; }; // SSP1IF is set when operation complete PORTCbits.RC2=0; PIR1bits.SSP1IF = 0; // clear interrupt flag } void i2c_start(void){ i2c_is_idle(); SSPCON2bits.SEN = 1; } void i2c_rep_start(void){ i2c_is_idle(); SSPCON2bits.RSEN = 1; } void i2c_stop(void){ i2c_is_idle(); SSPCON2bits.PEN = 1; } void i2c_write(uint8_t i2c_data){ i2c_is_idle(); SSPBUF = i2c_data; while(SSPSTATbits.BF != 0); while(SSPCON2bits.ACKSTAT != 0); } uint8_t i2c_read(uint8_t ack){ uint8_t recieve =0; i2c_is_idle(); SSPCON2bits.RCEN = 1; while(SSPSTATbits.BF != 1); recieve = SSPBUF; SSPCON2bits.ACKEN = ack; return recieve; } void i2c_init(void){ TRISCbits.TRISC0 = 1; TRISCbits.TRISC1 = 1; SSPSTATbits.SMP = 1; SSPSTATbits.CKE = 0; SSPCONbits.SSPM = 0x08; SSPADD = 79; SSPCONbits.SSPEN = 1; } void main(void) { ANSELCbits.ANSC0 = 0; //ADC RC0 OFF ANSELCbits.ANSC1 = 0; //ADC RC1 OFF TRISCbits.TRISC2=0; //LED PIN TRISCbits.TRISC0=0; //MSSP bug counter TRISCbits.TRISC1=0; //MSSP bug counter //__delay_ms(5); LATCbits.LATC1=0; //MSSP bug counter LATCbits.LATC0=0; //MSSP bug counter //__delay_ms(5); INTCONbits.GIE=1; //global interrupt en INTCONbits.PEIE=1; //peripheral interrupt en ADCON0bits.ADON=0; //unpower adc just in case i2c_init(); //THIS SETS TRISC BITS FOR SCL SDA while(1){ i2c_start(); i2c_write(0x3C); i2c_stop(); } return; } Задача: просто увидеть коммуникацию на SCL SDA, я уже потом по даташитам таргет девайсов без проблем напишу дрова. Не получается именно осуществлять коммуникацию. Подскажите, пожалуйста, я не понимаю, где я дурак, а между тем волос на голове становится всё меньше, а те, что остались, стремительно приобретают серый окрас, ибо 2 недели я долбаюсь с одной проблемой. Благодарю за ваши советы. Спасибо.
-
Простой селектор входов для усилителя мощности. Выполнен на микроконтроллере ATtiny13A. Подключение выполняется по следующей схеме: Естественно, что вместо светодиодов должны стоять реле. В 1 кбайте памяти микроконтроллера спрятан следующий функционал: - использование от 2-х до 4-х входов, количество которых определяется автоматически (неиспользуемые 4-й или 3-й и 4-й входы следует подтянуть к питанию через резистор 5-10 кОм); - переключение одной кнопкой "по кругу"; - запоминание последнего выбранного входа; - задержка при включении (2 c); - защита от дребезга кнопки; - mute между переключениями каналов (0,5 c). При программировании следует установить фьюзы следующим образом: HIGH - 0xFF, LOW - 0x79. То есть нужно отключить делитель частоты на 8, и выбрать источник тактирования - внутренний RC-генератор на 4,8 МГц с задержкой старта в 64 мс. Платы под схему нет, предполагаю, что каждый нарисует себе сам под необходимые детали. На видео показан макет, демонстрирующий работу селектора: Скачать файл прошивки
-
Ремонт колонок TDE261/2.1 (PT2313L, MCU, ET6202, TDA2030A)
Reptile posted a topic in Аудиоаппаратура
Доброго времени суток. Пытаюсь восстановить работоспособность колонок Top Device TDE 261/2.1. Колонки не раз ремонтировалась по части УНЧ, при очередном ремонте по ошибке (одинаковые разъемы) с трансформатора было подано переменное питающее напряжение на входы (разъем AUX/MP3) аудиопроцессора PT2313L (3,10,14 ноги - AGND, R_IN2 L_IN2). В результате чего выгорел сам аудиопроцессор PT2313L. PT2313L был заменен. Но колонка по прежнему не запускается. Как я понял, не запускается сам PT2313L, на его аудиовыходах (ноги 24, 25) сигнала нет. Передняя панель работает: индикация, кнопки, енкодер. Имеется подозрение, что вместе с процессором выгорели линии DATA и/или CLK на MCU, так как MCU и PT2313L соединены по этим линиям напрямую друг с другом. В МК и всей этой цифровой штуке не очень шарю, не знаю, как грамотно проверить работоспособность этой цифровой части, поэтому прошу помощи - Возможно ли какими-либо способами восстановить колонку или уже всё... Из приборов, к сожалению, только мультиметр, осциллограф отсутствует. Ниже немного измерений. Напряжения на линиях: STD-BY-ждущий режим (в скобках рабочий режим): DATA - 2.31В (1.9В). CLK - 0.125В (0.135В). Сопротивление между выводами: CLK_MCU-DATA_MCU - 47 Ом. CLK_MCU/DATA_MCU-GND - около 0.22 Ом и там и там. Звонится в обе стороны. Питание MCU 5В, (4.6В STD-BY-ждущий режим, 4.0В рабочий режим и со временем также почему-то может падать до 3.6В) MCU - не известен, нет маркировки. 18 Выводов, DIP. Ноги MCU, которые удалось опознать: 1 - DATA 18 - CLK 3 - GND (?) 5 - GND (?) ? - они соединены вместе 14 - VCC 17 - not used (n/a) 15, 16 - OSC ET6202 - управление индикатором, Control LED drive circuit Фото плат (под сполером) и даташиты прилагаются. Схемы данных колонок не имеется. Все что удалось найти это схема чуть более старшей модели TDE280/2.1, с данными колонками она мало что общего имеет, лишь общий принцип, узлы довольно сильно отличаются, но прикреплю на всякий, для общей информации. PT2313L ET6202 TDE280- 19 replies
-
- ремонт колонок
- PT2313L
-
(and 1 more)
Tagged with:
-
Господа, здравствуйте. Не ругайтесь, пожалуйста, я студент и я учусь. Возможно, вопрос будет глуповат. Подскажите, пожалуйста, чем можно заменить PIC32MX775F256H для САПР Proteus. Или намеки как подобрать анлог. Имеется код и принципиальная схема некого проекта на данном микроконтроллере(в Proteus нету 32х битных PIC). Я хочу создать его в Proteus,разобрать его и с ним поработать, но необходим другой микроконтроллер(скорее всего 16битный PIC) т.к. данного в протеусе нету. Повторюсь, что я учусь,а учиться лучше на примерах, а не изобретать колесо. Спасибо.
-
Добрый день! Только знакомлюсь со схемотехникой и микроконтроллерами. Ситуация: есть нагрузка - мотор 12 В. На ножку микроконтроллера, питаемого батареей 4 В, подадим лог. 1 , которая соединена с базой транзистора. К коллектору этого транзистора "плюс" от другого источника - 12 В. К эмиттеру подсоединен плюс от мотора. Минус мотора к минусу питания - 12 В. Минус от батареи микроконтроллера(4 В) объединен с минусом 12 В. Вопрос: можно ли базу транзистора питать от одного источника тока (который питает связанный с ним микроконтроллер), а база будет регулировать ток от другого источника? Минусы действительно нужно объединять? Проверил в Multisim'e без MCU - просто реостатом менять ток на базе - работает - через К-Э начинает течь больший ток. Но это симулятор, а в реальности не хотелось бы микросхему пожечь Визуально представить можно на картинке (sample.png).
-
Мы (cesanta.com) создаем open-source продукт - прошивку для WiFi модулей с поддержкой Javascript. Здесь - описание, документация и ссылка на презентацию https://github.com/cesanta/smart.js На данный момент поддерживаются ESP8266 и CC3200 WiFi модули. Если есть желание реализовать логику устройства на Smart.js - буду рад помочь, обращайтесь: support@cesanta.com