PDA

Просмотр полной версии : Микроконтроллеры AVR



Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16

Genadi Zawidowski
21.12.2014, 19:30
То что его нет при последовательном программировании хорошо, не сбросите случайно (правда, оно вроде в этом режиме и не меняется).

R0ACL
17.01.2015, 10:25
Здравствуйте, уважаемые!
Собираю конструкцию ESR на Attiny2313. В описании даны фуз-биты для программирования при помощи PonyProg. 192217
У меня же программатор TL866A, made in China. Возник вопрос: нужно ли инвертировать фузы при программировании на TL866? Где то попадалась такая информация, что в PonyProg фузы инвертируются. Подскажите кто сталкивался с подобным. Спасибо.

Genadi Zawidowski
17.01.2015, 10:54
Считайте состояние фюзов процессора из магазина - оно покажет, как надо интерпретировать в Вашем программаторе.

R0ACL
17.01.2015, 11:43
Геннадий, добрый день! Считал, что Вы мне подскажете.192229

Genadi Zawidowski
17.01.2015, 12:02
Вот кусочек из даташита на процессор, где отмечено то, что в процессоре из магазина.
Вам в вашем программаторе для работы с внешним кварцем надо снять все галочки на CKSEL и снять CKDIV8.
Мой вывод - Ваш программатор отображает фюзы ТАК ЖЕ КАК, КАК И PonyProg.

R0ACL
17.01.2015, 12:14
Геннадий, большое спасибо! А галку на SPIEN вообще не трогать?

R3DMO
17.01.2015, 12:42
Здравствуйте уважаемые Гуру и начинающие!
Вот тоже решил приобщиться к AVR, давным давно работал с 51ми однокристалками писал на Асме. Прикупил Arduino DUE с Atmel ATSAM3x8E. Читаю даташит и чёт никак не въеду, вроде есть выходные порты, но как запрограммировать их непойму. По сравнению с ATmegой СОВЕРШЕННО разные архитектуры и система программирования ввода/вывода. Ткните пожалуйста носом, чтоб хотя бы начать....
Заранее благодарю.

Genadi Zawidowski
17.01.2015, 12:47
А галку на SPIEN вообще не трогать
Не трогать.

Для SAM3Sxxx например так:

/* программирование выводов на вывод, без присоединения к периферии */
void
arm_hardware_pioa_ou tputs(unsigned long opins, unsigned long initialstate)
{
PMC->PMC_PCER0 = (1UL << ID_PIOA);
PIOA->PIO_SODR = (opins & initialstate); // Установка единицы в регистре данных
PIOA->PIO_CODR = (opins & ~ initialstate); // Установка нулей в регистре данных
PIOA->PIO_OER = opins; // эти выводы на вывод
PIOA->PIO_PUDR = opins; // отключить подтягивающие резисторы
PIOA->PIO_MDDR = opins; // Disable open drain output
}

R0ACL
17.01.2015, 12:53
Ок, Геннадий. Спасибо!

R3DMO
17.01.2015, 13:13
Спасибо Геннадий, я себе приблизительно так же представлял, но были сомнения

ra3gcp
30.01.2015, 00:06
Хотел бы спросить у народа.Есть программатор usGoZilla.Если программировать МК не внутрисхемно,то нужен ли какой нибудь кварцевый резонатор при этом?Или там всё программируется с помощю внутреннего генератора.Хотелось бы ответа на этото вопрос.

UA0YAS
30.01.2015, 00:14
Зависит от установленных фьюзов.

Genadi Zawidowski
30.01.2015, 01:13
Если прошиваются фюзы на внешний генератор или кварц, то пока не впаяете в схему, последовательным программатором больше не достучитесь. Процессоры их магазина все с работой от внутреннего генератора, чаще всего на 1 МГц, так для usGoZilla надо ставить пониженную скорость работы по SPI.

ra3gcp
30.01.2015, 10:40
Спасибо за ответы.Единственное хочу уточнить!!,где нужно выставить пониженную скорость обмена, в настройках порта, или же в настройках программы (например АВР Студия)?. И как я понял если схема устройства на МК работает с внешними генераторами( что отражается в фюзе битах) то при программировании и нужно ставить кварц? Кварц именно с той частотой? с которой потом устройство должно работать? Или во время программирования можно применять любой, даже с запятой (например 3.600 )?. А устройство работать будет к примеру с 8.000.Или автор написанной программы четко задает на какую частоту кварц или генератор, при прошивке и дальнейшей работе устройство, должно работать. Сильно не пинать, хотя в радио давно, но с такими вещами сталкиваюсь впервые.Хочется освоить, понятия и принципы программирования вообщем. Познакомится с принципом построения составления программ, а также со структурой МК .Вижу форумов в инете достаточно на эту тему,да и литература есть.Конкретно еще не выбрал направления на каком языке программирования остановится, так сказать зациклиться, но конечно для начинающих по проще и понятние что бы все таки был прогресс к логическому концу. Серьезно конечно не буду стремится к каким то глобальным написанием прог, но какое то устройство типа частотомер, управление чем то не большим и т.д хотелось бы достигнуть. Ну вот как-то так.

