pliss

С нуля Программирование AVR Купил программатор и Контроллер Что дальше...

202 сообщения в этой теме

Сколько ни читал статей и тем по программированию - не помогло.

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

Покупка программатора и программируемого контроллера - не в счёт, хотя, это тоже очень "больная" тема.

Скорее всего, я зря не послушал продавца и не купил набор "ардуино", но, после драки - кулаками не машут.

Стал обладателем программатора RC119M описание, и платы с подопытным контроллером SEV0007m16A SEM0007M-16A.pdf.

Понаставил разного софта - от Atmel, до BASCOM-AVR...

Проку - нуль.

Вернусь - начну вопросы задавать..

 

0

Поделиться сообщением


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

Не-а... Затруднение в другом: нахрена тебе это нужно, если нет ни малейшего понятия, как это работает и зачем вообще? Начинать нужно не с программирования (хочешь программировать - у тебя персональный компьютер есть, который можно программировать, вообще не понимая, как он там внутри работает!), а с азов электроники. То есть, что такое источник питания, резистор, конденсатор, светодиод (и просто диод), транзистор и т.д.
Есть такой С.М.Рюмик, у него есть цикл статей про микроконтроллеры. Публиковался в журнале Радиоаматор, начиная с №3 за 2004 год. Конкретно про AVR - начинается с №1 за 2005 год.
Есть ещё Белов А.В., книги пишет. Начни с "Самоучитель по микропроцессорной технике" СПб Наука и техника, 2003 год.

0

Поделиться сообщением


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

Так собственно это и есть практически ардуина, контроллер правда немного другой но обвязка точно такая же. И, наверно, бутлоадера нет судя по наличию IСSP-разъёма программирования. А программатор... почему бы сразу не USBASP, который в китае стоит 3$ а не 20$ как на сайте... да ещё и подделка под USBASP...

Впрочем фигня, раз есть и то ладно.

Тебе надо ещё программу-прошивальщик и дровишки под USBASP обычно в интернете гуглится сразу комплект дрова+AVRDUDE прошивальщик, к нему желательно на начало ещё и AVRDUDE-GUI программу, но лучше сразу освоить команды AVRDUDE и прошивать в один клик по CMD-файлу с нужной командой, когда отлаживаешь программу на живом контроллере неймоверно задалбывает нажимать кнопки и открывать окошки GUI. А так - один CMD прошивка скомпиленного проекта(или вообще компиляция+прошивка) другой CMD - прошивка битов конфигурации(один раз на новый контроллер, если нужно) третий CMD - прошивка EEPROM(не всегда нужна, обычно один раз и по мере необходимости) четвёртый CMD - очистка EEPROM в исходное состояние.

1

Поделиться сообщением


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

Ну ок.

Давайте немного попикируемся и на этом закончим флуд...

Ок?)

Из чего вы сделали вывод, что у меня нет "ни малейшего" понятия?

Встречный вопрос - где взять "малейшие" понятия?

Эт, проблема - общие понятия есть, а самых главных, "малейших" - нет.(

И большинство, у которых они есть, считают, что они были у них всегда...)

 

Именно так.

Компьютер есть.

Общее представление о C++ - есть.

Общее представление о пресловутом Basicе - есть.

 

Азы электроники - ну, усилитель Агеева - собирал.

Тиристорных регулятор мощности - собирал.

Простейшие блокииг-генераторы - собирал.

NE555 - шим для моторчика собирал...

Тута, светодиодную подсветку на кухню устроил, источник - источник тока. Понимаю, что для светодиодной ленты это не очень правильно, но - пока оставил так...

Закон Ома - знаю. Отличаю между собой закон Ома для участка цепи и для замкнутой цепи.

Киркгофф - тоже наше всё.

 

 Ща книги Ваши посмотрю.

Спасибо.

PS   Хочется, чтобы тема не превратилась в "Сам Дурак".

PPS Да, лет двадцать пять назад , курсовая была, на "бейсике". Зачёт.

 

0

