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

AVR серии ATmega


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

Всем привет. Недавно заинтересовала возможность программировать микроконтроллеры, так как будучи ещё мелким собирал мелкие безделушки, например мигалки/пищалки на тех же микросхемах 155ЛА3 и прочее. Некоторые работали, некоторые не очень, было что и вовсе не придавали признаков жизни, может плохо хранились сами детали, может из-за старости, не суть. Да и за самим кампутером, в визуал студио мог проводить часы, делая самую разную бесполезную ерунду дабы углубиться больше в язык. Простейшие калькуляторы (как ни странно), игрушки с массивами, потом и крестики-нолики с ИИ, правда в консоли, а хотелось бы в нормальном графическом окне, хотя со временем понял, что консоль это не так уж и плохо :)

Так вот, предыстория гласит о том, что опыт с этим делом немного есть, но как и любому другому начинающему нужна помощь. Язык программирование будет соответственно Си, в будущем, за надобностью и ассемблер. Будут возможно и глупые вопросы, затупы, возможно и проблемы с -тся, -ться, так как русскому никто не учил, собственно сам то не русский, хотя орфографическая проверка на сайте есть, ура!

Сразу к делу. Первая проблема: атмеги8 приедут из Китая, как и сам программатор USBASP за доллар с копейкой, собственно их то и нужно для начала проверить. С программатором все просто (хотя и начитался что нужно на нем обновить прошивку, есть чем - ардуино нано, вполне рабочая), и сами микроконтроллеры. Тут то я и подвис. Гуглил, не нагуглил, зачем на плате для прошивки (там где будет вставляться в сокет микросхема) стоит внешний кварцевый генератор? То есть он уже будет работать с внешним, или только на время программирования? Хотелось бы получить более развернутый вопрос. Надеюсь на ваше понимание. Спасибо.

To be continued

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

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

Вообще я бы рекомендовал скачать даташит на контроллер и поиграться с ним именно на АССЕМБЛЕРЕ, чтобы так сказать прочувствовать всю кухню изнутри. Потом уже переходить на Си.

Если у вас есть ардуина, у вас есть и AVRDUDE - консольная утилита для работы с USBASP, надо только скачать либо GUI-оболочку либо описание команд AVRDUDE. Прошивать программатор нет смысла(вообще откуда взялось это непременное прошивательство сразу по прибытии? для чего?), он и так прекрасно работает с AVRDUDE.

Проверить контроллеры - просто попробовать считать калибровочную константу. Кварцевый генератор расположен на плате исключительно для случая когда контроллер сконфигурирован на работу с внешним тактовым сигналом или кварцевым резонатором. Но источник тактирования задаётся исключительно битами конфигурации контроллера, и изначально он внутренний и пока это не изменишь так и будет. И да, по этой же причине в программаторе сразу же поставь перемычку JP3 которая снижает скорость программирования - в таком варианте будут прошиваться все камни, и отключать имеет смысл только когда не устраивает скорость программирования. Множество камней с дефолтным внутренним тактированием просто не успевают на высокой скорости, а уж после того как они сконфигурированы на внешний кварц и он по меньшей мере 4Мгц то можно пробовать повышенную скорость.

Учение - изучение правил. Опыт - изучение исключений.

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

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

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

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

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

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

20 минут назад, Alexeyslav сказал:

Вообще я бы рекомендовал скачать даташит на контроллер и поиграться с ним именно на АССЕМБЛЕРЕ, чтобы так сказать прочувствовать всю кухню изнутри. Потом уже переходить на Си.

Хмм, даташит есть, думаю вы правы, стоит немного пожарить его изнутри) Но думаю это ненадолго, в ассемблере полный ноль..

20 минут назад, Alexeyslav сказал:

(вообще откуда взялось это непременное прошивательство сразу по прибытии? для чего?)

Честно? Смотрел много видео, и у каждого второго при попытке что-то сделать - выскакивала ошибка. Она конечно не влияла на исход прошивки, тем не менее, она была. И все мол "вот возьмите прошейте новую версию". Может быть оно и не надо, согласен, спросил потому что интересно было.

37 минут назад, Alexeyslav сказал:

Проверить контроллеры - просто попробовать считать калибровочную константу.

А вот это не на гуглил, везде PIC-ы суют. Где она сохранена? Не хватит ли просто сигнатуру считать?

40 минут назад, Alexeyslav сказал:

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

То-есть, если мне когда-либо приспичит работать с мк на больших частотах (например 16МГц), мне нужно: прицепить соответствующий резонатор, сконфигурировать, в проекте выставить F_CPU равное 16*10^6, и при следующей прошивки использовать такой-же генератор? Также слышал что внешние немного надежные, чем внутренний генератор..

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

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

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

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

6 часов назад, chotke сказал:

Честно? Смотрел много видео, и у каждого второго при попытке что-то сделать - выскакивала ошибка. Она конечно не влияла на исход прошивки, тем не менее, она была

Раз будет кучка 8-х мег, можно потратить одну на запасной программатор и уже на нем экспериментировать.

6 часов назад, chotke сказал:

То-есть, если мне когда-либо приспичит работать с мк на больших частотах (например 16МГц), мне нужно: прицепить соответствующий резонатор, сконфигурировать, в проекте выставить F_CPU равное 16*10^6, и при следующей прошивки использовать такой-же генератор? Также слышал что внешние немного надежные, чем внутренний генератор..