Genadi Zawidowski
30.01.2015, 11:26
Вот окно, где скорость ставится - после нажать соответствующую кнопку (write).
Если операйия записи фюзов будет последней (сперва пишем flash), то кварц можно не ставить. Да, ucGozilla умеет формировать сигнал для подачи как внешняя синхронизация - выделено красным - в таких случаяз (на 3-й ножке разъёма ISP10) - так что, Вам и кварц не нужен.
Частота внешнего генератора в режиме программирования не имеет отношения к частоте, что автор программы задумал.

ra3gcp
30.01.2015, 11:59
Genadi Zawidowski,
Спасибо я все понял. Не пробовал я им еще программировать,наве рное когда будет не много практики и вопросов меньше станет.На чем испытать есть МК ATmega8 и ATini2313.Вобщем то имею и программатор PCkit2,и пики тоже интересны, но это другая тема.Спасибо за ответ.

pavasilich
29.12.2015, 11:14
...Вобщем то имею и программатор PCkit2...
Так и PCkit2 элементарно шьет AVRы. Внутрисхемно тоже. Подробнее здесь: http://elena-march.narod.ru/ Вот только не знаю его возможности по сравнению с usGoZilla, т.к. второго у меня нет.

Павлуша
30.01.2016, 16:06
Добрый вечер! Подскажите как использовать такой программатор? http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino/310506909410?_trksid =p2046732.c100040.m2 060&_trkparms=aid%3D1110 01%26algo%3DREC.SEED %26ao%3D1%26asc%3D20 140107095009%26meid% 3D39bd1f2c73634ba881 0164a9f39a0010%26pid %3D100040%26rk%3D1%2 6rkt%3D4%26mehot%3Dp p%26sd%3D31050690941 0. Можно собрать еще такой но не знаю работает или нет. Кварц можно использовать от материнских плат есть 14.3? http://yl2gl.ucoz.net/news/programmirovanie_avr/2011-02-25-70

Genadi Zawidowski
30.01.2016, 16:13
12 МГц это требование для работы с USB, заменять в данной конструкции на 14.318 не стоит. Но это теоретические рассуждения, может быть, такое отклонение и не страшно...

Павлуша
30.01.2016, 16:20
Да просто нет 12 вот беда.

А если готовый купить программатор. http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino/310506909410?_trksid =p2046732.c100040.m2 060&_trkparms=aid%3D1110 01%26algo%3DREC.SEED %26ao%3D1%26asc%3D20 140107095009%26meid% 3D1cf4cef5b87a4a9493 1f4979532e91df%26pid %3D100040%26rk%3D1%2 6rkt%3D4%26mehot%3Dp p%26sd%3D31050690941 0

LY3BBI
30.01.2016, 16:27
А если готовый купить программатор.
Покупайте. Есть такие же, только в пластиковом корпусе (это не важно но красивее). Работают замечательно. За эту цену возиться с изготовлением самоделки не вижу смысла.

Milldi
30.01.2016, 16:31
А если готовый купить программатор. http://www.ebay.com/itm/USBASP-USBIS...3D3105069094 10
купите.
для работы с ним нужна как правило (все зависит от степени китаезности) программа: progisp 1.72

Павлуша
30.01.2016, 16:41
Спасибо за совет! При подключении к контроллеру никаких доп схем делать не нужно. Или только панельку и сам контроллер.

Добавлено через 5 минут(ы):

Кажется нашел подключение http://kaz-robot.kz/index.php/osnovy-robototekhniki/18-podklyuchenie-i-programmirovanie-mk-atmega8 наверное так?

Milldi
30.01.2016, 16:45
да так, но питать мк можно и от программатора
224274
мк замените на свой, номера выводов подкорректируете, в разных корпусах выводы мк могут иметь разные номера, проверяйте по даташиту.

Павлуша
30.01.2016, 16:57
А чем отличается ATMEGA8A от 8L

Milldi
30.01.2016, 17:06
скачайте даташит и посмотрите

ur3ilf
30.01.2016, 17:18
скачайте даташит и посмотрите
Можно было бы просто ответить что отличаются максимальной тактовой частотой и диапазоном напряжения питания.

ATmega8 4.5-5.5V / speed 0-16MHz
ATmega8L 2.7-5.5V / speed 0-8MHz

Естественно ATmega8L 12MHz за пределами указанными в даташите, но у меня с 12MHz работает в одном приборчике. Питание 5 вольт. Кварц стоит маленький такой. С дохлой юсб флешки выпаял.

Павлуша
30.01.2016, 17:30
Значит кварц 12MHz можно с флешки надыбать? http://www.rlocman.ru/shem/schematics.html?di=7 1523 по этой схеме я так понял можно кварц любой поставить? У меня есть пока только 14.3

Milldi
30.01.2016, 17:34
Можно было бы просто ответить что отличаются максимальной тактовой частотой и диапазоном напряжения питания.
Я такие МК не использую, поэтому даташита нет под рукой.

vadim_d
30.01.2016, 18:24
Естественно ATmega8L 12MHz за пределами указанными в даташите, но у меня с 12MHz работает в одном приборчике. Питание 5 вольт
Реально скорость зависит от напряжения питания, часто приводятся графики. Если 8 МГц гарантируется для минимума в диапазоне 2.7-5.5V, то на максимуме (5 вольт) вполне можно ожидать и 12 МГц