Поделиться сообщением


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

Тут бы отличать "собрал" от "спроектировал", собрать то каждый может по готовой схеме.
Впрочем, закон Ома это уже хорошо.
С++ к этому контроллеру скорей всего не пойдёт, памяти маловато, тут больше применим ассемблер или С. Лучше начать с ассемблера, сделать несколько простых примеров чтобы понять как железо работает, поиграть с таймерами, прерыванием, АЦП... а потом то же самое на С запилить и сравнить по трудоёмкости и результату.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, Alexeyslav сказал:

Так собственно это и есть практически ардуина, контроллер правда немного другой но обвязка точно такая же. И, наверно, бутлоадера нет судя по наличию IСSP-разъёма программирования. А программатор... почему бы сразу не USBASP, который в китае стоит 3$ а не 20$ как на сайте... да ещё и подделка под USBASP...

Впрочем фигня, раз есть и то ладно.

<...>

 

Ну да.))

Я это понял, когда посчитал деньги.)

Ну,  USBasp - это он и есть, совместимый...

Да, к сожалению, китай - наше всё!.

Но, дело не в этом.

Как соединить то, что у меня есть?..

Рекомендованная программа - AVRDUDEPROG.exe.

Драйвера стоят, в диспетчере - определяется как:

Снимок.JPG

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

Тут бы отличать "собрал" от "спроектировал", собрать то каждый может по готовой схеме.
<...>

Да ладно!

Если б так - не было бы этого форума, да и остальных  - тоже.))))

Не, не форума.

Ваапще - сайтов по электронике бы небыло))),

0

Поделиться сообщением


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

Как правило напрямую всё подключается. Но похоже, что на плате просто установлен 6-пиновый разъём а на программаторе 10-пиновый, просто там много лишних линий. Сделать элементарный переходник на соответствующие сигналы и делов. Они вроде и там и там подписаны.

a3336720-212-10-6%20ISP%20adapter.jpg?d=

AVRDUDE - это программатор командной строки, чтобы было наглядно надо искать ещё AVRDUDE-GUI оболочку к нему, но если умеете работать через командную строку то можно и так. В гугле довольно легко найти описание команд AVRDUDE и примеры для USBASP.

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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, Alexeyslav сказал:

Как правило напрямую всё подключается. Но похоже, что на плате просто установлен 6-пиновый разъём а на программаторе 10-пиновый, просто там много лишних линий. Сделать элементарный переходник на соответствующие сигналы и делов.<...>

Так и есть.. За исключением "reset".

На плате "подопытного" pin-reset есть. На плате программатора - его нет...(

По простому - "reset" полграммируемого контроллера - куда подключать?

0

Поделиться сообщением


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

Не может быть! Reset участвует в программировании обязательно. И на схеме программатора он есть. Может, вас смутило несоответствие нумерации разъёма на схеме переходника @Alexeyslav и схеме программатора. Ориентируйтесь на внешний вид.
Язык для МК рекомендую BASCOM, в отличие от Си он более читабельный и похож на BASIC. Кстати, опыт С++ не поможет ничем, т.к. для МК объектно-ориентированных языков нет, памяти маловато... Но оно и к лучшему, дисциплинирует мозг. А вот классический Си есть для всех семейств МК, если есть задумка всерьёз и надолго заняться МК, то это лучший выбор.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, pliss сказал:

На плате программатора - его нет...(

3564.jpg

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 минуты назад, oldmao сказал:

Не может быть! Reset участвует в программировании обязательною

в@Alexeyslav

Ща фотки попробую прилепить...

...

P.S. Коллеги, вы не торопитесь - отвечать не успеваю..)

0

Поделиться сообщением


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

IMG_20170215_213635[1].jpg

 

Блин, фотка огромная...

Ну, не вижу я, где здесь "reset"..., мож он "программный"...

Кроме третьего "пина" - вариантов не вижу...(

Изменено пользователем pliss
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, oldmao сказал:

Не может быть! Reset участвует в программировании обязательно. И на схеме программатора он есть. Может, вас смутило несоответствие нумерации разъёма на схеме переходника @Alexeyslav и схеме программатора. Ориентируйтесь на внешний вид.
Язык для МК рекомендую BASCOM, в отличие от Си он более читабельный и похож на BASIC. Кстати, опыт С++ не поможет ничем, т.к. для МК объектно-ориентированных языков нет, памяти маловато... Но оно и к лучшему, дисциплинирует мозг. А вот классический Си есть для всех семейств МК, если есть задумка всерьёз и надолго заняться МК, то это лучший выбор.

Ну, больше всего сомнений вызвал сигнал reset...

Остальное подписано...

Basic - мой родной язык!)

По С++ - ну да, пробую - всё получается, но бороться за кросс-платформенность - эт, программа максимум!

 

Ну, давайте заканчивать с флудом.)

 

