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

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

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

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

Контроллер используется 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
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

---

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

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

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

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

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

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

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

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

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

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

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

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

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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 раз.

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

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

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

Дисплей использую по стандартной схеме - 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 пользователей онлайн

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

    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
  • Похожий контент

×
×
  • Создать...