zak
30.01.2016, 20:05
купите.
Хороший программатор. Уже год пользую с avrdudeprog - никаких проблем.

XENOMORPH
30.01.2016, 20:21
Этот, маленький USB проггер (usbasp v2.0) за 100р, умеет восстанавливать чипы, с нечаянно запрограммированным RSTDISBL?

R2PM
30.01.2016, 20:34
Этот, маленький USB проггер (usbasp v2.0) за 100р, умеет восстанавливать чипы, с нечаянно запрограммированным RSTDISBL?
Здравствуйте!!!
Очень интересно, поясните как??? есть несколько шт. залученных.
Виктор R2PM

XENOMORPH
30.01.2016, 20:39
rd3pq,
Восстановить не проблема, наберите в поисковике строчку - ATmega8 реанимирует своего убитого собрата. Это касается именно Atmega8.
А меня интересует, может ли это проделать именно эта модель программатора.

Milldi
30.01.2016, 20:59
умеет восстанавливать чипы, с нечаянно запрограммированным RSTDISBL?
нет не може.
Для восстановления нужен так называемый "паралельный" или "высоковольтный" программатор, или специальный программатор фьюзов Fuse-doctor

Павлуша
30.01.2016, 21:12
Хороший программатор. Уже год пользую с avrdudeprog - никаких проблем.
А как его подключаете к контроллеру?

zak
30.01.2016, 21:24
контроллеры в основном использую с планарными выводами, на плате развожу колодку под шлейф программатора

Павлуша
30.01.2016, 21:27
Прогу скачал.Спасибо! Будем изучать. Обозначение выводов с программатора там есть?

zak
30.01.2016, 21:32
так

в аврдуд нет, там интерфейс очень простой, обозначение выводов программатора "подгонять" под конкретный контроллер

Павлуша
30.01.2016, 21:50
Это плата программатора?

zak
30.01.2016, 22:08
это разъем для программатора

схема на atmega32

Добавлено через 9 минут(ы):

Выводы программатора Milldi указал в посте #1224, к ним подключить соответствующие выводы контроллера по даташиту

Павлуша
19.02.2016, 18:59
Добрый вечер! Приобрел программатор http://www.ebay.com/itm/310506909410 что еще надо будет для программирования? Спасибо.

ur3ilf
19.02.2016, 19:01
Микроконтроллер AVR который вы ним будете программировать и программа которая поддерживает этот программатор.

Genadi Zawidowski
19.02.2016, 19:06
Вот тут подробности: http://www.prottoss.com/projects/AVR910.usb.prog/avr910_usb_programme r.htm

Павлуша
19.02.2016, 19:07
Программу скачал, изучаю. Ну сам контроллер понятно. Но каждый по всякому пишет, доп кварц необходимо. Кто пишет напрямую к программатору.

Milldi
19.02.2016, 19:20
Добрый вечер! Приобрел программатор http://www.ebay.com/itm/310506909410 что еще надо будет для программирования? Спасибо.
прогрмма progisp 1.72 хорошо работает с этими программаторами.

Павлуша
19.02.2016, 19:26
Еще наверное надо платку сделать с разъемом для контроллера?

Genadi Zawidowski
19.02.2016, 19:41
ISP - in system programming - подразумевает программирование в составе готового изделия - у которого предусмотрены соответствуюшие выводы на разъёме. На изделие подается питание шатным образом и программатор, "зажав" ему reset, выполняет стирание flash и программирование чего надо.

Павлуша
19.02.2016, 19:44
А если у меня есть только программатор http://www.ebay.com/itm/310506909410 и голый контроллер? Что дальше?

