Jump to content

Search the Community

Showing results for tags 'AVR'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

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

Blogs

  • Твори, выдумывай, пробуй.
  • fant's блог
  • Ток покоя
  • Где купить велпатасвир, epclusa, velpanat, velasof, софосбувир в России по лучшей цене.
  • Китайские бренды видеокамер
  • Создание Маленькой Мастерской
  • Блог администрации
  • STEN50's блог
  • Изучение, наладка, исследование
  • MiSol62's блог
  • короткие записки по ходу дела
  • Программирование AVR и PIC блог
  • Стабилизированный выпрямитель тока ТЕС 12-3-НТ
  • Блог getshket
  • ТНПА
  • welder's блог
  • blog cheloveka loshadi
  • OPeX3's блог
  • Подводная робототехника
  • Сабвуфер и акустика.
  • Радиоуправляемая машина
  • Консультация психолога сексолога онлайн, психолог онлайн
  • Nokian блог
  • Оповещения Dermabellix Scam !! Не покупайте это !!!
  • Cheerful Boss' блог
  • Cheerful Boss' блог
  • VLAD1996B's блог
  • "Коллективное увеличение продаж"
  • Dudok's блог
  • "Коллективное увеличение продаж"
  • Goluboglazyi's блог
  • Прибор определяющий электролитический конденсатор на работоспособность.
  • Mosfet@'s блог
  • mazzi's блог
  • Лучшие компьютерные игры 2017
  • Marchenkokerya's блог
  • Заметки начинаущего аудиофила
  • Почти бесполезные проги
  • Светлый блог.
  • дядюшка Филин's блог
  • Дневники нуба
  • satyrn's блог
  • Люк. В погреб.
  • Фильм Дом Солнца
  • Светодиодная лента B-LED 2835-120 W белая негерметичная
  • Само-Реплицируещиеся Производственные Системы
  • Блог от Eknous
  • РВС's блог
  • Den_R's blog
  • РВС's блог
  • Чтото крутое и про криворукость
  • ekadom's блог
  • Проектирование любых чертежей
  • Lisovic's блог
  • Блог уже не юного радиогубителя
  • денди
  • eHouse
  • zaregan's блог
  • Схемотехника УНЧ с низковольтным питанием на примере приёмников фирмы Grundig
  • То, что в руки попало.
  • Блок питания водородного генератора и все что с ним связано
  • slava_va@mail.ru's блог
  • Блог alex123al97
  • slava_va@mail.ru's блог
  • параленое соединение КРЕНок или как сделать стабилизатор напряжения 24-12в
  • Свободная генерация Андрея Мельниченко
  • реобас
  • Модернизации системы впрыска на 555
  • помощь
  • Копии схем и печатных плат устройств попавшие ко мне
  • MBM75's блог
  • Буду
  • lagutai's блог
  • Мои проекты.
  • lagutai's блог
  • Трудовик
  • vOVK@'s блог
  • токарь-радиолюбитель
  • azlk3000's блог
  • Коллизия сингулярности
  • SmallAlex's блог
  • Вопрос по Цифровому усилителю мощности звука 2x12 Вт YDA138-E
  • bebulo's блог
  • Простейший макет станка термо-вакуумной формовки
  • Блог им. pryanic
  • peratronika
  • Zer's блог
  • Сага о китайском PCB сборщике
  • MEDBEDb's
  • Гнездо кукушки
  • hiMiческий блог
  • luna_kamen's блог
  • Изучаем USI на основе сверхэкономичного прототипа
  • Алекс-Юстасу
  • SUBWOOFER.RU
  • kot sansher's блог
  • Поделки стареющего пионера
  • доброжелатель2's блог
  • Grig96. Полезные заметки.
  • Attiny 0-ой и 1-ой серии (Attiny817, 1614 и прочие)
  • pavlo's блог
  • MSP430FR
  • viper2's блог
  • Моя Электро Чинильня
  • Selyk's блог
  • VoltServis.ru
  • kpush's блог
  • OM3 на новых платах.
  • конни's блог
  • Электронный экстазёр "MASHKA".
  • ptimai's блог
  • noc functionalities
  • Sun kapitane's blog
  • ODEON AV-500
  • Sun kapitane's blog
  • Логика на транзисторах,диодах, счетние тригери на транзисторах
  • AleksandrBulchuck's блог
  • Качественные окна от производителя
  • KRALEX's блог
  • Javaman's projects
  • SeVeR36's блог
  • 3232
  • Пять копеек.
  • Az@t's блог
  • Индукционный нагрев
  • Схемы разных устройств
  • Кардшаринг SAT ТВ блог
  • PENTAGRID SAYS
  • Ещо раз о "Кощее 5И"
  • Игровые автоматы на официальном сайте
  • коллекционер
  • дямон's блог
  • Ламповый усилитель и акустика для озвучки семейных мероприятий
  • дямон's блог
  • tiosmutoutrup1971
  • Светомузыкальная установка для новачков
  • Лучшие игры для ПК скачать бесплатно
  • sqait's блог
  • Блокнотик
  • Gubernator's блог
  • Записки электрика
  • Полстакана
  • Vrednyuka
  • Интегральные микросхемы
  • grigorik's блог
  • Интегральные микросхемы
  • VMWare удобство и безопастность
  • Профсоюз обычных пользователей
  • rtfcnf's блог
  • Гидроэнергетика в России: отечественные гидроэлектростанции, типы и характеристики
  • VMWare удобство и безопастность
  • Лайфхаки от Кати
  • Kinh chong anh sang xanh gia re
  • ukabumaga's блог
  • АО "Диполь Технологии"
  • artos5's блог
  • блог
  • Kraftwerk's блог
  • 1
  • Kraftwerk's блог
  • Как выбрать точечный светильник?
  • мастерская ky3ne4ik'а
  • Работа с микроконтроллером Atmega8
  • Aronsky
  • Игорь Камский
  • Диммеры
  • 5В = 1,5+3
  • vitiv' блог
  • Ремонт цифровой панели прибора тойоты марк 100. Замена транзистора 36 ( SOT- 23 )PNP
  • Все СРО России
  • 300writers
  • Металлоискатель Tracker FM-1D3
  • Былое
  • Создание монстра "Blaster 8920"
  • 2Smart Cloud Blog
  • EmmGold's блог
  • 2Smart Cloud Blog
  • ivan15961596's блог
  • Кумир у-001
  • ivan15961596's блог
  • My blog
  • Интернет радио в машину
  • SamON
  • Помогите люди добрые
  • AI
  • Помогите подключить маяк 231 стерео.
  • Гаусс-пушки
  • Название
  • 7400's блог
  • Как я собирал свой первый импульсный источник питания
  • Віталік Приходько_130349's блог
  • Lithium ECAD - российская САПР печатных плат
  • Евгений Малюта's блог
  • ПИшу свои мысли
  • werekpro
  • Venera Electronica
  • afurgon's блог
  • Выбросьте это в парашу!
  • odaplus' блог
  • Zvik's блог
  • Smart overload protection power amplifier «Zita (Z) ThermalTrak™»
  • радиоэлектоника
  • BoBka777's блог
  • МиУЗР - Модернизация и Усовершенствование Звуковой Радиотехники .
  • aleksey9900's блог
  • Лабораторная блок питания
  • Нашел статью о пайке проводов к светодиодов
  • Китайский городовой
  • Костик0's блог
  • УФ лампа для маникюра SK-818
  • OPeX3's блог
  • Sem2012's блог
  • это не хлам – это часть моей жизни
  • OdiS' блог
  • aleksfil's блог
  • EmmGold's блог; AVR
  • З
  • Блог Плотникова Ильи
  • yureika's блог
  • Для начинающих
  • Fumitox's блог
  • Самоделки блог
  • ульян's блог
  • Блок питания 0-12В для начинающих
  • Dimko's блог
  • Иван Самец's блог
  • SolomonVR's блог
  • gendzz's блог
  • fleh138's блог
  • Электроника forever!
  • aleksejhozhenets' блог
  • aleksejhozhenets' блог
  • diserver блог
  • aleksey290476 блог
  • ВАРГ's блог
  • Люстра Чижевского
  • wanes101's блог
  • voldemar2009's блог
  • Jana's блог
  • Jana's блог
  • Рена Искужин's блог
  • abduraxman7's блог
  • Kuzumba's блог
  • Самопальник
  • заработок через интернет на запчасти!!!
  • electric.kiev's блог
  • lolo's блог
  • leravalera's блог
  • ideomatic's блог
  • приглашаем на работу инженера-радиоэлектронщика
  • FREEMAN_77's блог
  • Блог автоэлектрика
  • Блог начинающего электронщика
  • Dersu's блог
  • Электроэнергия и её экономия!
  • Электроэнергия и её экономия!
  • Семён Ковалёв's блог
  • piligrim-666's блог
  • помогите с партотивной калонкой
  • помогите с партотивной калонкой
  • Музыка в стене.
  • m-a-r-i-k-a's блог
  • cosmos44's блог
  • oyama14's блог
  • блог Виталика!
  • ciornii's блог
  • Великий и Ужастный блог
  • Denis__Ricov's блог
  • Universal12's блог
  • Sprut's блог
  • Alexeyslav's блог
  • cosmosemo's блог
  • Заметки радиолюбителя
  • Falconist. Мемуары
  • Блог MillyVolt
  • усилитель импульсов
  • Panasonic sa-ak 18
  • Простое радиоуправление из того, что было.
  • 35house
  • Блог Радиочайника
  • Блохи iiiytnik'a
  • Хороший сервис- Бяка
  • Аудиолаборатория "Философия Звука"
  • ОколоCADовое
  • Блог KVLADS
  • Короп блог
  • Автоматизация котла Protherm MTV
  • Бложиг Касянича
  • Обо всём
  • Эксперимент
  • No electronics
  • ПРИРОДА СВЕТА и ЕГО ВОЗМОЖНОСТИ
  • Генератор на xr2206
  • HTPOWLASER
  • Когда-то были очень популярны у радиолюбителей
  • AVR - микроконтроллеры
  • Микроконтроллер
  • Самодельный автосимулятор
  • Интернет-магазин керамической плитки «Боярская Плитка»
  • Разработка электронных метрических мишеней IPSC для мягкой пневматики (страйкбол)
  • ,

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


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


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

  1. Сайт Паяльник открывает обучающий видеокурс по AVR-микроконтроллерам. В этой теме "обратной связи" будем постепенно добавлять новые видеоролики с нашего канала. Здесь можно задавать вопросы, давать рекомендации, критиковать, оставлять отзывы и пожелания, а также запросы на тему будущих видеоуроков. Ведет видеокурс наш форумчанин kobzar. Профиль пользователя на сайте cxem.net. Там же финансовые реквизиты для тех, кто пожелает финансово отблагодарить автора данного видеокурса Подписка на YouTube канал Краткий обзор сред разработки для различных микроконтроллеров на сайте: http://cxem.net/software/soft_mcu.php Внимание начинающим! Перед тем, как задавать вопросы не по теме видеоуроков, прочитать: Статьи по МК для начинающих Книга по программированию микроконтроллеров AVR Также, здесь же на форуме рядом с этой темой смотрите прикрепленные темы: для начинающих, по языку Си и т.д. Все вопросы не по видеокурсу задавайте только там. С этой темы подобные вопросы удаляются Кракозябры вместо русских букв Ребята - спешу сообщить что найден метод борьбы с кракозябрами вместо русских символов, при работе с ЖК. Дело в том, что у некоторых из вас, проект создается в кодировке UTF-8, а наша библиотека работает только с ср1251 Фикс: 1.Открываем проект 2. File - Advanced Save Options 3. Вместо кодировки UTF-8 выбираем Cyrillic(Windows) - cp1251 Сохраняем, сохраняем проект - компилируем! Добавлено 12.01.16 : Изменённые версии библиотеки lcd_5110 : От COKPOWEHEU - Ссылка на пост , Ссылка на github
  2. Что же такое FUSE биты? Слова вроде бы знакомые, но многие толком и не знают их предназначение, ставят галочки и прошивают, работает устройство да и ладно. Я вам хочу рассказать немного про эти FUSE биты. FUSE биты (фьюзы) – ну если по простому, то они настраивают определенные параметры микроконтроллеров, это некий инструмент для их тонкой настройки Фьюзы включают или настраивают такие параметры как: - частота генератора, внешний или внутренний генератор - запрет на чтение прошивки микроконтроллера - включение или выключение таймеров - деление частоты кварцевого генератора - защита EEPROOM от стирания …и так далее. У каждого микроконтроллера выставляются свои фьюзы, у разных микроконтроллеров разный список фьюзов, например в ATmega8 нет фьюза CKOUT, но он присутствует в ATtiny2313. В даташитах к микроконтроллерам все эти фьюзы расписаны. Читать далее: Фьюзы микроконтроллеров AVR – как и с чем их едят Устройство оживления микроконтроллеров Atmel Исправление фузов AVR SinaProg + ATmega328P исправляем прошивку фьюзов Темы на форуме: Fuse Doctor не определяет пациентов Lock Bit или что может быть хуже Начал собирать металлоискатель. Все спаял - дело осталось за малым - прошить ATTiny 2313. Но чего-то я никак не пойму, какие надо фьюзы выставлять? Для тактирования от внешнего генератора, я так понимаю, надо выставить: CKSEL=F (1111) CKDIV=1 Вот то, что программатор считывает с контроллера. Теперь вопрос: где нужно выставить/убрать галочки? (программа - UNIPROF)
  3. Коллеги, всем привет. Увидел вот такой проект. Несмотря на явную привлекательность что-то совсем мало повторивших. Может кто-то из завсегдатаев форума делал этот проект? Интересует ваше мнение: хочу повторить, но не силен в программировании, поэтому беспокоюсь на счёт подводных камней с которыми не смогу справиться.
  4. Доброво времени суток, подскажите,пожалуйста,как мне меняя значение переменной "а" задавать длительность задержки. При выполнении компилирования выдаётся следующая ошибка.
  5. добрый день исходные: отлаживаю "библиотеку" на си - передача данных по 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 пока буду изучать ссылки, доки, даташит пинайте, кидайте помидоры, идеи, ссылки, все что угодно! можно просто побалагурить по теме! :о) спасибо.
  6. Есть ситуация когда пишу код для AVR на ассемблере, на компьютере, где у меня нет админских прав, то есть устанавливать программы на этом компьютере я не могу. Использую протеус восьмой, portable версию, она позволяет писать программы на ассемблере. Но хотелось бы что-нибудь подобное AVR Studio 4.19 в portable версии. Прошивать контроллер на этом компьютере мне не нужно, нужен .hex файл для симуляции в протеус. Что можете посоветовать товарищи.
  7. Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце. Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать. Кто что думает по поводу схемы? бегущая строка.pdsprj Natali_2012_program.hex
  8. Прикупил тут пару дней назад в платане несколько контроллеров ATMEGA128A, подключил по последовательному интерфейсу к программатору - не работает, оказалось нужно припаять кварц, установлены фьюзы на работу от внешнего кварца. Ничего не пойму, контроллеры в заводской упаковке, в ленте, хотя написано не Microchip, а Atmel, хотя первая уже давно поглотила вторую. Изначально фьюзы вроде как должны установлены на внутренний RC генератор, а не на внешний кварц??? Купил вот здесь: https://www.platan.ru/cgi-bin/qwery.pl/id=671468246 Цена неплохая, но предустановка фьюзов странная.
  9. Всем привет. Так получилось, что цифровой электроникой я занимаюсь уже более 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
  10. добрый день надеемся на то, что вы своим опытом и знаниями поможете нам. заказали разработку контроллера (схема/печать/корпус/прототип) контроллер промышленный, будет использоваться в "грязной среде", с помехами, нужна соотв. защита контроллера, схемы, входов. схема и печать разработчиком сделана, сейчас разбираемся "что к чему". считаем, что некоторые моменты в схеме надо доработать, переписываемся с разработчиком, правим. уперлись в входную часть схемы, грозозащиту. у контроллера есть неск. типов входа - датчик "сухой контакт/концевик" (замыкатели/размыкатели) - датчик "виганд" (передача по сет.кабелю/RJ45) - сетевой интерфейс (передача по сет.кабелю/RJ45) схема контроллера запитывается от 12В (сетевой DC-DC) через изолированный DC-DC 12-3.3В т.е. имеется цифровая земля 3.3В / ARM-ядро (чистая) и грязная 12В + все, что "осталось" до преобразователем DC-DC 12-3В все датчики развязаны через "оптику" сетевой интерфейс тоже "как-бы развязан", чип запитывается от 3.3В, внешняя часть сет.модуля - RJ45 разьем и разделительный трансформатор ЗК - шина "заземление-корпус" (сокращение) сама по себе шина "ЗК" не предусмотрена разработчиком + корпус был подобран пластиковый. мы считаем, что эта шина необходима, плюс необходимо так-же на "грязную землю" поставить разрядники (не только на сигнальные) и сливать имненно на "ЗК" разработчик считает что сливать помехи можно прямо на грязную землю, в связи с чем разрядник устанавливает только на сигнальные входные цепи, а "земляные" (идущие в паре с сигнальным) - без разрядника, и использует "грязную землю" как "ЗК" на грязной земле у нас - входные сигнальные линии - "разделительная" оптика - индикаторные светодиоды - питание реле но тем не менее, мы считаем, что надо делать "правильно". ... пожалуйста, поделитесь вашим мнением на данную ситуацию если нужны более подробные описания, блок схемы, рисунки - спрашивайте. спасибо
  11. В связи со сложной политической обстановкой и санкциями последние пол года, как многие уже заметили цены на контроллеры ATTINY и ATMEGA резко подскочили. Соответственно есть дешёвые китайские аналоги, например, LGT8F328. К сожалению прграммируются они по интерфейсу SWD, программатором SWDICE mkll. Возникает вопрос: где данный программатор купить или может есть его клон, который можно спаять самому???
  12. Всем привет). Может, кому-то эта статья сэкономит много времени и нервов. Недавно по работе встретился с интересной задачкой. Нужно было передать на железку по порту RS485 информацию для проверки работоспособности последней. Так как не всегда имеется в ремонте вся система, то для начала нужно было посмотреть, на заведомо исправной системе, что же там между ними (железками) передаётся. Логический анализатор показал что девайсы общаются по не совсем стандартному, а по 9ти битному протоколу (USART 9n1). А это усложняло задачу, так-так известные мне терминальные программы его не поддерживают. И без бубна не обойтись))). Начались поиски решения. Через некоторое время стало понятно, что AVR позволяет это делать и даже в даташите подробно это описывает. Дело за малым. Реализация задуманного))). Все регистры выставлены по документу………..Для Atmega8a. void USART_Init( unsigned int speed) //Инициализация модуля USART { UBRRH = (unsigned char)(speed>>8); UBRRL = (unsigned char)speed; UCSRB=(1<<RXEN)|( 1<<TXEN); //Включаем прием и передачу по USART UCSRB |= (1<<RXCIE); //Разрешаем прерывание при передаче UCSRA |= (1<<U2X); //удвоение скорости UCSRC = (1<<URSEL)|(1<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); UCSRB |= (1<<UCSZ2); // Включаем 9bit режим // Обращаемся именно к регистру UCSRC (URSEL=1) // ассинхронный режим (UMSEL=0), без контроля четности (UPM1=0 и UPM0=0) // 1 стоп-бит (USBS=0), 8-бит посылка (UCSZ1=1 и UCSZ0=1) // если (UCSZ1=1 и UCSZ0=1 и UCSZ2=1) 9bit mode. // UCSRC |= (1<<UPM1);//четность } По даташиту передача 9го бита происходит установкой или сбросом TXB8. То есть, установили бит, передаётся 1 в старшем 9ом разряде, сбросили – 0. void USART_Transmit( unsigned int data ) // функция передачи 9ти бит из даташита. { /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ) ; /* Copy ninth bit to TXB8 */ UCSRB &= ~(1<<TXB8); if ( data & 0x0100 ) //не понял, что они хотели этим сделать. UCSRB |= (1<<TXB8); /* Put data into buffer, sends the data */ UDR = data; } И вот незадача, числа размером до 1 байт передаются без проблем, а числа больше 0xFF (255) нет). А устройство передаёт числа до 510. Предлагаю решение. Может и не самое лучшее, но вполне работоспособное. int main(void) { USART_Init (103);//9600 //------------------------------------------------------------------------------------ while(1) { for (i=0; i<22; i++) { code_simbol = simbol[i]; //символ из массива //-------------------------------------отправка в UART-------------------------------- if (code_simbol > 255) { pr=1; // флаг передачи символа больше 0xff (255 десятичное) } else { pr=0; // флаг передачи символа меньше 0xff } USART_Transmit(code_simbol,pr);//собственно сама функция отаравки } } } А теперь и сама функция передачи . void USART_Transmit( unsigned char data, uint8_t prisnak ) //Функция отправки по USART { while ( !(UCSRA & (1<<UDRE)) ); //Ожидание опустошения буфера приема if (prisnak==1) { UCSRB |= (1<<TXB8); //устанавливаем для передачи еденицы в старшем разряде } else { UCSRB &= ~(1<<TXB8); //сбрасываем старший разряд } /* Put data into buffer, sends the data */ UDR = data; //Начало передачи данных asm volatile ("nop"); Соответственно если число для предачи мньше 256 мы передаём его при нулевом 9ом бите. Ну а если больше то 9й бит выставляем в единицу. А вот и результат.
  13. добрый день есть считыватель, подключается к Arduino-Due (проект не мой, "поднимаем" из того, что "было") для "нормального" сопряжения нужны схемы/схемотехника: - выходного каскада считывателя - входная схема (на стороне контроллера, хотя-бы к.л. рекомендованная) по понятным причинам 2я схема м.б. весьма и весьма "сложной и развесистой", но хотя-бы для ориентира, общая. обычно, я беру железо и "реверсирую" схему, но в данном случае не катит, т.к. считыватель залит компаундом, и "иних" нормальных/пром. контроллеров нет прямо срочно, нужна пока 1я часть, и если вики-схема корректна в плане схемотехники, то этого для начало достаточно тема длинных проводов, пром.электроники, шумов, наводок, гроз - не совсем моя, поэтому обращаюсь к спецам :о) понятное дело, в инете есть что почитать, но, без наработок/опыта этого не всегда достаточно. кидайте помидоры, идеи, ссылки, ключ.слова... буду благодарен :о) спасибо п.с. написал производителю, но, пока молчат ... :о) инет/гугль изчил... url1 url2 tag:avr,avr-gcc,arduino-due,rfid,weigand
  14. Здравствуйте. Я собрал схему для генерации звуков на AVR по материалам вот этой статьи на Хабре. Использовал ATMega328P. В этом проекте частота ШИМ 31250 Гц, так что я собрал фильтр - RC-цепь, где R = 510 Ом, а С = 0.1 мкФ приложил схему к посту (эти значения я рассчитал на предложенном в статье калькуляторе ШИМ-фильтров (приложил скриншот); нагрузкой поставил динамик с сопротивлением 8 Ом, на схему подал 5В питания с лабораторного БП. Я загрузил в микроконтроллер демо-код, который должен проигрывать последовательность звуков. Фьюзы, вроде бы, стандартные, но я на всякий случай приложил скриншот и с ними. В общем, проблема в том, что звук, который он должен воспроизводить звучит приглушенно, зато блин стоит какой-то монотонный писк, иногда почти скрип и вот он очень громкий. Я подумал, что проблема в неправильно рассчитанном фильтре или какой-нибудь наводке. Собрал их сто тысяч разных, но писк только приглушался вместе со всем остальным, когда я большие сопротивления ставил, а по частоте на слух не менялся(не уверен, должен ли был), хотя емкости я пробовал тоже очень разные. Я немного почитал код, попробовал отключить функцию подавления щелчка при сменах нот (это ничего не изменило). Код довольно сложный, чтобы пытаться всерьез искать там какие-нибудь ошибки, да и я подозреваю, что там их нет. Не могу понять в чем проблема уже пару дней. Возможно, кто-то уже собирал этот проект или что-нибудь подобное и сталкивался с таким? Подскажите, если так. Так же, я не уверен, может быть, проблема физическая и она в микроконтроллере, думаю стоит попробовать попробовать другой камень. Заранее спасибо.
  15. Здравствуйте. Возник ниже стоящий вопрос. Cуществующие технологии отладочных плат для AVR. Хотелось бы узнать больше об этом, но в интернете не нашел ничего дельного.
  16. Здравствуйте! Столкнулся со следующей проблемой: при сборке МД "Шанс" дошел до этапа прошивки МК, в итоге запорол 3 атмеги. Прошивал 3 способами: 1. Через Arduino UNO(As ISP) просто МК 2. Через Arduino UNO(As ISP) МК внутрисхемно(соответственно с обвязкой) 3. Через USB ASP внутрисхемно(с обвязкой соответственно). Вышло так, что в наличии кварца 11.0592 МГц не было, и я временно впаял 12 МГц. Прошил трижды всё правильно(фьюзы , контакты и т.д). После прошивки просто не видит МК (ну и плата не работает без МК.да и Бог с ней, но МК всеравно не могу считать). В чем причина понять не могу. Одно думаю, что это разница между 11.0592 и 12 МГц. Посоветуйте как решить проблему. Коды ошибок после прошивки во всех трёх случаях одинаковые: Sinaprog -invalid device signature Averdude -avrdude: warning: cannot set sck period, please check for usbasp firmware update target don't answer
  17. Всем привет. Ранее уже выставлял по ошибке фьюзы на тактирование с внешнего резонатора (Ext. Crystal Osc.), но тогда обошелся малой кровью, т.к. удалось затактировать "с пальца" и программатор хотя бы увидел камень. Но в этот раз поставил тактирование с внешнего сигнала (Ext. Clock), и фокус не удался. Программа крутится, светодиоды моргают, а комп не видит. С пальца не вышло, также как и с кварцем на 4Мгц. Подавал просто 1кГц c генератора на XTAL1. Вывести пациента из комы не удалось Вопрос: почему прошлый раз прокатило, и в чем принципиальное отличие от этого режима? Что он ожидает от меня на вход?
  18. Создал секцию: SECTIONS { .rodata : { . = ALIGN(16); _start_cmdList = .; *(.cmdList) KEEP(*(.cmdList)) _stop_cmdList = .; } } объявил структуру и указатель на начало: typedef struct { const char *cmdName; const void (*const commandVoid)(uint8_t, char *[], char[]); } CommandHandler; extern const CommandHandler _start_cmdList[]; для теста занёс одну функцию: const void kek(uint8_t argc, char *argv[], char answ[]) { strcpy_P(answ, PSTR("wow")); } static PROGMEM const char __attribute__((__used__)) kekAlias[] = "lol"; const CommandHandler __attribute__((section(".cmdList"))) __attribute__((__used__)) CMDHandler_kek = {.cmdName = kekAlias, .commandVoid = kek}; и проверяю: const CommandHandler *in = &_start_cmdList[0]; const CommandHandler *out = &CMDHandler_kek; if (in == out) uart.println(F("ok")); uart.println((unsigned int)(in), HEX); uart.println((unsigned int)(out), HEX); uart.println((unsigned int)out->cmdName); uart.println((unsigned int)out->commandVoid); uart.println((unsigned int)in->cmdName); uart.println((unsigned int)in->commandVoid); Выводит: 1560 1560 124 801 12800 0 МК атмега168. Platform IO Avr gcc 11 Линкер скрипт стандартный, с добавкой сверху Вопрос: как получить первый элемент массива в секции?
  19. Кто знает как настроить программу AVR Dude под программатор AVR910 USB?
  20. Здесь будут помещаться различные примеры кода и прочего обсуждаемого в других темах. Также скидывайте сюда любую полезную информацию по AVR микроконтроллерам Он-лайн книга: "Книга по программированию микроконтроллеров AVR (ассемблер)" Atmel AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers: Atmel AVR4027 (Оптимизация кода от Atmel).pdf
  21. Вот сам код программ Текст программы МК /******************************************************* Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 8,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *******************************************************/ #include <mega8.h> #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> // Standard Input/Output functions #include <stdio.h> #include <stdlib.h> // Declareyourglobalvariableshere float s; unsigned long int k0=0,k1=0,k2=0,k3=0,k0123=0; unsigned long int k4=0,k5=0,k6=0,k7=0;//k4567=0; unsigned long int k8=0,k9=0,k10=0,k11=0;//k891011=0; unsigned long int k12=0,k13=0,k14=0,k15=0;//k12131415=0; unsigned long int k16=0,k17=0; char k=0; void main(void) { // Declare your local variables here char buffer[20]; char a,b,c,d,e,f; // Присваивание переменным a,b,c численные значения 63 05 00 01 CF A1 a=0b01100011; //63 b=0b00000101; //05 c=0b00000000; //00 d=0b00000001; //01 e=0b11001111; //CF f=0b10100001; //A1 DDRD.2=1; PORTD.2=0; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=(0«RXC) | (0«TXC) | (0«UDRE) | (0«FE) | (0«DOR) | (0«UPE) | (0«U2X) | (0«MPCM); UCSRB=(0«RXCIE) | (0«TXCIE) | (0«UDRIE) | (1«RXEN) | (1«TXEN) | (0«UCSZ2) | (0«RXB8) | (0«TXB8); UCSRC=(1«URSEL) | (0«UMSEL) | (0«UPM1) | (0«UPM0) | (0«USBS) | (1«UCSZ1) | (1«UCSZ0) | (0«UCPOL); UBRRH=0x00; UBRRL=0x33; // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTС Bit 0 // RD - PORTС Bit 1 // EN - PORTС Bit 2 // D4 - PORTС Bit 3 // D5 - PORTС Bit 4 // D6 - PORTС Bit 5 // D7 - PORTD Bit 7 // Characters/line: 20 lcd_init(20); lcd_clear(); delay_ms(1000); while (1) { printf("%c%c%c%c%c%c",a,b,c,d,e,f); // отправка в порт //принимаем байты k=getchar(); // 0 байт if (k==99) {PORTD.2=1;} k0=getchar(); // 1 байт Активная энергия+ k1=getchar(); // 2 байт k2=getchar(); // 3 байт k3=getchar(); // 4 байт k4=getchar(); // 1 байт Активная энергия- k5=getchar(); k6=getchar(); k7=getchar(); k8=getchar(); // 1 байт Реактивная энергия+ k9=getchar(); k10=getchar(); k11=getchar(); k12=getchar(); // 1 байт Реактивная энергия- k13=getchar(); k14=getchar(); k15=getchar(); k16=getchar(); k17=getchar(); // 19 байт k0=k0«24; k1=k1«16; k2=k2«8; k0123=k0|k1|k2|k3; s=k0123; sprintf(buffer,"A+=%.4fkWh",s/2500); lcd_gotoxy(0,0); lcd_puts(buffer); // k4=k4«24; // k5=k5«16; // k6=k6«8; // k4567=k4|k5|k6|k7; // s=k4567; // sprintf(buffer,"A-=%.4fkWh",s/2500); // lcd_gotoxy(0,1); // lcd_puts(buffer); // // k8=k8«24; // k9=k9«16; // k10=k10«8; // k891011=k8|k9|k10|k11; // // // s=k891011; // sprintf(buffer,"R+=%.4fkVarh",s/2500); // lcd_gotoxy(0,2); // lcd_puts(buffer); // // // k12=k12«24; // k13=k13«16; // k14=k14«8; // k12131415=k12|k13|k14|k15; // s=k12131415; // sprintf(buffer,"R-=%.4fkVarh",s/2500); // lcd_gotoxy(0,3); // lcd_puts(buffer); delay_ms(1000); lcd_clear(); } }
  22. Приветсвую! Кто ни будь работал с микросхемой STLED316S? Это драйвер семисегментонго индикатора. Можете привести минимальный кусок кода который выводит любую цифру на дисплей. Из документации не пойму как с ней работать... На форумах инфы почти нет. Из того что есть тоже толку мало. Буду рад любой инфе по этой микросхеме. Ещё правильно же понимаю биты по SPI передаются младшим вперёд, а такты нужно передавать инверсные? В качестве МК применяю STM32.
  23. добрый день проект v-usb выкус из спецификации/инета/форумов: - реализация не полностью соответствует стандарту - работа на 100% не гарантируется - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...) :)) у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы. как следствие стабильно может работать только при "определенных условиях" в планах поработать с библиотекой. для начало решил "набросать" альтернативный вариант. (так сказать, попытаться закрыть все возможные дыры в подключении) достаем помидоры, баркова, мысли, высказываемся (заранее благодарен) tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx NO atmega32u4, NO arduino pro micro etc...
  24. Помогите понять где ошибка... не получается реализовать попеременный опрос 2ух каналов АЦП. Данные с одного канала должны передаваться на первый индикатор как напряжение, а со второго, соответственно на второй индикатор как сила тока. #define F_CPU 8000000U #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <util/delay.h> #define INDICATOR PORTD #define RANK PORTB unsigned int UR1=0, UR2=0, UR3=0, UR4=0; //переменные для деления на разряды значения напряжения unsigned int IR1=0, IR2=0, IR3=0, IR4=0; //переменные для деления на разряды значения силы тока int GainControl=1; int current_ch=0; float I, U; unsigned char voltage, current; unsigned int NUMS [10] = {0b11000000, 0b11111001, 0b10100100, 0b10110000, 0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000}; // от 0 до 9 int main(void) { DDRB=0xFF; PORTB=0x00; //ножки порта B для разряда DDRC=0x00; PORTC=0x00; //ножки порта C для АЦП DDRD=0xFF; PORTD=0xFF; //ножки порта D для индикаторов TCCR0 |= (1<<CS01); TCCR0 &= ~((1<<CS00) | (1<<CS02)); //настройка частоты таймера f/8 TIMSK |= (1<<TOIE0); //разрешение прерываний по переполнению таймера TCNT0=0; // обнуление счетчика ADCSRA |= ((1<<ADEN) | (1<<ADSC) | (1<<ADPS2)); // запуск АЦП, запуск преобразования, предделитель 16 ADCSRA &= ~((1<<ADFR) | (1<<ADIF) | (1<<ADPS1) | (1<<ADPS0)); // режим преобразвания прерывестый, флаг перобразования опущен, предделитель 16 ADMUX |= ((1<<REFS0) | (1<<REFS1)); //источник опорного напряжения 2.56В ADMUX &= ~((1<<ADLAR) | (1<<MUX0) | (1<<MUX1) | (1<< MUX2) | (1<<MUX3)); // направление записи, измерительная ножка ADC0; sei(); // вкл прерывания while (1) { if (ADCSRA & (1<<ADIF)) { U_Convert((U*5.00/1024)*100); I_convert((I*5.00/1024)*100); } } } void U_Convert (unsigned int U_num) //деление на разряды напряжения { UR1=U_num/100; UR2=U_num%100/10; UR3=U_num%10; } void I_convert (unsigned int I_num) //деление на разряды тока { IR1=I_num/100; IR2=I_num%100/10; IR3=I_num%10; } ISR (TIMER0_OVF_vect) { if (GainControl == 1) {INDICATOR = 0b11111110; RANK = NUMS[UR1];} //отображение 1ого разряда напряжения if (GainControl == 2) {INDICATOR = 0b11111101; RANK = NUMS[UR2];} //отображение 2ого разряда напряжения if (GainControl == 3) {INDICATOR = 0b11111011; RANK = NUMS[UR3];} //отображение 3ого разряда напряжения if (GainControl == 4) {INDICATOR = 0b11110111; RANK = NUMS[IR1];} //отображение 1ого разряды силы тока if (GainControl == 5) {INDICATOR = 0b11101111; RANK = NUMS[IR2];} //отображение 2ого разряды силы тока if (GainControl == 6) {INDICATOR = 0b11011111; RANK = NUMS[IR3];} //отображение 3ого разряды силы тока GainControl++; if (GainControl > 6) GainControl=0; // мониторинг переменной для управления затворами } ISR (ADC_vect) { if (current_ch == 0) { U = ADC; voltage = (U*2.56/1024)*100; ADMUX |= (1<<MUX0); current_ch = 1; ADCSRA |= (1<<ADSC); } else { I = ADC; current = (I*2.56/1024)*100; ADMUX &= ~(1<<MUX0); current_ch = 0; ADCSRA |= (1<<ADSC); } }
×
×
  • Create New...