AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

модель не получается построить из-за отсутствия земли в изолированном участке схемы
Не много не понял, то есть мне нужно вместо батарейки подключить землю к светодиодам? А где она впротеусе? Не могу найти... И что обозначают мигающие синие и красные квадратики?
Реклама
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Re: AVR studio в вопросах и ответах

Сообщение CB1 »

Скидываю в архиве рисунок, там пример подключения светодиода. А в левом боковом меню открыто где находится земля, выше над строчкой выбора земли - выбор выхода +5В. При подключении нагрузки к микроконтроллеру нужно использовать их, потому что при подключении к батарейке работать не будет.
Вложения
1111.rar
(39.72 КБ) 168 скачиваний
Все гениальное - просто
Реклама
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение Alexeyslav »

Квадратики на выводах контроллера отражают их логическое состояние - синий - "0", красный - "1", серый - "Z" или отключен/аналоговый вход.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

CB1 Уррааа!) Заработало!) Благодарю 8)

=====
Вопрос возможно не по теме, за ранее прошу прощения. :oops: Подскажите пожалуйста, тип файла S Source (можно так же открыть блокнотом) после компиляции в протеусе превращается в файл HEX. (либо elf). Это, как я понимаю и есть сама прошивка, верно?
А вот можно ли наоборот из hex-файла сделать S Source, (чтобы получился программный код, который можно подредактировать, скажем в протеусе...) ? Другими словами можно ли подправить уже существующую прошивку?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: AVR studio в вопросах и ответах

Сообщение COKPOWEHEU »

*.S это не файл исходника в широком смысле, а только исходника на Ассемблере, причем, если я правильно помню, gnu-ассемблера.
Из *.elf-файла получить исходник проще, командой objdump. Причем возможно вернуть даже исходник на ЯВУ, на Си, например. Если скомпилировано было правильно, сохранятся и имена комментариев, и комментарии и т.п.
Из *.hex - только дизассемблировать, причем потеряются форматирование, комментарии, макросы, именованные переменные и прочее. Будет тупо набор команд. Достаточно ли у вас знаний чтобы в этом разбираться?
Реклама
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

знаний к сожалению не достаточно пока. А вот желание разобраться есть. Если можно на конкретном примере. Вот у меня например есть elf-файл. Мне необходимо увидеть его код и прочие команды на языке Си. Допустим проекта не имеется, а только сам файлик-elf. С чего начать, поэтапно?
Реклама
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: AVR studio в вопросах и ответах

Сообщение axillent »

если у вас только .elf файл то код на языке Си вы никогда не увидите
если же к .elf файлу есть исходники на Си, то можно увидеть привязку машинных инструкций к конкретным строкам кода на Си
так работает отладка
но получить из машинных кодов текст на языке Си не получится, чудес таких нет
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

другими словами подправить "вытянутую" из МК прошивку невозможно? Только написать самому заново, так?

======
И еще вопрос возник: как выглядит код " одновременности"?) Допустим мне необходимо подать единичку только на две лапки МК но одновременно. Как это будет выглядеть в виде кода на языке Си в программе AtmelStudio?
Последний раз редактировалось Олегыч1 Вт июн 14, 2016 12:12:29, всего редактировалось 1 раз.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: AVR studio в вопросах и ответах

Сообщение axillent »

Подправить можно на уровне ассемблера
Но нужно будет самому следить, чтобы всякие важные таблицы типа векторов прерываний не сьехали

Если вы собрались чужую прошивку править, будьте готовы к тому, что она может быть защищена от чтения
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

отлично, значит все-таки это возможно. Я предыдущее подправил сообщение о вопросе об одновременности:)
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: AVR studio в вопросах и ответах

Сообщение axillent »

Если ножки на одном порту то выставить единички одной командой сразу
Если на разных, то последовательно, разрыв по времени будет от одного до нескольких тактов MCU, на 16мгц такт это 62.5 наносекунды
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

Если ножки на одном порту то выставить единички одной командой сразу
Немного не понял... Допустим нужен сигнал одновременно на первой ножке МК и на второй (по имени PB0 и PB1)
Вот такой способ не получился:
//Подать сигнал
PORTB = 0b00000001;
PORTB = 0b00000010;
//Выдержать время
_delay_ms(1000);
//Убрать сигнал
PORTB = 0x00;
_delay_ms(300);
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: AVR studio в вопросах и ответах

Сообщение dr.doc »

А написать PORTB = 0x03 (0b0000 0011)?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

да, то, что нужно. Спаксибо!

==============