ur3ilf
19.02.2016, 19:50
Подключить к микроконтроллеру к выводам которые используются для программирования. Или гугл всё знает. (http://lmgtfy.com/?q=%D0%9F%D1%80%D0%B E%D0%B3%D1%80%D0%B0% D0%BC%D0%BC%D0%B8%D1 %80%D0%BE%D0%B2%D0%B 0%D0%BD%D0%B8%D0%B5+ USBASP)

Павлуша
19.02.2016, 20:09
Может у кого есть ссылка на платку с разъемами для контроллера на али или ebay.

Добавлено через 6 минут(ы):

Спасибо нашел.

RN3GP
19.02.2016, 21:01
Может у кого есть
http://ru.aliexpress.com/item/A25-Newest-2014-1set-ATMEL-For-ATMEGA16-ATmega32-AVR-Minimum-System-Board-USB-ISP-USBasp-Programme/2054429157.html?spm= 2114.14010208.999999 99.267.FVgsTK

Павлуша
28.03.2016, 18:54
Всем добрый вечер! Прибыли программатор и контроллеры. Подскажите выводы RX и TX при программировании не используются?

R1NAC
09.06.2016, 18:24
Захотел попрограммировать МК и собрать генератор на AD9850 и Atmega16. Дисплей и энкодер с кнопкой подключил к макетной плате с МК, моя программа на С в WinAvr после прошивки заработала (отображение на дисплее и изменение значения частоты, изменение шага перестройки). Теперь возник вопрос. Надо сформировать 32-битное слово, устанавливающее частоту генератора по формуле
f=(такт.част*значени е 32-битной переменной)/2^32. Проблема в том, что если попытаться вычислить значение 32-битной переменной, то надо умножить требуемую частоту в герцах на 2 в 32 степени, и разделить на такт. частоту. При этом получатся гигантские числа. Как реализовать этот алгоритм? Не могу понять, как лучше производить вычисления.
Схемы генераторов с прошивкой есть на форуме, но я хочу научиться программировать.

Milldi
09.06.2016, 18:33
а если представить формулу в виде F= (Fтакт/2^16) * (32бит перем/2^16) или F= (Fтакт/2^32) * (32бит перем) тогда первая часть превращается в константу
деление на 2^16 или 2^32 вроде бы производится простым сдвигом битов вправо на соответствующее число позиций (надо уточнить)

Tadas
09.06.2016, 18:44
деление на 2^16 или 2^32 вроде бы производится простым сдвигом битов влево
Влево будет умножение. Сдвигать надо вправо.
Но эту константу (2^32/Fтакт) лучше вычислить во время компиляции, незачем контроллер загружать.
Ведь она постоянна для любой частоты DDS.

Milldi
09.06.2016, 18:45
Влево будет умножение. Сдвигать надо вправо.
да верно, опечатка была уже поправил

vadim_d
11.06.2016, 12:14
При этом получатся гигантские числа. Как реализовать этот алгоритм? Не могу понять, как лучше производить вычисления
Когда я подобное делал на железе первого синтезатора Константина Иванова, то даже сделал свою функцию вместо GCC-шной, ибо та сразу отъедала больше половины памяти в AtMega8, мой вариант тут http://www.cqham.ru/forum/showthread.php?33096-%D1%E8-%E8-%E2%E0%EB%EA%EE%E4%E 5%F0&p=1256616&viewfull=1#post12566 16 , может извлечете из него что-то полезное :smile:

rx3apf
11.06.2016, 14:39
При этом получатся гигантские числа. Как реализовать этот алгоритм? Не могу понять, как лучше производить вычисления.

Если писать на asm, то реализация многоразрядной целочисленной арифметики - совершенно тривиальная задача. Просто код несколько "распухает".

Что же до конкретного вопроса - зависит от того, за что боремся, за компактность кода или быстродействие. Очень быстро можно сделать так:

Изначально (один раз) вычисляем (можно вручную и записав в EEPROM данных) значение K = 2^56/Fref (где Fref - частота опорного генератора в Hz)

Коэффициент, записываемый в синтезатор N = F * K / 2^24. F - требуемая частота, в Hz. При желании можно сделать с десятыми или сотыми долями Hz.

Вся арифметика сводится к перемножению двух 32-разрядных чисел. Это можно сделать компактно, но медленно (циклом, "в столбик"), либо (для AVR mega) используя команду mul и сложения с переносом (16 команд mul и кучка add/adc) - очень быстро.

R1NAC
11.06.2016, 22:28
Запустил синтезатор, программа заработала, только сразу не посмотрел, что китайцы впаяли на платке с синтезатором 2 подтягивающих резистора на младшие выводы (D0, D1), переведя его в последовательный режим, а у меня подключен в параллельном. Программу передачи кодового слова, чтобы попробовать, реализовал пока на функциях _delay_ms();, что не есть хорошо, но цель была запустить синтезатор.
Подключил осциллограф, на 14МГц вроде не так страшно-с виду обычный синус.
Предварительно вычислив число (125МГЦ/2^32), нашел коэффициент 34,3597. Так как я пока использовал только целое число 34, то на низких частотах еще ничего, а на 14 МГц получилось на самом деле 14.262МГц, т.е. надо вычислять точнее, используя и числа после запятой.
Пока до этого не дошел, но посмотрю информацию, которую дал vadim_d и rx3apf.

Milldi
11.06.2016, 22:50
лучше этот кусочек кода опубликуйте чтоб было понятнее.

vadim_d
12.06.2016, 00:37
т.е. надо вычислять точнее, используя и числа после запятой.
Пока до этого не дошел
Интуитивно тут все достаточно просто, если у Вас сейчас 34 с копейками просто целого, то его младший разряд соответствует единицам, а вот если Вы его домножите на 256 (тут годится любая степень двойки), то младший бит будет соответствовать 1/256, или у Вас будет 8 бит после условной двоичной точки в этом числе. Столько же дробных битов добавится и в произведении, чтобы сохранить результат, его надо поделить на 256, то есть сдвинуть вправо на 8 бит. Ограничение такого метода - промежуточный результат до сдвига должен помещаться в переменную, отведенную для него. Метод можно обобщить и на два множителя с фиксированной точкой, если один имеет вид m.n (битов до двоичной запятой и после нее), а второй p.q, то в произведении окажется (m+p).(n+q) битов

UV5QAW
12.06.2016, 01:40
Предлагаю пойти через сложение, типа
z = x1*n1+x2*n2+...
z - результирующее НЕХ число
x - НЕХ число, соотв весу десятичного разряда
n - значение десятичного разряда
Например 14.123 = 1*10М + 4*1M+1*100k

Добавлено через 16 минут(ы):

+2*10k+3*1k
Остается только рассчитать значения для величин 10М, 1М, 100к, 10к, 1к
Можно обойтись вообще без умножения - циклами прибавить в переменную результата соответствующее значение нужное количество раз

R1NAC
12.06.2016, 02:26
Вот часть кода, формирующая и передающая код частоты. EncData содержит 6-значное значение частоты, его умножаем на 100, чтобы найти частоту в герцах. 35 целый результат деления по формуле.
Код работает, на дисплее отображается частота, меняется при повороте валкодера, но надо убрать неточность частоты.

out=EncData*35*100;



for (unsigned int i=0; i < 4; i++) mas_freq[i]=out>>(i*8);//создание управляющего слова в
//виде массива 4-х 8-битных чисел
//путём побитного сдвига 32битного числа
//и занесение результата в массив 8битных чисел
par_com(0); //первые 8 бит фазы и управлеиня=0
par_com(mas_freq[3]); //
par_com(mas_freq[2]); //передача 4бит кода частоты
par_com(mas_freq[1]); //
par_com(mas_freq[0]); //

PORTD=64; //вкл импульс конца загрузки результата в регистр
_delay_us(1500);
PORTD=0; //выкл импульса

Milldi
12.06.2016, 02:59
out=EncData*35*100;

35 это тот коэффициент который вы нашли 34,359?
если да то попробуйте например так

out=EncData*3436;

Mikola
13.06.2016, 00:56
Для МК проще работать с целыми числами, а при выводе на индикатор запятую можно поставить где удобно, поставите кварц на 16 мегагерц и МК с вычислениями справится. А для начала вам надо определится с переменными, которые вы будете использовать.
Fband = 14142500
Fif = 8867251 (частота ПЧ, или другая)
Fosc = 125002440 (частота DDS)(ни когда не бала равна 125 мГц)
Fvfo = (Fband - Fif) = 5275249 (часта выводимая DDS) вычитам или прибавляем
Kdds = (Fvfo * 2^32) / Fosc = 181252637 (0x0ACDB21D) - записывам в DDS
Где-то так.

Alex-31
24.07.2016, 13:04
Microchip проглотила Atmel. Официально

http://datagor.ru/microcontrollers/2889-microchip-proglotila-atmel.html

http://www.microchip.com/docs/default-source/announcements-documents/atmel-customer-letter-april-2016.pdf

«Авээрщикам» рекомендуется сметать складские остатки и бережно хранить старые чипы с надписью ATMEL. В память о юности. :crazy:

UR4UDT
24.07.2016, 14:11
А что теперь будет с Arduino?

Дублер
24.07.2016, 14:17
А что теперь будет с Arduino?
тоже что и сейчас, ардуино ничего не угрожает.
Прес релиз читайте.
Будет попытка интеграции обоих технологий в новых разработках
микрочип заверяет что не имеет практики прекращать выпуск изделий купленных им компаний и обещает представлять полный спектр изделий обеих компаний
Просто прибыль от AVR теперь будет идти новым владельцаи Atmell тоесть Microchip.

Alex-31
24.07.2016, 14:53
имхо появятся платы Ардуино с ПИК-ами на борту - ничего плохого в этом нет

может в скором времени появиться какой-то общий одинаковый для обеих платформ способ программирования (и программатор)

АВР-ки могут обзавестись вычислительным ядром (как в ПИК-ах)

RA1AGB
24.07.2016, 15:26
появятся платы Ардуино
Уже есть платы похожие на ARDUINO, но с МК от других производителей, например http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo.html?querycri teria=productId=LN18 47
https://habrahabr.ru/post/230651/
https://habrahabr.ru/post/230931/

Павел
RA1AGB
73

Alex-31
24.07.2016, 15:58
RA1AGB, но это же платы не на PIC, а на STM32...

Хигэ
24.07.2016, 15:59
со временем атмеловскиая архитектура перестанет существовать
ничего страшного в этом нет и произойдёт это не в одночасье, но это ещё один повод переходить на 32разрядные контроллеры

RA1AGB
24.07.2016, 16:03
ARDUINO, но с МК от других производителей,
Я и написал, ДРУГИХ производителей.
Одно преимуществ ARDUINO, это то, что не нужно изучать архитектуру МК (почти). Пользователю должно быть всё равно, чей МК стоит на плате.
Павел
RA1AGB
73

UR4UDT
24.07.2016, 16:08
не нужно изучать архитектуру МК
Так и не напишете ни чего хорошего....

Alex-31
24.07.2016, 16:36
атмеловскиая архитектура перестанет существовать

а почему она не должна существовать?

а почему PIC архитектура не может исчезнуть?

а почему вообще кто-то должен умереть?

каждая задача должна выполняться соответствующим инструментом

есть задачи, для которых 32 бит архитектура избыточна

а допустим применять 32 бит архитектуру для того, чтобы ввести

улучшенный пользовательский интерфейс, не всегда оправдано

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

при этом сам проц работает всего на 15%, из которых 85% ресурсов ПК используется

на пользовательский интерфейс - разве это оправдано?

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

Ну а если на Мегах будет надпись микрочип вместо атмел, это вообще параллельно.

Хигэ
24.07.2016, 18:47
а почему она не должна существовать?
архитектура контроллера это в первую очередь философия
микрочип не будет продолжать разработку (вкладывать деньги) чужой архитектуры


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


...разве это оправдано?
с финансовой точки зрения да и тенденция к умощнению вычислительных систем останется ещё долго
причина не техническая, а экономическая


это архитектура на базе ARM ядра.
каким боком восьмиразрядные ATtiny2313, ATmega8 стали ARM?
и я не говорил что грохнет, а говорил что развивать не будет
со временем линейки отомрут как 90-я серия


Ну а если на Мегах будет надпись микрочип вместо атмел, это вообще параллельно.
мне тоже

Дублер
24.07.2016, 19:19
каким боком восьмиразрядные ATtiny2313, ATmega8 стали ARM
немного неправильно выразился, имелось ввиду то что ядро avr совместимо с большинством RISC ядер, PIC ядро это что то среднее между CISC и RISC.

UMC
22.08.2016, 08:56
архитектура контроллера это в первую очередь философия
микрочип не будет продолжать разработку (вкладывать деньги) чужой архитектуры
Архитектура микроконтроллера - это прежде всего бизнес. Будут делать и разрабатывать то, что экономически целесообразно. Примеров масса. Пока Микрочип не имеет планов по сворачиванию производства атмеловских контроллеров.
Но я тут по теме хотел вопрос задать. Никогда не занимался корректировкой прошивок, а теперь возникла такая необходимость. Есть исходник на C и hex. Надо подкорректировать временную константу. Есть ли возможность сделать это как-то по простому или обязательно надо качать Atmel Studio, создавать проект и там уже упражняться?
Это для зарядки на ATTiny13, всё хорошо, но время заряда 15 часов - это уже перебор...

IG_58
22.08.2016, 09:09
Есть ли возможность сделать это как-то по простому или обязательно надо качать Atmel Studio, создавать проект и там уже упражняться?
Как Вы это себе представляете без среды программирования?
Можно найти эту константу в исходнике, и изменить ее, а дальше? Ведь нужно чем-то компилировать, а затем заливать в чип.

UMC
22.08.2016, 09:17
Как Вы это себе представляете без среды программирования?
Можно найти эту константу в исходнике, и изменить ее, а дальше? Ведь нужно чем-то компилировать, а затем заливать в чип.
У меня есть два представления по Вашему вопросу:
HEX-редактором поковыряться в hex-файле и исправить константу.
Скомпилировать исправленный C-файл сторонним компилятором, который весит не почти гиг, как атмел-студио.

IG_58
22.08.2016, 09:28
Т.е., Вы предлагаете вместо оригинальной и 100%-совместимой Atmel Studio скачать и использовать какой-то посторонний компилятор? И в чём же будет заключаться положительный эффект? В некоторой экономии интернет-траффика?

HEX-редактор? И как, по каким внешним признакам Вы собираетесь в hex-дампе искать эту константу?

UMC
22.08.2016, 10:56
Т.е., Вы предлагаете вместо оригинальной и 100%-совместимой Atmel Studio скачать и использовать какой-то посторонний компилятор? И в чём же будет заключаться положительный эффект? В некоторой экономии интернет-траффика?

HEX-редактор? И как, по каким внешним признакам Вы собираетесь в hex-дампе искать эту константу?
Игорь, вообще-то я задал вопрос, а не вышел сюда с предложениями. Если нечего сказать по теме - найдите себе другой обьект для допроса.
Для имеющих информацию по теме: вопросы, заданные в посте #1280 актуальны.

VFO
22.08.2016, 11:17
Поправить сишный исходник можно хоть блокнотом. Надо разобраться в какой среде это компилировалось, точно ли в Atmel Studio. То, что касается инициализации периферии в разных средах разработки может иметь разный вид и напрямую не совместимо. Хотя, конечно, приложив усилия, можно перенести исходники под любую среду разработки.

IG_58
22.08.2016, 11:22
UMC,
Такое впечатление, что это мне, а не Вам, что-то нужно.
Делайте так, как Вам удобно: в Atmel Studio, сторонним компилятором, или прямо в hex-дампе. Если сможете.
Допрашивать Вас не входит в мои планы.

Владимир_К
22.08.2016, 11:29
Надо подкорректировать временную константу. Есть ли возможность сделать это как-то по простому или обязательно надо качать Atmel Studio, создавать проект и там уже упражняться?
Можно скачать WinAVR. Инсталлятор где-то 30 мб, для установки на диск надо 300 примерно. Скачать можно отсюда:
https://sourceforge.net/projects/winavr/
Зеленая иконка - "Download". Качаете zip, распаковываете , инсталлируете.
Можно проще. Сбросьте мне исходник ur3qqw{ }mail.ru. Если он в этой среде написан, исправлю.
Также мой вопрос.. Поставил себе AVR Studio 4, версия 4.19. Теперь если создать проект в ней, она не хочет компилировать. Компилятор у меня Winavr 20100110. В инете читал, что теперь надо качать с сайта Atmel "тулчейн". Честно говоря, особого желания нет, так как уже вроде привык создавать проект в WinAvr, им же и компилировать, потом отладку делать в студии. Но есть ли это правильно?
Хотелось бы услышать мнение более продвинутых в этом деле.

UMC
22.08.2016, 11:33
Поправить сишный исходник можно хоть блокнотом. Надо разобраться в какой среде это компилировалось, точно ли в Atmel Studio. То, что касается инициализации периферии в разных средах разработки может иметь разный вид и напрямую не совместимо. Хотя, конечно, приложив усилия, можно перенести исходники под любую среду разработки.
Автор прямо указывает, что писАл в Atmel Studio. СИ-шный исходник, естественно, можно поправить в любом текстовом процессоре (я предпочитаю Notepad++). Можно ли его скомпилить в атмеловский код без Atmel Studio и чем это сделать?
Кстати, скачал и установил AVR Studio и.. вообще не понял, для чего она нужна? Она не дебажить ни компилить не умеет... А я думал, что смогу в ней скомпилить...

EW4RF
22.08.2016, 11:48
Господа позвольте вопрос: есть программатор AVR-910 Protos может его кто запускал на Windows 8 - Windows 10? Есл инет то посоветуйте что под эти системы

Владимир_К
22.08.2016, 12:01
Кстати, скачал и установил AVR Studio и.. вообще не понял, для чего она нужна?
Их куча версий. Прежние работали в паре с компилятором WinAVR. Чем до сих пор пользуюсь. Теперь свой компилятор. В общем... хрен их знает..

Alex-31
22.08.2016, 12:02
Zadig for Windows Vista or later (http://zadig.akeo.ie/downloads/zadig_2.2.exe) (5.0 MB)


Установка не подписанных драйверов

http://www.windxp.com.ru/win8/article_44.htm

UMC
22.08.2016, 13:08
Их куча версий. Прежние работали в паре с компилятором WinAVR. Чем до сих пор пользуюсь. Теперь свой компилятор. В общем... хрен их знает..
То есть, вместо AVR Studio я могу скомпилить WinAVR? И всё будет работать?



Zadig for Windows Vista or later (http://zadig.akeo.ie/downloads/zadig_2.2.exe) (5.0 MB)


Установка не подписанных драйверов

http://www.windxp.com.ru/win8/article_44.htm
После часовых плясок с бубном с неподписаными драйверами в Win10, установил прошивальщик на виртуалку под WinXP без всяких заморочек. Прошил, всё ОК, программатор USBasp.

Владимир_К
22.08.2016, 15:58
То есть, вместо AVR Studio я могу скомпилить WinAVR? И всё будет работать?
Возможно будет, возможно нет. Ведь я похожий вопрос здесь задал, по версиям Студио и по их компиляторам. Как видите, ответа нет:smile:.
Для компиляции исходника в том же WinAVR нужно создать проект, одним из компонентов проекта- файл "makefile". Для его создания есть мастер. В Студии, примерно тоже самое. То есть, для того чтобы скомпилировать проект, надо не только исходник.
Сейчас я поступаю так:
-создаю проект в WinAVR-2010:
-компилирую;
-в папке получаю кучу файлов, в том числе и "hex", которым уже можно прошить контроллер.
Если что-то работает не так, открываю AVR Studio 4.19. С ейной помощью открываем из папки проекта файл с расширением .elf. Теперь в Студии занимаемся отладкой проекта. Причем, изменения в исходнике делаем опять же в среде WinAVR, там же и компилируем. Потом Студия увидит, что в исходном файле произошли изменения, спросит ваше разрешение и... идем дальше. Можно проект создать и в Студии. Но, до 19 версии, в качестве компилятора она использовала компилятор, который входит в пакет WinAVR. Теперь она заимела свой компилятор. Попробовал создать проект прямо в Студии. Компилировать она не захотела, пишет: не видит файл с расширением .elf. А компилятор, который входит в WinAVR она не признает. Хотя проекты скомпилированные им, она к отладке принимает..
Поэтому, однозначно ответить на Ваш вопрос, я не могу..

UMC
24.08.2016, 09:04
Установил WinAVR, покурил мануал и сделал Makefile. Не компилируется, куча ошибок. Проанализировал внимательно код, ну да, конечно, в самом начале #include <tiny13.h>. То есть скомпилировать, как я понимаю, можно будет только в Atmel Studio? Хотя сам автор пишет, что писал проект в Code Vision AVR. А я снёс её, потому как не нашёл кнопки, как запустить компилятор. В общем, не кидайте камнями, я первый раз занялся МК.
Наверное, всё-таки проще всего было поставить Atmel Studio и не париться, но и тут засада. Шесть раз пытался скачать её с офф сайта, но ни разу она нормально не скачалась, почему - не понятно. Каждый раз файл получался разной длины, хотя на разрыв соединения или ещё что-то в процессе закачки ругани не было. Не знаю в чём дело, у меня ADSL скорость небольшая (8 мБит), но качал и по 40 гигов игрушки, торрент нормально всё качает, а тут такая засада. Может кто даст ссылку на другой источник Atmel Studio, не обязательно последнюю, даже лучше на ту, которая пойдёт под WinXP?
Кстати, когда ставил Atmel Studio из битых (как потом оказалось) архивов - понаставилось куча всякого хлама, кое что руками потом поудалял, но Microsoft Visual Studio (Shell) удаляться не желает. Вообще фигня какая-то...
В общем - help me! :crazy:

IG_58
24.08.2016, 09:34
В общем, после плясок с бубном со "сторонним компилятором" всё-таки пришли к необходмости скачать и установить родную Atmel Studio, о чём я, собственно, и писал в самом начале. ОК.

Вот это пробовали?

https://thepiratebay.org/torrent/8435864/Atmel_AVR_Studio_5.1

UMC
24.08.2016, 09:55
В общем, после плясок с бубном со "сторонним компилятором" всё-таки пришли к необходмости скачать и установить родную Atmel Studio, о чём я, собственно, и писал в самом начале. ОК.

Вот это пробовали?

https://thepiratebay.org/torrent/8435864/Atmel_AVR_Studio_5.1
нет, не пробовал, спасибо за линк, сегодня попытаюсь качнуть и поставить.
Ну а насчёт "плясок с бубном" и сторонними компиляторами - прошивку я поправил в hex-редакторе, и этого бы мне хватило, если бы не возникло желание модифицировать сам алгоритм работы программы, да и вообще попробовать что-нибудь сделать самостоятельно. Довольно интересная тема, цены на сами чипы копеечные, масса публикаций. Ну а для творчества, естественно, лучше родной среды ничего не придумать (хотя и тут бывают исключения).

LY3BBI
24.08.2016, 10:09
... То есть скомпилировать, как я понимаю, можно будет только в Atmel Studio? Хотя сам автор пишет, что писал проект в Code Vision AVR. ....
Code Vision AVR и Atmel Studio - это две большие разницы. Если автор писал в Code Vision, то и вам думаю будет проще в этой же среде редактировать и компилировать. При этом будет достаточно создать новый проект и потом к нему прицепить ваш исходник. В других средах без перелопачивания всего кода вам не обойтись. Мало того, что синтаксис в разных средах может отличаться, так ещё и библиотеки разные используются, отличающиеся как по названию, так и функциями. Без надлежащего опыта скомпилировать в чужой среде практически не возможно. Так, что лучше не тратьте зря время и используйте ту среду разработки, которую использовал автор кода.

Владимир_К
24.08.2016, 11:39
Так, что лучше не тратьте зря время и используйте ту среду разработки, которую использовал автор кода.
Именно так. Или открывайте книжку, например Шпак Ю. А. " Программирование на языке С для AVR и PIC микроконтроллеров", Киев, 2006 год. И правьте синтаксис. Хотя книжка несколько устарела, иногда синтаксис не соответствует тому, что есть в библиотеках.
А вот скрин экрана с Code Vision. Но, для начала, если у Вас не полный проект, а только файл исходника, надо создавать проект с помощью мастера. Для меня это единственное удобство, которое меня подвигло поставить сначала Code Vision. Но, потом я от него ушел, по разным причинам.
По этой среде книжка, например: Лебедев М.В. "Code Vision AVR Пособие для начинающих".

UMC
24.08.2016, 11:53
А вот скрин экрана с Code Vision.
У меня указаные Вами кнопки неактивны. Вообще неактивных кнопок целая куча. А кнопка дебаггера, хоть и активна, но ругается, что не может найти его. Вообще весело.
И, кстати, если я что нибудь неправильно укажу в проекте к примеру частоту процессора или коэффициент деления - это может сказаться каким либо образом на прошивке (.hex)? Я понимаю, что это пишется каким-то образом в служебные регистры, но частота это же вроде фьюзы, которые я знаю, как надо установить.

Владимир_К
24.08.2016, 12:22
Довольно интересная тема, цены на сами чипы копеечные, масса публикаций.
Для этого, кроме сред программирования, надо сделать (купить) отладочную плату. В качестве которой с успехом можно применить Ардуино. WinAVR прекрасно с ней дружит. Единственное, что надо сделать - в makefile нужно указать, что это Ардуино и указать номер порта. Скорее всего и в последних версиях Студии и прочих это тоже есть. Да, и кроме того, плата Ардуино может быть по стоимости не дороже набора деталей.

У меня указаные Вами кнопки неактивны.
Создавайте проект, как... читайте Лебедева. При создании проекта у Вас появится пустой файл, куда надо вставить исходный текст.
Открываем Code Vision. Файл- new - на вопрос что делать, указываем Project, потом выбираем порты и все остальное, короче надо читать, тут не опишешь всего.
Кстати, если у Вас впереди еще много времени:-|, возможно надо начинать с STM32. Ибо что там дальше будет, неизвестно. А STM32 нынче при одинаковой стоимости, превосходят AVR намного.

Добавлено через 7 минут(ы):


Кстати, когда ставил Atmel Studio из битых (как потом оказалось) архивов - понаставилось куча всякого хлама, кое что руками потом поудалял, но Microsoft Visual Studio (Shell) удаляться не желает. Вообще фигня какая-то...
Вот отсюда я поставил без проблем:
http://easyelectronics.ru/category/avr-uchebnyj-kurs
Там две ссылки, собственно на AVR Studio 4.19 и Toolchain (это теперь вместо компилятора Winavr, впрочем там почитаете подробно, что к чему). В общем информации у Вас теперь много, можно запутаться. Поэтому я бы делал так. Довел бы свою плату до ума, для чего поставил бы Code Vision. А потом от него я бы ушел на AVR Studio.