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

Поиск

Показаны результаты для тегов 'avr'.

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

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

Тип контента


Форумы

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Нейронные сети и машинное обучение (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Методы и средства верификации ПЛИС/ASIC
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Ремонт и отладка
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

  1. Возникли проблемы с реализацией цикличного мигания светодиодов с переключением скорости и направления по кнопке. Схема не реагирует на нажатие кнопки на PD7 (изменение скорости), изменение направления (на PD6) происходит только тогда, когда не горит ни один диод. Обязательно нужно применить прерывания по таймеру-счетчику, Преподаватель рекомендовал библиотеку axlib/timers.h . Задание: 8 светодиодов сделать сквозное переключение (циклично). Введем несколько режимов скорости (3 режима). Взять в 2 раза увеличивающий период (использовать библиотеку по таймерам) При работе с таймер счетчиком использовать прерывание Подключить семисегментый индикатор (будут отображаться только режимы скорости). 2 кнопки (одна меняет скорость, другая направление). Схема: Код программы: Сам проект прикреплен. project_Code_sxema.zip
  2. VS Code+CMake (Windows)

    Создал репозиторий для тех, кто хочет попробовать использовать связку VS Code + CMake (Windows) в качестве окружения разработчика для AVR и Arduino. https://github.com/ViacheslavMezentsev/demo-avr-cmake Для клонирования можно использовать команду: git clone --recurse-submodules --jobs 4 https://github.com/ViacheslavMezentsev/demo-avr-cmake Краткий обзор репозитория с CMake демо-проектами для AVR. Часть 1:
  3. добрый день надеемся на то, что вы своим опытом и знаниями поможете нам. заказали разработку контроллера (схема/печать/корпус/прототип) контроллер промышленный, будет использоваться в "грязной среде", с помехами, нужна соотв. защита контроллера, схемы, входов. т.е. мы для себя (для своих целей) - заказали разработку контроллера у «разработчика» и сейчас вместе с «разработчиком» «уточняем нюансы схемотехники схема и печать разработчиком сделана, сейчас разбираемся "что к чему". считаем, что некоторые моменты в схеме надо доработать, переписываемся с разработчиком, правим. уперлись в входную часть схемы, грозозащиту. у контроллера есть неск. типов входа - датчик "сухой контакт/концевик" (замыкатели/размыкатели) - датчик "виганд" (передача по сет.кабелю/RJ45) - сетевой интерфейс (передача по сет.кабелю/RJ45) схема контроллера запитывается от 12В (сетевой DC-DC) через изолированный DC-DC 12-3.3В т.е. имеется цифровая земля 3.3В / ARM-ядро (чистая) и грязная 12В + все, что "осталось" до преобразователя DC-DC 12-3В все датчики развязаны через "оптику" сетевой интерфейс тоже "как-бы развязан", чип запитывается от 3.3В, внешняя часть сет.модуля - RJ45 разьем и разделительный трансформатор ЗК - шина "заземление-корпус" (сокращение) сама по себе шина "ЗК" не предусмотрена разработчиком + корпус был подобран пластиковый. мы считаем, что эта шина необходима, плюс необходимо так-же на "грязную землю" поставить разрядники (не только на сигнальные) и сливать имненно на "ЗК" разработчик считает что сливать помехи можно прямо на грязную землю, в связи с чем разрядник устанавливает только на сигнальные входные цепи, а "земляные" (идущие в паре с сигнальным) - без разрядника, и использует "грязную землю" как "ЗК" на грязной земле у нас - входные сигнальные линии - "разделительная" оптика - индикаторные светодиоды - питание реле но тем не менее, мы считаем, что надо делать "правильно". ... пожалуйста, поделитесь вашим мнением на данную ситуацию если нужны более подробные описания, блок схемы, рисунки - спрашивайте. спасибо
  4. Желаю здравствовать, кому не жалко подсказать, если врач не врёт - ←doctor (HVPP+HVSP) version 2.14b HVPP MODE Init programming... DONE Chip erase... DONE Read signature... 1E 96 09 Found... Atmega 644A Read fusebits... 62 99 FF Lockbits... FF (no lock) Repair fuses isn't required. Congratulation из обвязки что ещё туда добавить (боязно в изделие запаивать опять, т.к в колодке дуда пишет чип не отвечает), чтобы прочиталась в дуде? Заведомо хороших нет.
  5. Ищу работу/подработку/стажировку, связанную с программированием микроконтроллеров AVR, STM32. Работа в программах AtmelStudio, Proteus, KeiluVision, CubeMX. Знание основ языка программирования С++. Желание развиваться в данном направлении. [email protected]
  6. Atmega328 ADC/ИОН/Aref/R32K

    день добрый, уважаемые колдуны! :о) есть некоторое непонимание... URL по ссылке говориться про > имеется встроенный резистор 32 кОм, подключенный к выводу AREF упоминание про даный резистор так-же встречал в сети неск. раз в частности, по пункту > 23.5.2 ADC Voltage Reference упоминания о сопротивлении нет возможно не прав, ткните носом, заранее благодарен, спасибо :о)
  7. Здравствуйте, подскажите пожалуйста, если кто знает. Как устранить ошибку Warning: run_S00-22: illegal opcode P0:65535, P1:0 в среде IAR Embedded Workbench IDE - AVR (версия 7.30.5)? Ошибка появится при запуске режима отладки (Download and Debug или Debug without Downloading).
  8. день добрей, господа кладуны! :о) исходные следующие - arm-none-eabi - arduino-DUE (платформа) - __attribute__ alias пример-отладка static int oldname(int x, int y) { return x + y; } static int newname(int x, int y) __attribute__((alias("oldname"))); void setup(){;} void loop() {;} согласно url выдает ошибку alias_function:6:12: error: 'int newname(int, int)' aliased to undefined symbol 'oldname' static int newname(int x, int y) __attribute__((alias("oldname"))); ^~~~~~~ exit status 1 первый раз выкрутился препроцессором теперь надо однозначно алиас п.с. спасибо, кидайтесь ... :о)
  9. добрый день исходные: - arm-toolchain (10.3.1, 11.x, 12.2) - arm_gdb-12.1_py3.7 - openocd-0.12.0 - atmel ice (отладчик) - sam3x8e (прототиа arduino-due) - slackware-14.2 x64 отлаживаю "библиотеку" на си - передача данных по 2м проводам (wiegand): - импульс D0 -> получили "0" - импульс D1 -> получили "1" будет использоваться неск. экземпляров RFID-датчиков, поэтому планирую сделать вообще без "механизмов блокировки". в прерывании только устанавливаются флаги, все остальное делается в основном цикле. в силу "обстоятельств" (унаследовано с прототипа) подключение пинов данных D0/D1 - на разных портах (по идее это не проблема, на ардуиновском "тестовом скетче" с таким-же расположением пинов - rfid-карта читается без проблем, но, походу, конечно протестирую еще и "все на одном порту") текущий код на си. читает карту, но с особенностями. к основному номеру карты (в старший разряд) добавляется еденица и последний (младший) разряд, соотв. обрезается. для отладки по шагам вместо "виганда" подключил две кнопки (c rc-цепочкой, сигналы нормальные, дребезг отсутствует, кнопок много, менялись/проверялись) выяснилось (в отладчике): - импульс на D0 - прерывание срабатывает 1 раз и далее все "печенькой" :о) - импульс на D1 - прерывание срабатывает 3 раза 1й раз - все по делу, "на падение сигнала", как и должно быть 2й раз - не по делу, "на подьем" (возвращение кнопки обратно), причем 2раза подряд и еще для "запуток" - при чтении (без отладчика, напрямую) только одна, самая первая, неправильная 1-ца добавляется в начало (в старший разряд) а далее серийник читается правильно. порты D0/D1 инициируются на вход, включается подтяжка, ни чего особенного.код, выкусы (упрощенка) кода: // // структура (выкус) // struct struct_Wiegand { TPinOut d0; // D0 пин TPinOut d1; // D1 пин uint8_t volatile data_flag[2]; // два флага на сработку D0/D1 ... }; typedef struct struct_Wiegand TWiegand; extern TWiegand* lst_rfid[RFID_NUM_DEV]; // список указателей на структуры // // в теле реализации // TWiegand w1={ {PIOA,19}, {PIOC,18}, {PIOA,20}, 0, {0,0}, 0, 0 }; TWiegand* lst_rfid[RFID_NUM_DEV] = { &w1 }; // // регистрация/добавление обработчиков прерываний // механизм/список такой-же как в ардуино // isr_enb_port (lst_rfid[0]->d0.pio, lst_rfid[0]->d0.pin, isr_rfid0_D0, FALLING); // D0 isr_enb_port (lst_rfid[0]->d1.pio, lst_rfid[0]->d1.pin, isr_rfid0_D1, FALLING); // D1 // // обработчики // void isr_rfid0_D0() { lst_rfid[0]->data_flag[0] ++; } void isr_rfid0_D1() { lst_rfid[0]->data_flag[1] ++; } других инициализаций прерываний нет (отрубал все что можно). если закомментировать строку вызова "добавления прерывания" для D1, то прерывание на D1 не срабатывает подобрал ссылки "околотемы" URL1 URL2 URL3 URL4 URL5 URL6 пока буду изучать ссылки, доки, даташит пинайте, кидайте помидоры, идеи, ссылки, все что угодно! можно просто побалагурить по теме! :о) спасибо.
  10. добрый день т.к. контроллер относится к SAM, то "обычным" способом запустить печать не получилось _FDEV_SETUP_WRITE was not declared in this scope ... ну кто-бы сомневался?! :о) в инете нашел единственный вариант для SAM url / Simple print functions for Atmel SAM microcontrollers using DMA в описании указан "наш чип" как протестированый собирается без проблем (кроме варнингов, возможно следует присмотреться?!, undefined reference - это не хухры мурхры) печать не работает (пробовал по разному) варнинги (пути к тулчейну усечены, для удобства восприятия) проект "перенесен" от сюда url / "Low level" programming of the Arduino DUE SAM3 controller with a custom IDE в нем используются arduino-sam библиотеки ~/.arduino15/packages/arduino/hardware/sam/1.6.12 makefile немного подрихтовал под себя (библиотеки не копируются в каталог проекта, а используются "как-есть", установленные в систему toolchain пробовал разные версии arm-none-eabi - 11.2 - 11.3 - 12.2 - 5.2.1 так-же arduino-toolchain ~/.arduino15/packages/arduino/tools/arm-none-eabi-gcc/4.8.3-2014q1/bin/arm-none-eabi-XXX версия toolchain выбирается установкой TOOL_CHAIN_DEF = ARDUINO TOOL_CHAIN_DEF = ARM_DEF TOOL_CHAIN_DEF = ARM p.s. понимаю, что можно взяться разгрызать - реализацию класса Arduino-Due/Serial.xxx - реализацию стандартной печати в asf-library и то и другое, понятное дело, работает, но хотелось-бы пока разобраться с данной библиотекой как обычно, принимаются любые идеи/ссылки/советы по делу, помидоры в разумных количествах, можно просто побалагуить... но, желательно в тему :о) спасибо #tag: sam3x8e sam3 avr atmel arduino due printf c arm-gcc asf
  11. Все уверены, что тинька 13A это улучшенная 13 модель. Но я столкнулся с тем, что проверенная на Протеусе программа не очень-то работает в железе. Выяснилось, что значения битов ACD0D-ADC3D регистра DIDR0 в даташитах 13 и 13А имеют разное значение. Для даташита tiny13 и стандартных файлов определений С и Ассемблера(iotn13.h, iotn13a.h, tn13def.inc, tn13adef.inc) для 13 и 13А у них значения одинаковые: DIDR0 bits .equ ADC1D = 0x2 .equ ADC3D = 0x3 .equ ADC2D = 0x4 .equ ADC0D = 0x5 В avr.DLL Ptoteus'a тоже нет разницы для 13 и 13а и все работает как часы. Тогда как в официальном datasheet (!!! еще c сайта ATMEL !!!) обнаружил,что в даташите на ATTiny13a в описании регистров в 3х местах указано DIDR0 bits .equ ADC0D = 0x2 .equ ADC1D = 0x3 .equ ADC2D = 0x4 .equ ADC3D = 0x5 Вот сколка с даташита: 14.12.5 DIDRO - Digital Input Disable Register О Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | - | - | ADC3D|ADC2D|ADC1D|ADCOD|AIN1D|AINOD| Read/Write R R R/W R/W R/W R/W R/W R/W Initial Value 00000000 • Bits 5:2 - ADC3D:ADC0D: ADC3:0 Digital Input Disable When a bit is written logic one, the digital input buffer on the corresponding ADC pin is disabled. The corresponding PIN register bit will always read as zero when this bit is set. When an analog signal is applied to the ADC7..0 pin and the digital input from this pin is not needed, this bit should be written logic one to reduce power consumption in the digital input buffer. А жертвой как раз стали каналы ADC1 и ADC3, посколку после запрета подтяжки установкой битов в 1 попавшие под раздачу биты порта PINB всегда читаются как 0. И нажатие кнопки не регистрируется. Где правда?
  12. AVR / Arduino-Due / RFID Wegand - схема сопряжение/защита входа контроллера добрый день есть считыватель, подключается к Arduino-Due (проект не мой, "поднимаем" из того, что "было") для "нормального" сопряжения нужны схемы/схемотехника: - выходного каскада считывателя - входная схема (на стороне контроллера, хотя-бы к.л. рекомендованная) (*) интерфейс RFID считывателя D0 D1 LED_R LED_G BEEP по понятным причинам 2я схема м.б. весьма и весьма "сложной и развесистой", но хотя-бы для ориентира, общая. обычно, я беру железо и "реверсирую" схему, но в данном случае не катит, т.к. считыватель залит компаундом, и "иних" нормальных/пром. контроллеров нет прямо срочно, нужна пока 1я часть, и если вики-схема корректна в плане схемотехники, то этого для начало достаточно тема длинных проводов, пром.электроники, шумов, наводок, гроз - не совсем моя, поэтому обращаюсь к спецам :о) понятное дело, в инете есть что почитать, но, без наработок/опыта этого не всегда достаточно. если есть наработки, идеи, кто с "этим" железом работал, поделитесь опытом?! кидайте помидоры, идеи, ссылки, ключ.слова... буду благодарен :о) спасибо п.с. написал производителю, но, пока молчат ... :о) RFID Weigand ### ADD ### вроде как нашкрябал с помощью дедукции и такой-то матери (эквивалент) ###!!! UPDATE !!!### наборосал схему сопряжения с контроллером, нужна помошь для доработки от помех, высокого, желательно грозозащита. схема будет использоваться на пром. обьекте (тема не моя и очень серьезная, поэтому нужны спецы и наработки, проверенные временем) спасибо
  13. Должность: программист-разработчик, инженер Адрес работы: Москва, 5-я улица Соколиной горы, д. 22 Занятость: постоянная Уровень дохода: от 60 до 70 в месяц (после вычета налогов) требуется сертификат о прививке от Covid-19 Гражданство - только РФ Опыт работы: не имеет значения Описание вакансии: Обязанности: -анализ технической документации на микроконтроллеры (семейств AVR, STM8, STM32 и пр.); -разработка простых тестовых прошивок для демонстрации работы отдельных функций микроконтроллеров; -разработка простых печатных плат для запуска и взаимодействия с микроконтроллерами; -работа с измерительной аппаратурой, сбор и обобщение экспериментальных данных. Требования: -базовые знания языков программирования С/С++/Python3; -базовые знания цифро-аналоговой схемотехники; -базовые знания устройства и работы микроконтроллеров (микропроцессоров), навыки программирования микроконтроллеров (микропроцессоров), например, семейств AVR, STM8, STM32 и пр.; -базовые навыки разводки печатных плат; -умение паять; -желательно знание языка описания аппаратуры Verilog, навыки работы с ПЛИС. Условия: -оформление по ТК; -стабильная заработная плата; -отпуск, больничный; -молодой дружный коллектив. Образование: высшее, неполное высшее Готовы обсуждать возможность работы со студентами старших курсов. Контактная информация: Гераськин Андрей Александрович, 8-916-843-18-95
  14. Добрый день пытаюсь сформировать сигнал вот таким вот образом, но на осцилографе я вижу только как работает кнопка, но самого сигнала не вижу. Схема в протеусе прилагаю. может кто подскажет interrupt [EXT_INT1] void signal (void){ // Пока нажата соответствующая кнопка формируем сигнал while(PINF.6==0) { // Переводим таймер 1 в режим ШИМ TCCR1A=0xA1; TCCR1B=0x09; // Задаем начальное значение в регистр сравнения OCR1AL=0x00; // Формируем передний фронт сигнала while (OCR1AL<0xFF) { OCR1AL++; delay_us(200); } // Формируем длительность полочки delay_ms(47); // Формируем задний фронт сигнала while (OCR1AL>0x05) { OCR1AL--; delay_us(250); } // Формирем длительность паузы delay_ms(56); // Отключаем таймер 1 // В случае отключения соответствующей кнопки // МК не буде генериро TCCR1A=0x00; TCCR1B=0x00;} }
  15. Прошу помощи! Счетчик импульсов (watchdog в режиме генерации прерываний) на attiny85 считает импульсы просыпаясь раз в 250мс и раз в сутки выходит из цикла и общается по i2c. Возникла проблема — очень редко attiny85 уходит в бесконечный цикл. Как я это понял: 1. Устройство не выходит на связь через 15 мин. 2. Потребление вместо 12-17мкА стабильно 670мкА (без скачков и какой то работы). Нажатие на кнопку приводит к выходу из цикла. Т.е. цикл работает - состояние кнопки проверяется. Гипотеза: ISR(WDT_vect) не вызывается. Подозрения на некорректный ресет watchdog. Проблема проявляется крайне редко и не понятно как отловить. После зависания wdt_count = 15, т.е. значению иницилизации. Эту информацию вывел только что, поэтому поймал пока 1 зависание. Странно, что потребление линией 670мкА (измеряю EFM32 Energy monitor), потому что когда Ватериус считает импульсы - там четкие скачки потребления из-за пробуждения из deepsleep. volatile int16_t wdt_count; /* Вектор прерываний сторожевого таймера watchdog */ ISR( WDT_vect ) { wdt_count--; WDTCR |= bit( WDIE ); // так делать написано в datasheet } void resetWatchdog() { MCUSR = 0; WDTCR = bit( WDCE ); // Пробуждаемся (проверяем входы) каждые 250 мс WDTCR = bit( WDIE ) | bit( WDP2 ); // 250 ms #define ONE_MINUTE 240 // 1 минута примерно равна 240 пробуждениям wdt_reset(); } inline void counting() { power_adc_enable(); //т.к. мы обесточили всё а нам нужен компаратор adc_enable(); //после подачи питания на adc if (counter0.is_impuls()) { info.data.value0++; //нужен т.к. при пробуждении запрашиваем данные info.states.state0 = counter0.state; info.adc.adc0 = counter0.adc; storage.add(info.data); } #ifndef LOG_ON if (counter1.is_impuls()) { info.data.value1++; info.states.state1 = counter1.state; info.adc.adc1 = counter1.adc; storage.add(info.data); } #endif adc_disable(); power_adc_disable(); } //Запрос периода при инициализции. Также период может изменится после настройки. // Настройка. Вызывается однократно при запуске. void setup() { .... } void loop() { power_all_disable(); // Отключаем все лишнее: ADC, Timer 0 and 1, serial interface set_sleep_mode( SLEEP_MODE_PWR_DOWN ); // Режим сна resetWatchdog(); // Выход по прошествию WAKE_EVERY_MIN минут или по нажатию кнопки for (unsigned int i = 0; i < ONE_MINUTE && !button.pressed(); ++i) { wdt_count = info.wakeup_period_min; while ( wdt_count > 0 ) { noInterrupts(); if (button.pressed()) { interrupts(); break; } else { counting(); //Опрос входов. Тут т.к. https://github.com/dontsovcmc/waterius/issues/76 interrupts(); sleep_mode(); // Спим (WDTCR) } } } wdt_disable(); // disable watchdog power_all_enable(); // power everything back on storage.get(info.data); // Берем из хранилища текущие значения импульсов info.wdt = wdt_count; LOG_BEGIN(9600); LOG(F("Data:")); .... } Вот здесь была в другом проблема. Теперь не перезагружается... Но вот зависает: Если кто-то может потратить чуть больше времени, чтобы отладить проблему за вознаграждение - пишите. Спасибо!
  16. Здравствуйте. Собрался тут делать проект на Attiny816(тк есть в наличии), но к удивлению его не оказалось в Atmel Studio 6.2 и а AVRDUDEPR тоже его нет. Так в чем же писать под него и шить. В наличии есть USB ASP/
  17. Прошу помощи! Счетчик импульсов (watchdog в режиме генерации прерываний) на attiny85 считает импульсы просыпаясь раз в 250мс и раз в сутки выходит из цикла и общается по i2c. Возникла проблема — очень редко (!) attiny85 перезагружается после общения по i2c. Как я это понял: я вижу на сервере увеличение на единицу счетчика перезагрузок и MCUSR в setup(). MCUSR обычно 1, а становится равен 8 (1000 - WDRF: Watchdog Reset Flag. Завершение работы таймера.). Подозрения на некорректную настройку watchdog. Проблема проявляется крайне редко и не понятно как отловить. Код: main.cpp main.cpp "избранное": int16_t wakeup_period_min; volatile int wdt_count; ISR( WDT_vect ) { wdt_count--; } void resetWatchdog() { MCUSR = 0; WDTCR = bit( WDCE ) | bit( WDE ); WDTCR = bit( WDIE ) | bit( WDP2 ); // 250 ms wdt_reset(); } #define ONE_MINUTE 240 void setup() { info.service = MCUSR; //причина перезагрузки noInterrupts(); ACSR |= bit( ACD ); interrupts(); resetWatchdog(); wakeup_period_min = WAKEUP_DEFAULT_PER_MIN; if (storage.get(info.data)) { //не первая загрузка info.resets = EEPROM.read(storage.size()); info.resets++; EEPROM.write(storage.size(), info.resets); } else { EEPROM.write(storage.size(), 0); } } void loop() { power_all_disable(); set_sleep_mode( SLEEP_MODE_PWR_DOWN ); resetWatchdog(); for (unsigned int i = 0; i < ONE_MINUTE && !button.pressed(); ++i) { wdt_count = wakeup_period_min; while ( wdt_count > 0 ) { noInterrupts(); if (button.pressed()) { interrupts(); break; } else { counting(); interrupts(); sleep_mode(); } } } wdt_disable(); .... ....Связь по i2c .... } Выдержка из даташита Какие гипотезы тестируются: 1. по даташиту нужно "To avoid the Watchdog Reset, WDIE must be set after each interrupt." добавил в ISR(WDT_vect): WDTCR |= bit( WDIE ); 2. Убрать WDE из WDTCR = bit( WDCE ) | bit( WDE ); Почему я уверен, что устройства не зависают: а) attiny продолжает считать импульсы корректно б) я посмотрел статистику и 70% attiny вышли на связь через WAKEUP_DEFAULT_PER_MIN, который получают в setup(). В остальных случаях через Х * WAKEUP_DEFAULT_PER_MIN из-за проблем со связью. Почему я думаю, что проблема в начале функции loop(), а не в цикле подсчета импульсов: a) attiny выходит на связь через дефалтный период, а не хаотично. б) attiny выходит на связь ПОСЛЕ цикла подсчета импульсов, значит ошибка была не в цикле, а перед ним. Проблема появляется с вероятностью около 0,0002%. К сожалению, моих знаний не достаточно, чтобы предположить, что может быть причиной перезагрузки. Прошу помощи!
  18. IAR AVR вывод файлов .hex и .elf

    Приветствую! Возникла необходимость перенести проект из Atmel Studio в IAR и столкнулся с неожиданной проблемой - в IAR не получается настроить Linker, что бы после компиляции создавались два файла - .hex и .elf. С .hex-файлом проблем нет - настроил линкер по инструкции, найденной на просторах сети, и всё заработало. А вот с .elf-файлом ничего не получилось - В настройках линкера, на вкладке "Extra Output", включил параметр "Generate extra output file" и выбрал Output format: elf/dwarf. В результате при сборке проекта возникает следующая ошибка: Fatal Error[e92]: Cannot use the 'elf' output format with this cpu Error while running Linker Никто не подскажет, есть ли решение у данной проблемы? Не верится, что для данного устройства невозможно создать elf-файл - в Atmel Studio он создаётся без проблем. Да, совсем забыл - целевое устройство Atmega8535, версия IAR - 5.50.
  19. добрый день проект V-USB выкус из спецификации/инета/форумов: - реализация не полностью соответствует стандарту - работа на 100% не гарантируется - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в притирочку ... ) :о) у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы. как следствие стабильно может работать только при "определенных условиях" в планах поработать с библиотекой. для начало решил "набросать" альтернативный вариант (так сказать, попытаться закрыть все возможные дыры в подключении). достаем помидоры, баркова, мысли, высказываемся (заранее благодарен) tag: v-usb, avr, atmega328p, avr-gcc, linux/mac-osx NO atmega32u4, NO arduino pro micro etc...
  20. Компания Рикор, реализующая полный цикл проектирования и производства серверных компонентов, включая разработку конструкторской документации и программного обеспечения, полноценное производство и монтаж серверных печатных плат, серверных корпусов и т.д., ищет в команду Инженера-системотехника. Обязанности: · участие в разработке схемотехнических решений для таких электронных устройств, как серверные материнские платы, десктопные материнские платы, RAID-контроллеры, сетевые маршрутизаторы и т.д; · разработка низкоуровневого (встроенного) программного обеспечения; · запуск, настройка и отладка экспериментальных образцов; · ведение журнала выявленных ошибок; · написание инструкций для серийного производства. Требования: · понимание архитектуры компьютера/сервера; · навыки работы с измерительной техникой (мультиметр, осциллограф и т.д.); · опытный пользователь ОС Linux; · умение читать и разбираться в схемах электрических принципиальных. Будет преимуществом: · владение такими системами проектирования, как OrCAD Allegro, Altium Designer; · уверенное знание С и ассемблера x86/x64; · опыт работы с UEFI BIOS; · опыт работы с контроллерами типа AVR, STM32; · знание языков VHDL/Verilog. Условия: · оформление по ТК РФ · белая конкурентная заработная плата · пешая доступность от м.Курская (7 минут) +7 (495)-363-45-50 доб. 513 Виктория
  21. В начале года Microchip анонсировал выход новой линейки 8-битных микроконтроллеров AVR, которая придет на смену контроллерам высокой и средний производительности ATmega. На данный момент в линейку входят серии AVR-DA, AVR-DB и AVR-DD. Разберем отличия новой линейки от ее предшественницы, характеристики новых серий и сравним между собой. Подробнее>>
  22. Спроектирую, отлажу небольшие электронные устройства на микроконтроллерах pic, AVR, stm32. Проекты выполняю использую инструменты open source. А также полностью передаю исходники и права на проект заказчику. Также занимаюсь монтажом печатных плат.
  23. Требуется улучшить схему и плату. Vasily_ пишет, что улучшить можно буквально всё. Attiny85, спит и раз в 250мс просыпается, чтобы проверить состояние входов. Раз в сутки пробуждает ESP.Питание 3.0 В. Потребление при работе 25мкА, при включении ЕСП до 150мА. Это open source и open hardware проект по созданию лучшей приставки к импульсным счётчикам воды — Ватериус. С вашей помощью устройство станет ещё лучше, надёжнее! Разработка ведется в git, ваши изменения - будут под вашим аккаунтом. Если вас нет на github, то помогу со стартом. Это отличная возможность для создания портфолио. Работа оплачиваемая, пишите, как можете помочь и условия. Спасибо! Задача №2: Еще стоит задача добавить в эту схему полевой транзистор для полного отключения ESP, но кажется надо переносить i2c на другие пины ESP, т.к. внутри нее подтягивающие резисторы к питанию есть. К этой задаче предлагаю приступить после обсуждения улучшений текущей платы.
  24. Добрый день! Выставил несколько отладочных плат и китов. Постарался сгруппировать. Обращаю внимание на: 1) Цена. Не догма! Предлагайте свои варианты цен с ссылкой на магазин, где нашли дешевле. Уступлю. 2) Внимательно смотрите - "новый" или "б/у". Если я пишу "новый", то это значит ни разу не использовал, питание не подавалось. Если я пишу "Б/У", то это значит ранее питание подавалось. 3) Заказы пишите в личку. Если я пишу, что товар забронирован за вами, значит остальным я пишу, что он забронирован за другим покупателем. Сроки оплаты оговариваются индивидуально в личке. Если вы поистечению срока не оплатили товар, то по истечению договоренного с вами срока, товар автоматически становится доступным для покупки остальными претендентами (о чём будет сообщено в личке). 4) Предоплата: стоимость товара + стоимость доставки. Доставка - обычная почта России (простая бандероль или бандероль 1го класса). Или экспресс-доставка. Договариваемся в личку индивидуально - вариант доставки выбираете сами. После получения средств, товар готовится к отправке и отправляется на указанный адрес. 5) Доставка: только по России. За рубеж НЕ высылаю. 6) Минимальный заказ : 500 рублей + стоимость доставки По всем вопросам пишите в личку или на мылo : repstosw2018 [СОБAKA] g m a i l . c o m Модуль TFT LCD 2.8 дюйма, совместим с Arduino. Состояние товара: НОВЫЙ В наличии: 2 штуки. Желаемая цена: 500 рублей. Характеристики: Диагональ: 2.8 дюйма Разрешение: 320x240 пикселей Тачскрин: резистивный (карандаш для нажатия прилагается) Контроллер дисплея: ILI9341 Интерфейс дисплея: параллельный 16 бит (поддержка интерфейса шины 6800/8080) Питание: 3.3 или 5V. Дополнительно: слот SD/MMC карты через SPI Наличие: контроллера тачскрина + LDO на 3.3V. Товар новый, на дисплее пленка для защиты. Брал 3 таких модуля, один пустил в дело - работает. Для продажи: в наличии 2 штуки. Отладочная плата: STM32F4DISCOVERY Cостояние: "Б/У". В наличии: 2 штуки. Особенности: - на первой плате выпаян акселерометр - на второй плате выпаяны 2 светодиода (в центре) Желаемая цена: 1500 рублей. Характеристики: 32-битный ARM-контроллер STM32F407VGT6 семейства Cortex-M4 Flash память: 1 МB ОЗУ (RAM): 196 КB Возможность отладки: JTAG и SWD Встроенный отладчик и программатор ST-Link/V2. Питание 5 или 3.3V (и от USB). Отладочная плaта "Minimalistic" ATmega128. Состояние товара: "Б/У". Желаемая цена: 300 рублей Отладочная плaта - минимальная система, с минимальным набором компонентов. На плате выведены порты микроконтроллера, разъемы подключения программатора, отладчика, дополнительного кварцевого резонатора и питания. На плате есть кнопка RESET, светодиод индикатора питания и выключатель питания. Напряжение питания 5 В. Отладочная плата SmartMP3 на VS1011Е. Состояние: "Б/У" Желаемая цена: 1500 рублей Декодирует MPEG 1.0 и 2.0 layer III (MP3: CBR, VBR, ABR) Опционально декодирует MPEG I и II (MP1, MP2) Декодирует WAV (PCM + IMA ADPCM) Гнездо для карт MMC / SD на плате SPI интерфейс управления и передачи данных Встроенный динамик, плюс клеммы для внешнего динамика или наушников Работает как с системами 3.3V, так и с 5V Модуль трансивера на м/cх. CC1101 (Chipcon, Ti) Состояние: "Б/У" Желаемая цена: 200 рублей В наличии : 2 штуки Частоты - UHF, "430 МГц". Выходная мощность - 10 мВт (максимум, регулируется программно) Всего: 2 штуки.
  25. прошивка EEPROM

    добрый день прототип проекта, в процессе отработки EEPROM инициализирована необходимыми данными (участок памяти) необходимо при прошивке конечного контроллера залить этот участок по назначению можно ссылки, идеи, мысли итд спасибо ATmega328 linux, avr-gcc свисток + AVR MKII / Arduino-MK / avrdude зы в инете набегом, поэтому вопросы без арт-подготовки :о)
×
×
  • Создать...