Теперь новая проблемка возникла. С программами вроде немного разобрался. В Протеусе все работает как и хотел. Решил прошить в реальности свой микроконтроллер. Прошил, все отлично. Но как теперь его правильно включить, чтобы мои светодиоды замигали наконец?)) При прошивке ножки МК атмега-8а по имени VCC и AVCC (7 и 20 лапки) были соединены воедино. При подаче питания на эти лапки светодиоды молчат. Зачем у МК вообще две этих ножки питания, а не одна? Две земли понятно-для удобства подключения (хочу в ту, хочу в другую подключусь), верно?
Надо ли отпаивать программатор от МК, а то он у меня припаян))
Программатор самый простой Громова с внешней подачей питания +5 вольт.
Анод светодиода подключил к ножке МК, катод светодиода к GND МК
Что неправильно делаю?
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Re: AVR studio в вопросах и ответах

Сообщение CB1 »

Выходы земли нужно подключать два, а не на выбор.
Про подключение микроконтроллера можно здесь почитать http://www.myrobot.ru/articles/mc_stab.php
Опять же нужно не забывать подключить выход Reset, а иначе то же микроконтроллер может не захотеть работать.
Прочитал сообщения про то как получить код из прошивки, можно только из hex файла получить код на ассемблере, а по другому никак.
Все гениальное - просто
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: AVR studio в вопросах и ответах

Сообщение COKPOWEHEU »

axillent писал(а):если у вас только .elf файл то код на языке Си вы никогда не увидите
если же к .elf файлу есть исходники на Си, то можно увидеть привязку машинных инструкций к конкретным строкам кода на Си
так работает отладка
но получить из машинных кодов текст на языке Си не получится, чудес таких нет
*.elf это не машинные инструкции, не путайте с *.hex или *.bin. Если elf-файл собран с отладочной информацией (флаг -gdwarf-2 в gcc)из него вполне можно достать исходный код, хотя и не напрямую и не полностью. Как я уже говорил, это делается утилитой objdump. В случае AVR команда выглядит как
avr-objdump -S file.elf > file.lss
тогда в file.lss будет и часть исходника на Си и его дизассемблерированный вариант. Разобраться и подправить можно.
Зачем у МК вообще две этих ножки питания, а не одна? Две земли понятно-для удобства подключения (хочу в ту, хочу в другую подключусь), верно?
Две (или более) земли нужны для обеспечения большего суммарного тока. По документации максимальный ток по линиям питания 200 мА. Для тоненьких проводничков, напыленных на кристалле, это много. Чтобы не нагружать эти проводнички сверх меры, питание подается на разные части кристалла с разных внешних выводов. С AVCC все еще немного сложнее. Этот вывод используется для запитывания всей аналоговой части - компаратор, АЦП и PC0-PC3, то есть без подачи питания все это может не заработать. Это сделано для того чтобы можно было питать ядро от менее "чистого" питания, чем АЦП, причем шумы от самого ядра на питание АЦП также не попадают. Таким образом можно увеличить точность преобразования.
Анод светодиода подключил к ножке МК, катод светодиода к GND МК
Надеюсь, резистор не забыли...
Привели бы полную прошивку (с нормальным форматированием и под спойлером!), схему и фото платы.
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

COKPOWEHEU, Резисторы не забыл, но т.к. все было припаяно навесным монтажем и резисторы были SMD, то один оторвался:) и поэтому один светодиод я подключил напрямую, т.к. мне его не жалко если сгорит. Чисто ради експеримента.)
К ножке RESET припаял резистор на 10 кОм и подал через него питание 5 вольт.
Две земли соединил.
Две ножки питания тоже соеденены.( еще при прошивке были соединены) Но по прежнему ничего не запускается :facepalm: Даже без того светодиода, который без резистора был...
Проект протеуса по имени "3"
Сам код по имени "код")
и прошивка по имени "2"
Ну фото платы стыдно показывать, т.к. ее вовсе нет :lol: Одни провода, все навесным монтажем). Единственное не отпаивал сам программатор
Вложения
2.rar
(377 байт) 113 скачиваний
Код.c
(1.03 КБ) 268 скачиваний
3.rar
(15.08 КБ) 125 скачиваний
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение Alexeyslav »

А биты конфигурации контроллера? Откуда и какое тактирование он получает у вас на плате?
Понимаю что в протеусе биты конфигурации стояли по умолчанию, а при прошивке вы могли не заметить как прошили совсем другую конфигурацию. Это как правило является проблемой для прошивающих в первый раз...
Аватара пользователя
Олегыч1
Поставщик валерьянки для Кота
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Re: AVR studio в вопросах и ответах

Сообщение Олегыч1 »

Откуда и какое тактирование он получает у вас на плате?
Вот этого точно не знаю. Но вроде бы у атмеги 8 встроенный кварцевый резонатор на 8 мГц. Но могу ошибаться...
А биты конфигурации контроллера?
Их надо выставить в uniprof ? Как именно это сделать? Какие и куда биты выставлять?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение Alexeyslav »

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

Вернуться в «AVR»