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

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

Хотел бы представить вашему вниманию свою отладочную плату, может быть кому будет полезна при эксплуатации.

Плата из одностороннего текстолита.

Контроллер используется ATMEGA16/32.

Начинка:

- ЖК дисплей 16x2

- 4 кнопки + одна для сброса

- LED дисплей ( 4 разряда по 7 сегментов)

- 8 светодиодов различных цветов

- Buzzer ( у меня со встроенным генератором)

- 2 подстроечных резистора для задания аналоговых величин

- EEPROM память на панельке

- часы реального времени DS1307 с питанием от резервного элемента питания

- UART - USB на отдельном контроллере ATMEGA8(отладка на ПК)

Практически всю периферию можно подключать к портам контроллера посредством DIP переключателей или джамперами.

1-Wire и I2C шины выведены отдельными цанговыми разъемами.

Порты контроллера также выведены на двухрядные цанговые разъемы + однорядный разъем типа PLS.

Во вложении архив с исходниками программ-примеров, написаны на BASCOM, монтажная схема

Принципиальная схема будет позднее (она в голове), пока нет времени ее чертить.

post-78998-0-89537300-1412847545_thumb.jpg

post-78998-0-16752700-1412847556_thumb.jpg

post-78998-0-41433800-1412847556_thumb.jpg

post-78998-0-65870800-1412847556_thumb.jpg

post-78998-0-90745200-1412847556_thumb.jpg

new.rar

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

- часы реального времени DS1307 со встроенным элементом питания
Это в микросхему встроена батарейка?! Зачем она тогда на плате? Наверное имелось в виду, что RTC со всей обвязкой, включая батарейку.
- UART - USB на отдельном контроллере ATMEGA8(отладка на ПК)
А чего программатор или, хотя бы, самозагрузчик не развели на плате, чтоб не таскать отдельный программатор?
Во вложении архив с исходниками программ-примеров, написаны на BASCOM, монтажная схема
Еще один учитель плохому стилю? Если уж даете примеры, давайте их на ассемблере, в крайнем случае - Си.
Во вложении ... монтажная схема
Схемы в читаемом формате нет, без этого трудно оценить.

---

Не оценивали стоимость своей платы?

Нет выхода COM-порта (max232 с обвязкой плюс разъем DB-9). AVR-CDC не всегда работает правильно. С другой стороны, тратить ATmega8 на AVR-CDC, когда тоже самое можно сделать на ATTiny45... или она используется для чего-то еще?

Предполагается ли замена кварца и подключение внешнего часового на PC6, PC7 к асинхронному генератору?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

UART - USB на отдельном контроллере ATMEGA8 выходит дешевле и доступнее классических преобразователей на FTDI, скорость (на ATMEGA8

скорость достигает 38400, в отличие от ATTINY45-85) позволяет отлаживать по терминалу многие проекты, да и просто ATMEGA8 имеются в некотором количестве.

BASCOM часто использую в программировании, поэтому исходники этой среды разработки и выложил. Никто не запрещает использовать другую среду разработки, тем более от железа ничего менять не требуется.

Схему монтажную (в удобочитаемом виде) вложил в архив.

Стоимость платы? Для какой цели? Делал для себе, старался из имеющихся комплектующих собирать. Ну а для себя стоимость - бесценна.

Нет выхода COM-порта (max232 с обвязкой плюс разъем DB-9)
лично для меня это неудобно, COM-порта на компе уже и нет, а через переходники подключать - огород городить. Хотелось так - чтобы воткнул USB и все, отлаживай.

Кварц ставится на цангу, так что ничто не мешает к цанге подключать сторонние генераторы проводками (хотя это не по фэншую). Для себе не ставил цели подключать внешние генераторы.

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

UART - USB на отдельном контроллере ATMEGA8 выходит дешевле и доступнее классических преобразователей на FTDI
Согласен, но лично у меня были проблемы с установкой неподписанных драйверов. К тому же, на FTDI проще реализовать программатор, объединенный с преобразователем.
на ATMEGA8 скорость достигает 38400
Это все-таки отладочная плата, чего за скоростью гоняться. Впрочем, разница цены m8 и tn48 не так велика. В данном случае, согласен, вполне оправдано.
Стоимость платы? Для какой цели?
А вдруг есть аналоги более универсальные / функциональные / дешевые. Вы же выкладываете плату не только чтобы похвастаться, но и чтобы народ мог повторить и пользоваться.
Для себе не ставил цели подключать внешние генераторы.
Отладочная плата нужна в первую очередь чтобы разобраться с преферией контроллера, и только затем, с внешними устройствами. Соответственно, хорошо бы вывести наружу как можно больше соответствующих выводов. Впрочем, на любителя.
Никто не запрещает использовать другую среду разработки, тем более от железа ничего менять не требуется.
Те, кто уже достаточно хорошо знают соответствующий язык, обычно и так обладают какими-бы то ни было отладочными платами. Универсальная же, вроде Вашей, скорее подходит для обучения с нуля. Примерно как в видеоуроках на этом форуме или, скорее, как в цикле статей DI HALT'a.