Программа - AVRDUDE_PROGRAMM...

0

Поделиться сообщением


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

Действительно программатор какой-то левый, здесь JP3 отвечает за подачу питания на контроллер с программатора, а JP1 за скорость программирования.

На программаторе все сигналы есть, только они не подписаны. Смотри выходной разъём программатора, должно быть расписано. Я в таких случаях просто беру проводки с клеммами мама-мама и соединяю программатор со схемой. Такие продаются для комплекта ардуины наборами, разноцветные. А чтобы каждый раз не гадать что куда подключать - в бумажках к проекту зарисовывается схема подключения с цветами проводов. Хотя конечно переходник 10pin-6pin удобней и 6-жильный шлейф мама-мама. Но если есть проводки, и переходник заказывать только за 300р... темболее что программатор можно не отключать на время игр с отладочной платой. Может даже вовсе взять где-то 2-х рядный 10-контактный разъём и припаять напрямую шлейфом.

0

Поделиться сообщением


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

Такие?

Их есть у меня...

Не подписан один вывод - ресет со стороны программатора... Вместо него - единственный вариант " PB2(SS-/OS1B)"...

IMG_20170215_225606[1].jpg

Ну, всем спать - завтра на охоту!

0

Поделиться сообщением


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

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

Проводки такие, но у тебя вижу они типа папа-мама, а нужны мама-мама ибо и там и там штырьки.

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, Alexeyslav сказал:

Как правило напрямую всё подключается. Но похоже, что на плате просто установлен 6-пиновый разъём а на программаторе 10-пиновый, просто там много лишних линий. Сделать элементарный переходник на соответствующие сигналы и делов. Они вроде и там и там подписаны.

a3336720-212-10-6%20ISP%20adapter.jpg?d=

<...>

Всё так, но у меня не обозначены на плате пины программатора, и на схеме программатора нет слова resert, которое бы относилось к программируемому контроллеру.

И обозначение на схеме не совсем стандартное, скорее - совсем не стандартное.)

Вроде так:

IMG_20170216_104244.jpg

 

 

0

Поделиться сообщением


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

Всем спасибо!

Заработало!

Помогло понижение частоты порта с помощью перемычки.

Калибровка - прочиталась, память - прочиталась...

Пора определяться с языком программирования...

0

Поделиться сообщением


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

На схеме может и не обозначено, но в инструкции должна быть распиновка внешнего разъёма.

0

Поделиться сообщением


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

Всё, что у меня было - на фотках в теме...

Ну, так или иначе - светодиодное моргало - заморгало.)

Язык.

Bascom - быстрый результат.

Асм -> си - результат не быстрый, но - даст понимание устройства мк.

C++ - разработка приложений не связанных с платформой. 

Типа - чё захотел, то и написал....

На пенсии - может пригодится...

 

0

Поделиться сообщением


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

Вы считаете что С++ более переносимый чем Си? Это не так.

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

Bascom - быстрый результат.

Любой знакомый язык, под который есть компилятор - быстрый результат. Объективно более быстрый результат дает Ардуино (С++).

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, pliss сказал:

Bascom - быстрый результат.

