Поиск по сайту

Результаты поиска по тегам 'Atmega'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • ATX->ЛБП Переделки
  • Юмор в youtube Киловольты юмора
  • Надежность и группы продавцов Радиолюбительская доска объявлений exDIY
  • разные темы Переделки

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Найдено 67 результатов

  1. Програмный UART CVAVR

    Всем привет. Сделал устройство с семисегментным индикатором,но понадобилось снимаемые значения еще и на пк выводить. А порт UART'а занят,связь нужна симплексная,т.е. в одну сторону. Можно ли как-то вывести инфу на порт В0?Или проще задействовать реализацию железа,а индикатор перебросить на другие порты?
  2. Проблема с чтением PCF8574AT (LCD/I2C)

    Здравствуйте! Пишу программу на C++ для управления LCD (HD44780) по I2C через модуль расширения портов ввода/вывода PCF8574AT. void LCD_I2C::readBF() { transmitByte(0b00001110); //transmits E, RW set to HIGH and RS, set to LOW _delay_ms(5); transmitByte(0b00001010); //transmits E, RS set to LOW and RW set to HIGH _delay_ms(5); initRestart(); transmitAddrRW(0b01111111); //sends PCF8574AT address + SLA+R do { receiveDataAck(); PORTA = storage; } while((storage & (1 << BF)) != 0); //wait until BF is 0 initRestart(); transmitAddrRW(0b01111110); } Метод void transmitByte(uint8_t data) после инициализации состояния "Старт" и отправки адреса устройства + SLA+W отправляет байт данных по TWI с ожиданием бита подтверждения (команды работают верно, проверял по регистру статуса TWI - 0x08, 0x10 и 0x24). Метод void transmitAddrRW(uint8_t address) отправляет соответственно SLA+W/R + адрес устройства (команда работает также верно). Нареканий к работе TWI у меня нет, т.к. недавно с его помощью успешно запустил часы DS1307 с интеграцией LCD. После передачи запроса на чтение флага занятости инициализируется состояние "ПОВСТАРТ", отправляется адрес устройства + SLA+R, далее идет цикл - запрос байта данных (состояние выводов PCF8574AT) с отправкой бита подтверждения uint8_t receiveDataAck() (команды работают также верно, возвращает storage = TWDR) и вывод storage на порт А микроконтроллера (там установлены светодиоды). Чтение регистра данных TWDR после принятия байта данных (receiveDataAck()) дает следующий результат - 0b00000010 - установлен только бит RW микросхемы. Таким образом, флаг занятости BF = DB7 = 7й бит оказывается сразу же сброшенным, происходит мгновенный выход из цикла - контроллер дисплея не успевает скушать информацию, и инициализация не выполняется (неудачную инициализацию определяю по отсутствию курсора). Ожидалось, что флаг занятости будет установлен в единицу и произойдет несколько итераций перед выходом из цикла. При замене метода ожидания сброса флага занятости BF на программную задержку в 250 мс везде, где это требует datasheet - инициализация происходит успешно (появляется курсор, как и должно быть). Вопрос: что можно сделать, чтобы вместо _delay_ms(250) использовать readBF(), т.к. этот путь мне кажется более верным (уж очень не хочется использовать задержку .__.)? Возможно, проблема в микросхеме, которая неверно выдает информацию при чтении? (Имеется вторая микросхема, она вообще не работает:D) З.Ы. На фото виден результат чтения флага BF и Adress Counter - установлен только бит RW. З.Ы.Ы Кому интересно - вот функция main(). Повторюсь - проблема только в методе readBF(): void LCD_I2C::init() { setBitRate(20000); initStart(); transmitAddrRW(0b01111110); //send PCF8574AT address + SLA+W _delay_ms(60); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(20); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00110000); //function set 8-bit operation _delay_ms(5); sendInstruction(0b00100000); //function set 4-bit operation readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00100000); //function set 4-bit operation, 2 lines, 5x8 dots sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display off, cursor off, blinking off sendInstruction(0b10000000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display clear sendInstruction(0b00010000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //entry mode set increment, display shift off sendInstruction(0b01100000); readBF(); //_delay_ms(250); //debug!! sendInstruction(0b00000000); //display on, cursor off, blinking off sendInstruction(0b11100000); readBF();/ }
  3. Прошу помощи, мозг уже кипит.... Итак, по порядку. Для удобства проектирования устройств вытравил переходник с TQFP на DIP, на плате переходника сразу замкнул лини питания (4, 6 и 18) и земли (3, 5 и 21). Atmega48, 88, 168 и 328 в этом переходнике шьется замечательно, а вот Atmega8 (проверил 4 штуки из разных партий) через этот переходник не шьются и не читаются! При этом, прошитый заведомо мк Atmega8 прекрасно работает в этом переходнике! Так-же мк, которые не шьются в этом переходнике - прошиваются без него тем-же программатором (usbasp). Вот что пишет дудка: avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: error: programm enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude.exe done. Thank you. Внимание, вопрос! Почему Atmega8 прошивается при подключении vcc только на 4 пин и gnd только на 21 пин, и не прошивается при полном подключении линий vcc и gnd мк?
  4. WS2811 и WS2812

    Друзья помогите разобраться. Приобрел управляемые диоды WS2812 многим уже известные. Поиски доступных для новичка исходников результатов не дали. Сталкивался с скечами для Ардуино, библиотеками NeoPixel. Во первых не забрался, во-вторых принципиально хочу сообразить всё это на на своей плате на Attiny или Atmege. Сам по себе принци понять логику. Из даташита понятно что диды управляются 24битами, таймаутами и т.п., но никак не соображу как послать биты в контроллер. Только начал разбираться с ШИМом. Думал тут чтото подобное. Помогите новичку с самого простого.
  5. Контактор и Atmega виснет

    Помогите с проблемой, собрал устройство все работало отлично до подключения пускателя, часто когда он отключается то либо зависает Atmega (при чем порты остаются включенными или отключенными как были в работе, но программа перестает выполняться), либо отваливается датчик температуры, попробовал подключить осциллограф на питание 5 вольт, идет ровная полоса в момент включения и выключения. Что попробовал сделать: подключил заземление накрыл плату фольгой и то же заземлил Все что перечислил не помогло. подключено все следующим образом, выход контроллера -> транзистор -> реле с диодом, после реле идет пускатель на 220 вольт. Что можно попробовать еще? может попробовать снабер поставить на контактор, уже низнаю что предпринять, понятно что идет выброс, но как его победить
  6. Atmega Fusebit Doctor

    Всем привет! Ну, кто тут начинает осваивать AVRки? Тогда вам просто необходимо обезопасить себя от первых неудачных экспериментов с фьюзами. Представляю свою версию Atmega fusebit doctor Есть несколько собранных экземпляров. Небольшая платка в SMD + разноцветный шлейф с подписанными пинами. Также есть адаптеры для подключения контроллеров в DIP и TQFP корпусах. Всё проверено, работает. Цена устройства 800р. Москва, доставка в регионы почтой и транспортными компаниями. Пишите в личку либо на dklab24(гав)gmail.com
  7. Помощь по CVAVR

    подскажите, уважаемые форумчане, заработает ли такая программа? суть её такова: подключаем матричную клавиатуру, 4х3, считываем с неё нажатия кнопок, которые соответствуют цифрам собираем 3-х значное число, которое затем нужно конвертировать из 10-й в 16-ю систему счисления p.s. только начал кодить, поэтому ОЧЕНЬ! прошу: если имеются ошибки, покажите как было и как должно быть, желательно с пояснениями заранее благодарю new.c
  8. Спидометр на Bascom

    Делаю устройство, в составе которого есть спидометр. Мк - Atmega32, работающий на частоте 16МГц. Датчик - перфорированный диск+оптопара, 10 импульсов на оборот. Вопрос к знатокам Bascom: насколько точно измеряет длину импульсов команда Pulsein? Можно ли ей мерить длину импульсов и таким образом считать частоту вращения вала? В данный момент реализовано на таймере1, но он понадобился для другой фичи.
  9. Тестирую код assembler для AtMega8515, правильные значения на PORTC чередуются с какой-то чушью, значения на порт передаются только в 2х местах в коде может ли это быть ошибкой Proteus?
  10. Прошу помочь разобраться в причине странного поведения Atmega8515L суть заключается в следующем: МК принимает по i2c свой slave адрес в следующем такте отвечает ACK и далее должен передать 8 битный код в данном примере (0b10001100), но функция передачи кода иногда запаздывает на случайное число тактов . Кто-нибудь сталкивался с подобным явлением, в чем может быть причина?
  11. Какую минимальную задержку можно поставить в atmega? Есть ли альтернатива функциям типа _delay_us _delay_ms? Как посчитать время нарастания фронта pull-up 10kohm 3.3v?
  12. В процессе выполнения команды MK не выходит из функции (причем на строчку перед закрытием скобки оной попадает). Есть ли какие либо ограничения при программировании на С, учитывает ли компилятор количество хипа, расстояние в 64 адреса для rjmp итд. Каких правил придерживаться чтобы писать грамотный, оптимизированный код?
  13. Надо устроить обмен данными между FPGA и Atmega по I2C. FPGA на отладочной плате запитывается по USB от ПК, atmega8515L подключена навесным монтажом. В данный момент атмегу и pull-up резисторы от i2c запитываю от I/O ноги ПЛИС, возникают непонятные перезагрузки ПЛИС, может ли это быть вследствии перегрузки ? И как правильно запитать PULL-UP и Atmega?
  14. Доброго времени суток, решил начать потихоньку осваивать МК, т.к схемы собранные на рассыпухи не отличаются высокой точностью и стабильностью. Начал ставить задачи по этапно - моргание светодиодом -> моргание светодиодом после нажатия на кнопку - > моргание светодиодом при нажатии на кнопку в течении 40 секунд-> всё остальное что может делать МК в течении этих 40 сек. На данном моменте застрял на 3-ем этапе, никак не могу разобраться как прикрутить работу таймера к своему коду, листинг прилагаю (1- программа моргания светодиодом 3 раза, после нажатия на кнопку, 2 - изыскания на тему таймера): #include <mega8.h> #include <delay.h> #include <interrupt.h> #include <io.h> #define PD2 2 // Переобозначение 2 пина порта D на его имя. void main(void) { PORTD = 0b10000000; // Подключаем подтягивающий PULL-UP резистор к 2 пину порта D. DDRD = 0b00000000; // Настроим порт D на ввод информации. DDRB = 0b11111111; //Настроим порт D на вывод информации. while(1) // Бесконечный цикл опроса кнопок. { if (PIND &= 1<<PD2) // Считываем 2 пин порта D. { PORTB =0b00000000; // Если 1 (кнопка не нажата), то гасим светодиод. } else { PORTB = 0b00000001; // Если 0 (т. е. кнопка нажата), то зажигаем светодиод. delay_ms(500); PORTB = 0x00000000; delay_ms(500); PORTB = 0x00000001; delay_ms(500); PORTB = 0x00000000; delay_ms(500); PORTB = 0x00000001; } а теперь таймер: #include <mega8.h> #define s; int s; // переменная для хранения секунд // Обработка прерывания по совпадению interrupt [TIM1_COMPA] void timer1_compa_isr(void) { s++; // увеличиваем переменную каждую секунду if(s>59) // обнуляем секунды после 59 { s=0; } TCNT1=0; //обнуляем таймер } void main(void) { TCCR1A=0x00; //настройка таймера TCCR1B=0x05; TCNT1=0x00; //здесь увеличиваются тики OCR1A=0x1E85; //записываем число в регистр сравнения TIMSK=0x10; //запускаем таймер }
  15. Продам Платы Валидаторов, бу, рабочие от 50 до 150 рублей плата микросхема 1шт 50р Индикатор жидкокристаллический: BL128128C2CRNHN$, OLED, 128 x 128, RGB, DC/DC - 550рOLED- Displays M00480_VGM128064B0B01 - 340р
  16. Всем добра! Подскажите, если на плате оставить для пошивки 4 провода: 5В, GND, RX, TX можно ли будет отлаживать Atmega48 и прошивать его не как обычно с помощью (SPI)? Опыта прошивки пока нет, но планирую прошивать с помощью avrdude.
  17. Продам микроконтролеры ATmega 1284P-AU Производитель ATMEL 100 шт. (на поддоне) - 120 руб.\шт.
  18. Требуется программист работающий с AVRами (меги) удаленка, на текущий момент открыты 2 проекта, за подробностями писать на: furia(dot)fly(гав-гав)gmail.com Язык желательно ASM, но не против и С
  19. Добрый день. Помогите запустить схему в протеусе. Никак не могу ничего сделать ни дисплей ни юарт не работает. Протеус 8,4 сп0 True RMS.zip
  20. Всем привет. Просьба посодействовать в исправлении кода для термометра. Так как сам я в этом новичек, то код собирал из трех чужих проектов. Реализация такова, подключение термопары через микруху Max6675 к Atmega и вывод данных на LCD экран. В архиве прилагаю проект Atme Studio 7 и принт скрин из Протеуса. Ошибка заключается в неправильных показаниях температуры Test1.rar Вот код, чтоб не скачивать проект. #define F_CPU 1000000UL #include <util/delay.h> #include <avr/io.h> #include "max6675.h" #include "LCD.h" uint16_t gettemp(void); //Funktionsdeklarationen void initavr(void); //gettemp () returns absolute Temperature in Temp * 4 °C - in 1/4°-steps // uint16_t gettemp(void){ //Temperatur holen. uint8_t bit = 0, bitnr = 12; //Variablen uint8_t foo1 = 0; uint16_t Rohdata = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen bit = 15 - foo1; //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if((bit <= 14) && (bit >= 3)){ //Einfach mal die 12 relevanten von den 16 Bits ausfiltern if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... bitnr--; //zдhlen wir runter... Rohdata |= (1 << bitnr); // und schieben eine 1 an bit x }else{ //WENN dem NICHT so ist, dann... bitnr--; //zдhlen wir runter... Rohdata &= ~(1 << bitnr); //und schieben eine 0 an bit x } }else{ //weis au nimmer, was das soll. bitnr = 12; } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return Rohdata; //Das ist doch mal was ;D } // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected // (to enable this feature T- must be connected to GND) uint8_t getTC(void){ //Temperatur holen. //Variablen uint8_t TC = 0; uint8_t foo1 = 0; CS_Port &= ~(1 << CS); //Chip select anlegen for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen. SCK_Port |= (1 << SCK); //SCK hi if(foo1 == 2){ //das 3. bit ist fьr uns relevant. if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann... TC = 0; }else{ //WENN dem NICHT so ist, dann... TC = 255; } } SCK_Port &= ~(1 << SCK); //SCK LO } CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. return TC; //Das ist doch mal was ;D } //Initiates the MAX6675 and IO-pins void init_6675(void){ //AVR initialisieren SO_DDR &= ~(1 << SO); CS_DDR |= (1 << CS); SCK_DDR |= (1 << SCK); //IOs setzen SO_Port |= (1<<SO); //Pullups an. (Wichtig fьr MAX6675, der kann nicht anders, hab ich festgestellt... CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig. SCK_Port &= ~(1 << SCK); //SCK LO } int main(void) { init_port();// инициализируем порт ЖКИ lcd_init();// инициализируем ЖКИ init_6675(); while (1) { char buffer[8]; int temp; temp = gettemp(); temp /=4; lcd_gotoxy(0,0);//перемещаем курсор в верхний левый угол sprintf(buffer, "t=%i\xdf\C ", temp); // так как тут не плавающая запятая то числа с запятой записываются так %i.%i, код градуса записывается так \xdf lcd_putstring(buffer); } } вставляете код пользуйтесь тегами [CОDE][/CОDE] редактора сообщений, кнопка <>
  21. Здравствуйте, люди Добрые. Нужна помощь. Мне нужно написать на моем контроллере avr atmega8535 четырехразрядный регистр прямого сдвига, то есть параллельный код он преобразует в последовательный и сдвигает его нажатием кнопки вправо( вот видео, начинать смотреть с 2:50)http://ideone.com/RzAt9G вот сам код, все вроде правильно, ошибок не вижу, но на контроллере не работает. Программа задержки нужна для устранения дребезга кнопки. Пожалуйста, найдите ошибку, будьте добры. Схему попытался нарисовать с протеусе, на ней тоже, как и на настоящем контроллере, ничего не работает, хотя в авр студио все летает.
  22. Добрый день! Есть мысль сделать ИБП с возможностью регулирования выходного напряжения с помощью атмеги, например. Завис на этапе, так сказать, методологии: как будет правильнее делать - регулировать выход обратной связью прямо в TL494 или делать отдельно БП на максимальное напряжение, и отдельно блок управления выходом на отдельном ШИМе? Хотелось бы управлять напрямую TL-кой, но готовых примеров не нашел, опыта построение пуш-пулов нет (пока набираюсь теории, готовлюсь), есть только вопросы по теоретической части. Читаю вокруг контроля мертвого времени и ноги фидбэк (это оверрайд обоих ОУ обратной связи?) - чем из них лучше уменьшать выходное напряжение с помощью МК? В общем, пока одни вопросы. FAQ-и читаю, но, боюсь, потону в подробностях..
  23. Доброго времени суток! У меня имеется: - Atmega1284 - Простой COM программатор - hex файл (оригинал прошивки на Си тоже имеется) Как прошить первое с помощью второго? *в начале планировал через PonyProg, но как я понял он с этим МК не захочет работать. Как можно выйти из этой ситуации? P.S. Варианты "Сделай себе нормальный УСБ программатор" не подойдут. Запчастей нет, а если заказывать, то ждать долго, да и зачем его собирать, если я не знаю буду-ли я им пользоваться в дальнейшем. На один раз делать... хм... не охота...
  24. Добрый день, возникла неприятная проблема с фьюзами. Первоначаль у меня была схема с контроллером AtMega8 с кварцевым резонатором на 16Mhz. Мне пришлось сменить Atmega8 на Atmega168. Но тут возникла проблема с прошивкой. Первоначально фьюзы CKSEL3..0 были выставлены в 0010. то есть частота от внутреннего источника. С помощью Uniprof я прошил эти фьюзы на 0101. Теперь контроллер не откликается и не работает. Умер... соответственно фьзы обратно прошить не могу. Программатор Громмова, чтобы прошить я вытаскиваю контроллер из моей сзхемы и вставляю в программатор, кварцевого резонатора в программаторе нет. Можно ли реанимировать устройство?
  25. Добрый день! Стоит задача с компьютера задавать время отсчета таймера собранного на ATmega и семисегментном индикаторе в режиме онлайн. То есть организовать связь для обмена данными с микроконтроллером ATmega. Желательно используя USB дабы не искать компьютер с COM-портом. Подскажите, какой из интерфейсов выбрать исходя из стоимости компонентов и сложности самого решения?