Ну, и у дисплея разъем какой-то странный - две гребенки по 6 выводов, при том, что установлен обычный, с 16-ю выводами или, по крайней мере, очень на него похожий. Подключение по 4-проводной схеме и только по ней, причем без обратной связи? Не лучшее решение для отладочной платы, лучше сделать универсально.

И, все-таки подумайте о встраивании программатора прямо в плату. ATmega8 со всей обвязкой уже установлена. Как вариант - попробовать закинуть код кого-нибудь из них (CDC или программатора) в загрузчик, контролируя его перемычкой. Скажем, надо перепрошить контроллер - устанавливаем перемычку, сброс m8, она работает как программатор. Потом убираем перемычку, сброс - работает как преобразователь. На самом деле не знаю, насколько это будет легко сделать, не пробовал. Другой вариант - потратить 256 байт из 16/32 кБайт на самозагрузчик (bootloader) и прошивать тогда по тому же UART'у.

Кстати, разъем ISP не по стандарту - выводы 4 и 6 висят в воздухе, хотя должны быть заземлены. Еще было бы неплохо сделать этот разъем двунаправленным, чтобы контроллер мог общаться с устройствами, имеющими SPI-интерфейс. Для этого надо всего лишь использовать один из выводов как CS, лучше всего 3-й, LED/NC (который между MOSI и RST), повесить на него любой вывод контроллера. Лучше всего, конечно, CS модуля. И, хорошо бы, отключать 5-й вывод (RST) джампером, но это не обязательно.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

Ну стоимость самим можно посчитать, по моему региону/моим магазинам цена рассыпухи одна,в других другая.

Дисплей использую по стандартной схеме - 4-битная шина. А то,что у него распаяны все выводы,так это такой дисплей попался, вот и все объяснение.

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

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

Я же не говорю посчитать с точностью до копейки, а хотя бы порядок величины, чтобы можно было сравнивать с другими платами.

Дисплей использую по стандартной схеме - 4-битная шина.
По умолчанию он работает в 8-битном режиме, плюс если выводов хватает - хорошо бы организовать обратную связь. Но даже если обойтись 4-битной схемой, неиспользуемые выводы хорошо бы заземлить, чтобы ничего не наводилось.
Насчет встраивания программатора
И я повторюсь, что всех изменений - 3 резистора и 4 перемычки, ну, может еще кнопка. Остальное уже и так есть на плате. Собственно, если все так, как на рисунке, то есть огромные земляные полигоны, можно на них и вырезать места под резисторы, а перемычки по нижней стороне проводком пустить. Кстати, вроде же в usbasp или его аналогах выведен UART, как раз на 4 и 6 ноги. Может кто имеет опыт в его использовании?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

В usbasp теоретическая возможность UART вроде есть,но практически я не видел ее реализации. Могу ошибаться.

Какие могут быть наводки на отладочной плате,лежащей на компьютерном столе?

Я вскрывал лично несколько промышленных приборов(импортных том числе) с аналогичными дисплеями, и не заметил заземленных свободных выводов дисплея(в 4-битном режиме используются)

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

На первых страницах поисковика не нашел способов использования линий UART'а. Возможно, они добавлены для отладки (oddebug). Хотя идея это использовать достаточно интересна, надо будет поиграться потом.

У меня даже с заземленными выводами появлялись наводки. Устройство собрано в одном корпусе с силовой частью, соответственно, электромагнитные поля приличные, плюс выводы контроллера могут переключаться на вход, впрочем, управляющие линии вроде не переключаются. Суть в том, что пока не заэкранировал шлейф (алюминиевый скотч плюс обычный для изоляции), дисплей время от времени переходил в совершенно произвольные режимы. Обычно из четырехстрочного в двустрочный, или просто заполнялся мусором. На Вышей плате это, к сожалению, не исправить, но для повторяющих лучше предусмотреть все выводы дисплея и заземлить неиспользуемые.

Посмотрел "адреса переферии.xlsx", пара замечаний по оформлению: PORTC.3 лучше записать не как в cvavr (как будто это структура или объект), а как в документации - PC3, лучше читается.

"8 LED" Логичнее было бы написать соответствие цветов диодов номерам порта, тем более что номера диодов и портов все равно совпадают.

"LCD" Лучше было расположить линии данных в одном полубайте, либо PD0 - PD3, либо PD4 - PD7, меньше лишних сдвигов. А вот RS и E можно вешать куда угодно, хоть на другие порты, все равно они управляются отдельно.

"ONEWIRE", "I2C" а чего SPI не обозначили? Перед использованием его выводы все равно надо инициализировать.

"BUZZER", "7-seg led" (кстати, LED-аббревиатура, лучше писать заглавными), "8 LED" в третьей колонке 0V / 5V означает активный уровень?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Есть неофициальная прошивка usbasp , с uart, но там скорость мизерная очень,максимум 1200.