Асм -> си - результат не быстрый, но - даст понимание устройства мк.

 

В Bascom можно делать ассемблерные вставки,можно пользоваться готовыми командами,а можно прописывать значения напрямую в регистры.Например,глобальное включение прерываний: команда-Enable Interrupts;запись в регистр-SREG.7 = 1.

0

Поделиться сообщением


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

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

Если же речь о Бейсике с ассемблерными вставками вместо полноценного ассемблера для понимания кристалла - тоже не лучшая идея.

0

Поделиться сообщением


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

Я не правильно ввыразился.

С++ - это не только микроконтроллеры.

Это программирование в широком смысле.

Может ошибаюсь...

0

Поделиться сообщением


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

Ваша публикация должна быть проверена модератором

4
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

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

  Разрешено не более 75 смайлов.

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

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

Загрузка...

  • Похожие публикации

    • Автор: abr_avr
      Добрый день!
      Программирую в Arduino IDE, программатор Arduino ISP, других к сожалению нету.
      Решил поменять скорость работы контроллера ATTiny13A при помощи смены fuse. Менял через Arduino IDE, которая подставила такую команду
      C:\Program Files\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf -v -v -pattiny13 -cstk500v1 -PCOM3 -b19200 -e -Uhfuse:w:0xFF:m -Ulfuse:w:0x7b:m После чего достучатся до контроллера теперь никак не могу. Вот, что пишет avrdude: 
      avrdude: Version 6.3, compiled on Dec 16 2016 at 13:33:19 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf" Using Port : COM3 Using Programmer : stk500v1 Overriding Baud Rate : 19200 AVR Part : ATtiny13 Chip Erase delay : 4000 us PAGEL : P00 BS2 : P00 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 5 4 0 no 64 4 0 4000 4000 0xff 0xff flash 65 6 32 0 yes 1024 32 32 4500 4500 0xff 0xff signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: PAGEL and BS2 signals not defined in the configuration file for part ATtiny13, using dummy values avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x000000 (retrying) Reading | ################################################## | 100% 0.02s avrdude: Device signature = 0x000000 (retrying) Ошибка при записи загрузчика. Reading | ################################################## | 100% 0.01s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude done. Thank you. Опция -F, которую предлагает avrdude, не помогает. Пробовал менять битрейт (опция -b), но в таком случае выдаёт ошибку stk500_getsync, что обычно бывает, если битрейт выбран неправильно.
      Судя по фьюзам http://www.engbedded.com/fusecalc/, я просто убрал CKDIV8, что должно ускорить внутренний таймер в 8 раз, и убрал флаг CKSEL0, что вместе со снятым CKSEL1 устанавливает частоту контроллера в 128 КГц (вместо заводских 9.6 МГц). Вобще ничего не говорит о том, что контроллер залочился. Приконнекчен к программатору по такой схеме

      Причём, до замены фьюзов работало и без кондёра. А после не работает и с ним.
      Что можно попробовать? Можно ли вернуть контроллер к заводским настройкам и как вобще поменять внутреннюю скорость таймера без таких вот багов?
    • Автор: daiver
      Добрый день, возникла неприятная проблема с фьюзами. Первоначаль у меня была схема с контроллером AtMega8 с кварцевым резонатором на 16Mhz. Мне пришлось сменить Atmega8 на Atmega168. Но тут возникла проблема с прошивкой. Первоначально фьюзы CKSEL3..0 были выставлены в 0010. то есть частота от внутреннего источника. С помощью Uniprof я прошил эти фьюзы на 0101. Теперь контроллер не откликается и не работает. Умер... соответственно фьзы обратно прошить не могу.
      Программатор Громмова, чтобы прошить я вытаскиваю контроллер из моей сзхемы и вставляю в программатор, кварцевого резонатора в программаторе нет.
      Можно ли реанимировать устройство?
    • Автор: Wabbs_2016
      Доброго Всем! Выяснилась проблема при дебаггинге в Atmel Studio 7, пропала желтая стрелочка отслеживающая положение дебаггера.
    • E
      Автор: Гость Иван
      Собирая данную игрушку http://cxem.net/avto...onics/4-127.php
      я наткнулся на следующую проблему:
      программатор Pic k150
      МК Pic16f628
      устанавливаю на ЗИФку программатора как показанно на рисунке в окне программы DIY K150
      Нажимаю "Program"
      МК шьется, но в конце вылезает алерт "Error"

      Фьюзы ни как не настраивал... как я понял при настройке "Auto Updata Files" фьюзы автоматически выставляются, согласно предуставновкам в прошивке

      при нажатии на кнопку "Fuses" появляется следующее окно (из него я как раз и понял, что описал выше про Auto Updata Files)

      В итоге я имею прошитый МК, но схема работает не правильно
      Правильный алгоритм
      А у меня при коротком нажатии ничего не происходит.... при длительном (через 1.5 - 2 сек.)
      КН1 - крякалка,
      КН2 - Сирена № 1 , при следующем тоже Сирена № 1
      КН3 - окончание сирены
      пока удерживаю кнопки... как только кнопку отпустишь, звук пропадает
      связанно ли это свыше описанной ошибкой и как с ней бороться?
      другие прошивки на 16F628 - программатор шьет на ура
      Программатор покупной
    • Автор: Dmitriy_2214
      Всем привет!
      Ну, кто тут начинает осваивать AVRки?
      Тогда вам просто необходимо обезопасить себя от первых неудачных экспериментов с фьюзами.
      Представляю свою версию Atmega fusebit doctor

      Есть несколько собранных экземпляров. Небольшая платка в SMD + разноцветный шлейф с подписанными пинами. Также есть адаптеры для подключения контроллеров в DIP и TQFP корпусах. Всё проверено, работает.
      Цена устройства 800р.
      Москва, доставка в регионы почтой и транспортными компаниями.
      Пишите в личку либо на dklab24(гав)gmail.com
  • Сообщения

    • А давай лучше не будешь нам рассказывать сказки,а будешь учиться и практически познаешь всё это. Два минуса тебе за флуд!
    • GELIANIN, давайте не путать "теплое" и "мягкое" и не валить все в одну кучу. "Земляные" петли (термин "петля массы" встречаю первый раз!) приводят к возрастанию НАВОДОК; это, в свою очередь, ведет к увеличению ФОНА, а ШУМ здесь - вообще ни при чем.
    • Ну не знаю, может у меня IAR более новый). А кто - нибудь цеплял 1602 по I2C через переходник на PCF8574AT без библиотек, код инициализации у кого какой? Хотя я уже разный пробовал, даже с библиотечной ардуины брал код инициализации дисплея, меня вот волнует больше то что пишут в нете что  в HAL нужно адрес сдвинуть, но я находил чисто побитовый сдвиг у некоторых в коде, а в других местах читал что нужно учесть сдвиг адреса, так как там семибитная адресация, а восьмой бит задает режим чтение - запись, ну вот у меня сканер на ардуино показал адрес 0x3F, я его и вбиваю, может нужно его меньше задать, хотя ну 0x3F всего 6 бит.
    • Этот факт все знают. Нельзя делать петли связи по массе между блоками Аудиосистемы. Только не к возрастанию шума корректора приводит при измерении (как вы думаете) ,а возрастанию отображения шума Спектроанализатором от петли массы. А шум корректора как был таким и остаётся, уровень шума увеличивается  на экране от влияния факторов неверной разводки массы в звуковой карте,ведь она не разрабатывалась для измерений в дуплексном режиме,она просто должна выдавать звук на усилитель или наушники. Вот сейчас доделал очередной корректор,начну настраивать,снял для вас когда оба кабеля подключены и теперь во вход корректора воткнём кабель с оборванным экраном возле штеккера и сразу видно что 20dB шумов даёт петля массы в измериловке.  
    • Еще помогает генератор тока- нагрузка выхода блока питания, в место резистора на выходе.
    • Бухать нужно переставать, вот , что случилось.