Да, нужно будет повесить кварц, конденсаторы к нему и настроить фузы.

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

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

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

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

Без асемблера и знания как контроллер работает программирование на С будет похоже на сплошную магию, и постоянно будешь удивляться.

Сигнатура сверяется каждый раз когда программатор вводит контроллер в режим программирования, а чтение калибровочной константы - самая простая процедура из доступных. Для AVRDUDE это отдельная специфическая область памяти.

При прошивке можно использовать ЛЮБОЙ генератор, не обязательно такой же на который он сконфигурирован. Там единственное условие - период сигнала SCK программатора должен быть не меньше чем 4 периода тактовой частоты ядра (на МЕГА8 по дефолту активирован делитель на 8, поэтому при тактовой в 8Мгц частота ядра будет 1Мгц и соответственно SCK должен быть не более 250кГц).

Учение - изучение правил. Опыт - изучение исключений.

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

А еще лучше поигратся в протеусе, а потом уже и на железо перейти.

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

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

2 часа назад, Alexeyslav сказал:

Без асемблера и знания как контроллер работает программирование на С будет похоже на сплошную магию

Не могу согласиться. Я осваивал МК именно в рекомендуемой вами последовательности - с ассемблера к Си. Но когда я освоил Си, я так и не смог понять, для чего мне был нужен ассемблер, кроме как для какой-то особой оптимизации и ковыряния в листингах. Если хорошенько разобраться с архитектурой МК и его аппаратной частью, то программирование на Си не принесет никаких сюрпризов начинающему. Тем более если основа для обучения будет достаточно "просторный" микроконтроллер типа atmega8 - это для attiny13 могут быть особенности Си критичны...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Протеус естественно стоит, как же без него то. Да и почему это все магия? Если есть хоть какие-то понятия как вся система работает, мне необязательно штудировать ассемблер, а сразу по немного открывать возможности мк Си: счетчики, интерфейсы и прочее..

 

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

21 час назад, TranceSmile сказал:

А еще лучше поигратся в протеусе, а потом уже и на железо перейти.

Не лучше. Он меньше мотивирует продолжать. Одно дело когда на экране мигает квадратик около вывода и другое - реальный светодиод.

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

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

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

В ‎16‎.‎02‎.‎2017 в 03:47, chotke сказал:

собственно их то и нужно для начала проверить.

Вот и начните с этого. Не надо все сразу усложнять.

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

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

Ну это понятно что на реальный светодиодов лучше смотреть.

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

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

35 минут назад, COKPOWEHEU сказал:

Он меньше мотивирует продолжать.

Вот уж соглашусь! После того, как подсел на протеус, ни одной платы не вытравил... ни одной почти за 7 лет! Зато количество разных программулин, написанных мною для МК, резко выросло :) 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

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

Помигать это конечно круто, сразу пошел запускать сегментные индикаторы через сдвиг регистра. Пошевелить мозги конечно пришлось немного. Также едет парочка популярных дисплеев 1602. Решил сначала самому написать библиотеку, но понял что пока никак. Потратив часов 4 на различных форумах, решил пока использовать готовую библиотеку за 2010 год, тем не менее компактную и рабочую. В будущем конечно будет собственная.

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

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

1 час назад, chotke сказал:

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

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

Для работы со стандартным отладчиком (GDB, например, или еще каким-то), потребуется скорее всего настоящий аппаратный отладчик типа AVR-ICE или AVR Dragon, или JTAG-отладчик (для МК, у которых этот порт есть). А все самоделки в лучшем случае будут выдавать что-то в USART...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

@chotke , а зачем писаьт свою библиотеку?! Вы же не изобретали велосипед? 

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

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

7 минут назад, TranceSmile сказал:

а зачем писаьт свою библиотеку?! Вы же не изобретали велосипед? 

Не интересно. Просто не интересно скопировать уже готовое решение, мне то точно. Да и просто хочется иметь все свое)

 

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

@chotke , Вы чем-то похожи на меня. Когда я начинал программировать. В этом есть плюс (практика) и минус (отнимает время)

По пятницам мы с коллегой мучаем старые платы (ненужные или не рабочие). Они либо горят либо взрываются.

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

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

Учение - изучение правил. Опыт - изучение исключений.

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

Как правило в нормальной библиотеке интерфейс нижнего уровня изолирован от верхнего уровня, поэтому для пробрасывания через SPI в сторонней библиотеке придется поправить вручную пару функций. И городить свою библиотеку для этого вовсе нет смысла. Все действительно лишнее будет выброшено оптимизаттором компилятора, а что останется - будет полезным и нужным, без которого не обойтись.

Заниматься собственными библиотеками есть смысл только в одном случае: когда в доступных сторонних библиотеках не реализован необходимый вам функционал. Но лично я затрудняюсь даже предположить, чего бы, например, могло не хватить мне в библиотекe от Peter Fleury, которой я пользуюсь уже много лет... 

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Заниматься собственными библиотеками есть смысл еще когда интересно разобраться как оно работает

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

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

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

2 часа назад, COKPOWEHEU сказал:

Заниматься собственными библиотеками есть смысл еще когда интересно разобраться как оно работает

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

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

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

Могут быть какие-то подводные камни, не описанные в даташите или описанные в каком-то неожиданном его месте. Всегда стоит осваивать новое устройство в тестовой среде а не сразу на финальной плате.

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

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

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

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

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

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

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

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

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

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

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

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

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