Это в случае использования платы рядом с силовым оборудованием с высокой напряженностью тока. Пользуюсь с июля месяца платкой, беру ее на работу,а там много приборов рядом лежат - никаких наводок, дисплей работает нормально.

Номера портов я записал в той форме,в какой используется в данном компиляторе (BASCOM), чтобы по принципу "копировал-вставил", для новых проектов.

Светодиоды изначально хотел одного цвета использовать, но были разных цветов, поэтому использовал парно-разные цвета.

В таблице указан активный уровень для светодиодов и LED - индикатора.

SPI не стал выводить, часто пользуюсь программным, ну а для аппаратного SPI имеется цанговая колодка.

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

Симпатично сделано, вполне может потянуть на статью.

Обратитесь к Админу, думаю, он с удовольствием выложит это творение на сайт, в виде статьи.

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

Не оценивали стоимость своей платы?

Ну примерно 700-900 рублей. Сейчас посчитал.

Вообще это второй экземпляр платы, первый делал коллеге, немного отличающийся(первая версия)

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

Номера портов я записал в той форме,в какой используется в данном компиляторе
А в бейсике нельзя использовать макросы для удобного обращения к выбранной линии? Ну хотя бы что-нибудь вроде такого набора макросов (писал по памяти, кое-где мог ошибиться)

#define _concat(a,	 a##b
#define concat(a,	 _concat(a,
#define arg1(a,	 a
#define arg2(a,	 b
#define PORT(x)	 concat(PORT,arg1(x))
#define PIN(x)	 concat(PIN,arg1(x))
#define DDR(x)	 concat(DDR,arg1(x))
#define SET_BIT(dst,x)	 concat(dst,arg1(x)) |= (1<<arg2(x))
#define CLR_BIT(dst,x)	 concat(dst,arg1(x)) &=~(1<<arg2(x))
#define TEST_BIT(x)	 (PIN(x) & (1<<arg2(x)))

И их использование. Преимущество в большей гибкости: настройки можно вынести в отдельный файл, и большем удобстве: не надо искать по всему коду где их надо изменить.

#define LED1 B,1
#define BTN1 C,5
...
SET_BIT(DDR, LED1); //настройка вывода, подключенного к диоду на выход
CLR_BIT(DDR, BTN1); //настройка вывода, подключенного к кнопке на вход (считаем, что подтяжка внешняя, чтобы не плодить несущественный код)

if(TEST_BIT(BTN1)){ //проверка состояния кнопки
 SET_BIT(PORT,LED1); //включение диода (подача на него лог.1)
 }else{
    CLR_BIT(PORT,LED1); //выключение диода (подача лог.0)
 }

В ассемблере такое, к сожалению, реализовать не смогли. Насчет бейсика и прочей редко используемой экзотики не в курсе.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

На этой плате я отладил уже около 5-6 проектов,некоторые уже используются

Проект будущей "метеостанции"

post-78998-0-33189500-1413611636_thumb.jpg

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

  • 3 недели спустя...

Нашел способ совместить в одной микросхеме несколько vusb устройств, например, программатор и переходник в UART, с использованием самозагрузчика. Довести это до логического финала или все же не прислушаетесь к совету?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

на каком чипе? m8 ?

по большому счету удобно конечно, если все это будет функционально, приемлемая скорость программирования - работа по терминалу.

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

Да, на том, что сейчас работает переходником.

На самом деле все просто. Например, хотим зашить программатор в секцию загрузчика. Открываем исходник, добавляем перемещение таблицы векторов прерываний в начало самозагрузчика и в настройках линкера перемещаем секцию .text туда же и добавляем проверку, скажем, перемычки. Для перемычки два варианта - можно проверять ее только при старте (это проще, но придется при изменении режима ресетить контроллер), а можно непрерывно (чуть сложнее, потому что надо обработать настройки переферии и тому подобного). А потом совмещаем оба hex-файла в один. Вроде как это можно сделать тупо копипастом.

Пойду развлекаться реализацией этого на практике :-)

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Пока ни usb-uart, ни avrdoper-hid не лезут в секцию загрузчика, они где-то по 2.5 кБайта, а загрузчик - всего 2.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

А не жалко их на программатор ставить? К тому же у m8 нет старших версий, даже m48/88/168/328 отличаются переферией и расположением регистров, разве что по выводам совместимы. А m16 и m32 с m8 даже по выводам не совместимы.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Я же написал - полностью совместимы по выводам, но в m48-серии добавлены модуль PCINT, часть регистров перенесена в пространство ОЗУ, добавлено несколько регистров настроек вроде TIMSK2, некоторые были переименованы, как USART -> USART0 или MCUCR -> MCUCSR, так что простым копипастом перенести можно не всегда. Про объем памяти и не говорю.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

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

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

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

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

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

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

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

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