PDA

Просмотр полной версии : Ошибки при программировании микроконтроллеров



RU7L
20.01.2018, 19:16
Приветствую форумчан. Решил создать эту тему, т.к. не нашел подходящей.
Я в этом деле новичок и столкнулся с такой проблемой. Подключил М.К. для прошивки.
При чтении все ок, но при нажатии на кнопку "Стереть все", выскакивает ошибка.
Что это может быть?

Ромм
20.01.2018, 21:07
А программатор какой?

Александр_М
20.01.2018, 21:13
Да там же внизу он Вам написал, почему ошибка...

RU7L
20.01.2018, 21:25
А программатор какой? usbasp

Ромм
20.01.2018, 21:27
У меня купленный на али. И получается без проблем только через khazama.

Tadas
20.01.2018, 21:29
Если у Вас USBASP, то попробуйте программу eXtreme Burner AVR.
Там всё понятнее.

RU7L
20.01.2018, 21:36
Спасибо, сейчас попробую. Это мои первые шаги в этом деле)

R2DHG
20.01.2018, 22:08
SinaProg 2.1 еще можно попробовать. Мне тоже прислали с какой то старой прошивкой (сам usbasp) - новые avrdude ругались пока не перепрошил.

eu7ea
20.01.2018, 22:26
Понизьте скорость на программаторе, там есть джампер ближе к USB порту или место на плате для его установки. У меня Китаец без этого не работал.

RU7L
20.01.2018, 23:45
SinaProg 2.1 еще можно попробовать.
Не знаю, как там фьюзы прописывать.

Заменил контроллер- похоже,что прошилось. Но ключ все равно не работает. Заблудился в двух деталях)))))).
Начал смотреть даташиты на м.к., а в таком корпусе, как у меня и нет ATtiny13. Вот теперь и думаю, может китайцы фуфло подсунули(((

Ромм
21.01.2018, 06:36
Тогда выкладывайте схему и фото самого МК и монтажа.

RU7L
21.01.2018, 08:48
Схема и фото м.к. Те, что в упаковке-мои.


Я думаю может шлейф длинный. Он сантиметров 50, плюс провода по 10см для подпайки к М,К,
Попробую еще его укоротить.

Владимир_К
21.01.2018, 11:04
Я думаю может шлейф длинный.
Чтобы уменьшить влияние длинных проводов (имею ввиду не для программирования, а для работы), выводы портов к которым подключены кнопки, соедините через резисторы 10 ком с плюсом питания.
Кроме того. Тут есть одна неприятность. Она связана с тем, что вывод RESET здесь программируется как порт. То есть, после программирования, повторно микросхему перепрограммировать уже нельзя. Я с такой ситуацией не сталкивался, никогда вывод RESET как порт не использовал. Но в сети, встречал порядок прошивки для подобного случая. Если найду, ссылку дам..

Ромм
21.01.2018, 11:56
Геннадий, а Вы правильность подключения программатора к МК проверяли?
Я с самым маленьким МК, с которым упражнялся, это tiny2313.
Там и портов побольше. Может взять его и подправить программу под него?
Если нет, тогда надо правильность установки фьюзов надо проверить. По умолчанию все МК настроены на работу от внутреннего RC-генератора 1 МГц. Но если фьюзы установлены не правильно, т.е. на работу с внешним резонатором, то МК вообще работать не будет. Еще бы программу на СИ посмотреть. Я только на СИ могу разобраться.
Посмотрел даташит. У Вас корпус SOIC. Вывод РВ2 это SCK - программирование. А у Вас к нему резистор подключен +5В. Наверное он и не прошился. На время прошивки лучше этот резистор отключать.

RU7L
21.01.2018, 13:17
Уже все проверял неоднократно. Я уже почти месяц бьюсь с этим делом и безуспешно. Перед этим собрал другой ключ , бился с ним бился-без толку.
Хотя знаю,что у людей работает.Ну думаю соберу самый простой.....-и опять результат отрицательный. Уже терпение заканчивается.
Шлейф укоротил в три раза- эффекта нет.
Вот, что я получаю-27996627996727996827 9969
При чтении калибровочных ячеек получаю картинку 4, при попытке прошить-вторая картинка,когда нажимаю закрыть программу, как предлагают на картинке 2, получаю третью картинку.Кстати, при попытке прошить в программаторе загорается красный светодиод.
Седьмую ногу отключал от резистора, тоже самое.

Dwarves
21.01.2018, 13:35
Здравствуйте, попробуйте переименовать папку с прошивкой - все символы латиницей и никаких пробелов в имени папки, возможно поможет.

RU7L
21.01.2018, 13:55
Спасибо, думал об этом и выносил прошивку на рабочий стол. Тогда не помогло. Попробую, как Вы предлагаете.
Кстати, через eXtreme Burner AVR шьется без ошибок, но все равно не работает. Может, что с прошивкой, х.з.

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


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

Suh
21.01.2018, 14:02
Проверьте, правильно ли стоят перемычки в программаторе.
Там обычно переключается
- прошивка самого программатора/работа
- питание прошиваемого мк, от программатора/от устройства
- бывает еще …

Когда начинал,сначала нашел прошивки для мигалки, пищалки что б убедится, что прошивается.Потом уже заливал прошивку устройства. Игрался с Atmega8.

Не криво ли установился драйвер?

RU7L
21.01.2018, 14:12
Там обычно переключается
- прошивка самого программатора/работа
Когда начинал,сначала нашел прошивки для мигалки, пищалки что б убедится, что прошивается.Потом уже заливал прошивку устройства. Игрался с Atmega8.

Не криво ли установился драйвер?
Там только эта перемычка, но не установлена.
Поищу другой драйвер,спасибо.
Казамой прошивается без проблем, но......
Автор пообещал завтра проверить прошивку, тогда посмотрим......

Dwarves
21.01.2018, 14:14
К сожалению, на скринах видно только лог верификации, предпоследние 2 строки: - "содержит 0 байт". И о чем я писал выше, имени файла, тоже касается.

Ромм
21.01.2018, 14:15
Я не знаю принципа работы телеграфом. Но предположу:
Резистором в процессе работы оперативно регулируется скорость работы/ длительность точек, тире ??
Кнопка mode для чего нужна??

Геннадий, какая система на компе?

RU7L
21.01.2018, 14:49
Ключ еще в режиме маяка задуман работать, для этого кнопка моде. Система WIN7x64. Исходники на Бейсике, написаны в программе BASCOMAVR. Как-то так....

Ромм
21.01.2018, 14:55
Предлагаю:
1. Попробовать khazama для прошивки. Для этого установить ее, стереть чип, выставить настройки фьюзов по умолчанию (проверив что тактирование от внутркеннего генератора), прошить фьюзы, прошить программу. Если не получилось, запустить khazama в режиме совместимости с более ранними версиями винды;
2. Радикальный способ: адаптировать или написать программу под тини2313.

П.С. Вы не ответили про резистор.

RU7L
21.01.2018, 15:25
Я уже успел до Вашего сообщения в казаме что-то сотворить с чипом(((.До этого пробовал в ней шить-шилось, и фьюзы записывались. А сейчас во владке фьюзы по ошибке вместо чтения нажал запись и кирдык. Выскакивает ошибка, все стереть не получается.Про резистор отвечал- отключал его, без изменений.

Да, резистором регулируется скорость передачи.

Ромм
21.01.2018, 15:30
Тогда возможно в прошивке косяк. Есть уверенность в источнике?
Думаю ее проще заново написать.

RU7L
21.01.2018, 15:35
Какая-то уверенность может будет завтра. Автор обещал на работе еще раз протестировать.
А насчет написать, ща наверное начну:-P

Ромм
21.01.2018, 15:38
Если что я Вам могу помочь, только на СИ в CVAVR/

RU7L
21.01.2018, 15:48
Спасибо конечно за отзывчивость, но пока не стОит бросаться из крайности в крайность. Мне удобно, что в авторских исходниках я могу в менять то, что должно звучать в режиме маяка, и другие кое какие задержки с помощью BASCOM-а. И автор пишет, что в нескольких экземплярах это работает. Под меня изменил исходник, может накосячил где, завтра проверит.
Пока -пауза.
А чип можно выбрасывать?

ua9d
21.01.2018, 16:07
А чип можно выбрасывать?

Не надо выбрасывать . В исходное состояние его можно вернуть более "сложным" программатором( Параллельный) . ну например Китайским TL866A -сначала восстановить заводские фьюзы и будет как новенький!!

Ромм
21.01.2018, 16:40
Я бы для начала написал бы тестовую прогу - моргание светодиодом. Просто чтобы убедиться МК живой или в морг:smile:.
Один раз запарился, и тупо забыл при прошивке тип МК на правильный поменять:super:.
Чуть с ума не сошел:ржач:

Владимир_К
21.01.2018, 17:52
Коллеги! Я уже обращал внимание на особенность схемы - использование вывода RESET как порта. Поэтому повторю. После того как прошили фьюзы, вывода RESET у Вас больше нет - он превратился в обычный порт и теперь низковольтным программатором, таким как здесь упоминается, прошивать микросхему нельзя. Поэтому, процедура записи - сначала шьем программу, потом фьюзы. Все. Работает, хорошо, не работает ищем другой программатор.
Поэтому, я бы сделал так. Фьюзы, а именно RSTDISBL не программируем. Прошиваем программу, потом фьюзы, оставляя RSTDISBL "по умолчанию" как в новой микросхеме, то есть, там должна быть ЕДИНИЦА. Затем проверяем работу схемы. Кнопка "mode" понятно, пока работать не будет, при ее нажатии контроллер просто будет сбрасываться, ведь пока это РЕСЕТ. Если все остальное работает нормально, опять подключаем программатор, меняем фьюз RSTDISBL на ноль и прошиваем. Все. Теперь будет работать кнопка, но РЕСЕТА у Вас больше нет. Это извращение из-за того, что не хватает ножек. И если вы уже прошили Вашу микросхему и установили фьюз RSTDISBL, для ее программирования Вам нужен другой программатор.
Может я что-то уже подзабыл, давно это было. Поэтому, вот на всякий случай ссылка:
https://habrahabr.ru/post/110894/
Кроме того, в некоторых программаторах фьюзы "инверсны". Обычно 1 - не запрограммировано, 0 или "птичка" - запрограммировано. Поэтому, когда программатором считали фьюзы, убедитесь как они отражаются нормально, или инверсно. Смотреть лучше по новой микросхеме, по фьюзам тактирования. Заводская установка - тактирование от RC генератора, 1,2 мгц для этой тиньки.

Ромм
21.01.2018, 18:02
Это извращение из-за того, что не хватает ножек.

Владимир, а я поэтому и предлагал все это на тини2313 сделать. Ножек с запасом и программу можно в дальнейшем совершенствовать.

RU7L
21.01.2018, 18:28
Владимир_К, Спасибо за интересную информацию, скопировал в свои заметки.

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

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

Ромм
21.01.2018, 20:46
Но это будет уже другая схема, которая впрочем тоже имеет право на существование.

Почему другая? Все то же самое, только RESET свободен. Одной проблемой меньше. Я так понял печатку Вы еще не делали, значит смена МК вообще не проблема. Ну вместо 8-ми ног - 20.

Я так подумал.. Можно и на этом МК все сделать не используя RESET.
Последовательно с R3 к общему включить резистор 1 кОм. Поставить кнопку, шунтирующую вывод 7 на землю. Прописать в программе включение режима маяка по напряжению 0 на выводе 7.
Все. RESET свободен!

RU7L
21.01.2018, 21:30
Ромм, Проблем и так не будет, если все заработает. Было бы интереснее постоянную память разбить на два массива,чтобы можно было зашить в первую общий вызов, а во вторую очень короткую фразу -"pse k"
А печатка готова. Но это не такая уж и проблема.
Не хочется отходить от тини13. Я их еще заказал на али)))).
Кривое время ставится на сайте.

Ромм
22.01.2018, 05:44
Было бы интереснее постоянную память разбить на два массива,чтобы можно было зашить в первую общий вызов, а во вторую очень короткую фразу -"pse k"

А в чем проблема? Памяти мало?

alex_m
22.01.2018, 06:17
можно на STM8S103F3P6 делать. Сами чипы на али от 20 шт по $0.39.
Также на али готовые микроплаты продают с кнопкой сброса и micro-usb разъемом (https://www.aliexpress.com/item/A35-1pcs-lot-STM8S103F3P6-system-board-STM8S-STM8-development-board-minimum-core-board/32834079747.html), цена платы - $0.70.
Прямо в эту плату провода от кнопок и ключа запаивать и готово.
Памяти FLASH 8 кБ, RAM 1 кБ, EEPROM 640 байт - на десяток фраз по 64 буквы хватит.
Ножек на кнопки хватит, можно и ЖК индикатор повесить, менюшку с настройками прикрутить - по взрослому :ржач:

RU7L
22.01.2018, 09:54
Ромм, Памяти не много, но хватит.

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

Ромм, Памяти не много, но хватит.
alex_m, можно, но зачем?Я не специалист в этом деле, но думаю, что использовать мощный М.К, чтобы облегчить жизнь программисту, который будет использоваться на 10 процентов своих возможностей- это не высший пилотаж.
Гораздо интересней выжать все из маленького м.к. (тини13), организовать ему спящий режим и т.д. При этом батарейки ему хватит на несколько лет работы.

Ромм
22.01.2018, 10:19
Тогда я бы сделал так. Одной кнопкой вход в режим выбора:
1. одновременно другая кнопка и точка - общий вызов;
2. одновременно другая кнопка и тире - позывной или что Вы хотите;
3. одновременно точка и тире - маяк.
Правильно Вам писали, от использования вывода RESET лучше уйти.280040

alex_m
22.01.2018, 10:24
ex RN6MT, дело в том, что STM8S103F3P6 - это тоже очень маленький МК. И стоит дешевле тини.
Причём дальше эта разница будет только расти.
Но возможностей у STM на порядок больше. И ног чуть больше, так что можно лишних кнопок и возможностей добавить при желании.
Ну это примерно как конструировать ламповую технику на дорожающих лампах, в то время как давно доступны более экономичные транзисторы и микросхемы, которые становятся дешевле и интереснее :smile:

RU7L
22.01.2018, 10:48
[QUOTE=Ромм;1489419]

Я понял так, что Вы готовы помочь, тогда я чуть позже напишу, как я это себе представляю.
А по поводу RESET- это Вам решать.

alex_m, убедили)))) и платка дешевая,и делать ее не нужно. Если Вы что-то сделаете в этом плане, повторю и Ваш вариант.

Ромм
22.01.2018, 10:56
А по поводу RESET- это Вам решать

Да нет, на этот раз Вам:-P

А так, знакомый программист у Вас есть, МК тоже.
А у меня мысли по этому проекту кончились, так что удачи!:smile:

ra3gcp
22.01.2018, 11:14
ex RN6MT, А что Вы не хотите предварительно погонять всё в протеусе. Схемка простая, нарисовал и симулирой всякими прошивками. Картина хотя бы нарисуется,где что.

RU7L
22.01.2018, 11:37
ra3gcp, Здравствуйте Анатолий. Если бы Вы мне предложили что-то проверить в программах CST, FEKO, MMANA или HFSS в крайнем случае, то да.
Но я не знаю Протеус к сожалению. Это не мой профиль.
Изучать его для того чтобы сделать ключ нет времени.... Как-то так

ra3gcp, Здравствуйте Анатолий. Если бы Вы мне предложили что-то проверить в программах CST, FEKO, MMANA или HFSS в крайнем случае, то да.
Но я не знаю Протеус к сожалению. Это не мой профиль.
Изучать его для того чтобы сделать ключ нет времени.... Как-то так
Ромм,
И имел ввиду не именно Вас, а программиста, что пишет программу. А пользователю все равно, как там. Лишь бы работало.

Ромм
22.01.2018, 11:45
Геннадий, так Вы хотели что-то уточнить у коллеги на работе. Не получается?

RU7L
22.01.2018, 12:37
Это радиолюбитель, живет в Челябинске. Пока молчит.

Вот ссылка на его статью: http://forum.vhfdx.ru/tekhnicheskiy-forum/ft-780-i-jelektronnyj-kljuch-na-attiny13-v-transvertere/msg316270/?topicseen#new

Ромм
22.01.2018, 12:44
На Вашей схеме над ключами CW и РТТ что обозначают?
Каково соотношение точек-тире по длительности?
Как это соотношение (в каких пределах) должно регулироваться?
Я так понял длительность точек-тире задает МК, а паузы между ними оператор?

Dwarves
22.01.2018, 13:01
На Вашей схеме над ключами CW и РТТ что обозначают?
Первоисточник http://forum.vhfdx.ru/tekhnicheskiy-forum/ft-780-i-jelektronnyj-kljuch-na-attiny13-v-transvertere/

ra4art
23.01.2018, 17:16
Всем общий привет!Собрал программатор по схеме :http://9zip.ru/home/universalnyj_program mator_avr_pic.htm ,скачал ICprog,решил проверить пока на считывание,на в этой проге столько галочек установить нужно,вернее не могу найти какие нужно ставить а какие нет.Может кто подскажет?

LEONID2
23.01.2018, 19:04
Довелось программамировать очень многие контроллеры и виды памяти от EPROM до FLASH.
ПЕРВАЯ ваша ошибка, это то, что не начали с серии PIC. Что бы спалить или запороть PIC нужна по крайней мере степень доктора по шкале дураков. Даже при перевернуто питания, контроллер не погибает. Есть масса простых ключей на PIC-ах и всё работает.
Теперь вам нужно найти "реставратор" для серии ATMEL, там фьюзы нужно ввести в заводской режим. В PIC- е все галочки устанавливают в программе, ещё перед компилированием. Удачи.

ra4art
23.01.2018, 19:47
Я прошу прощения за недописанное инфо....я просто зашился и не знал где и как написать.Я действительно начал заниматься с PIC -контроллеров,в частности "дресируюсь" на pic16f628a.

LEONID2
24.01.2018, 00:33
http://www.cqham.ru/key9_4.htm

RU7L
24.01.2018, 10:20
Подскажите, какой лучше купить программатор- K150 или PICkit3 ?

ua9d
24.01.2018, 10:39
Подскажите, какой лучше купить программатор- K150 или PICkit3 ?
Китайский TL866A !!! Практически все программирует (в т.ч. и pic и AVR) не требует питания (просто подключается по USB) и имеется возможность восстанавливать заводские фьюзы!
вот ссылка https://ru.aliexpress.com/item/Free-shipping-TL866A-Universal-USB-Bios-Programmer-Support-ICSP-Support-FLASH-EEPROM-MCU-SOP-PLCC-TSOP/32811894160.html?ws_ ab_test=searchweb0_0 ,searchweb201602_1_1 0065_10068_10344_103 42_10343_10340_10341 _10084_10617_10083_1 0616_10304_10307_106 15_10301_10313_10059 _10534_100031_10103_ 441_442_10142_10125, searchweb201603_2,pp cSwitch_2&algo_expid=f0da28a1-d70e-42a6-b062-59cf4a007b47-1&algo_pvid=f0da28a1-d70e-42a6-b062-59cf4a007b47&priceBeautifyAB=4

eu7ea
24.01.2018, 14:31
Китайский TL866A !!! Практически все программирует
Однозначно он, если планируете этим заниматься дальше, а не прошить один чип, т.к. стоит он более 40$ без адаптеров. Я тоже раньше мучился с usbasp и pickit (да простят их владельцы). Поддержка около 13000 микросхем, очень удобная, обновляемая, русскоязычная программная оболочка, пользуюсь этой -http://www.wizardprog.com/download.htm
Шить можно либо через встроенную ZIF панель либо внутрисхемно, куча адаптеров к нему дополнительных продается.
Вообщем работать с ним одно удовольствие.
P/S Даже появилась версия, пока бета, для работы со смартфона

RU7L
24.01.2018, 14:59
Спасибо, заказал такой.

RU7L
06.03.2018, 15:48
Приветствую форумчан. Такой вопрос- если имеются исходники, то насколько большая проблема сделать НЕХ для другого микроконтроллера?
Например , например есть HEX для PIC16F84A, а нужно для PIC16F628A.

rx3apf
06.03.2018, 16:07
Перейти с F84 на F628 никаких сложностей составить не должно, тем более с исходниками. Надо посмотреть, не требуется ли отключить/сконфигурировать ту периферию, которая есть в 628 (а ее там против 84 весьма много) и фьюзы , связанные с тактированием.

Veka
06.03.2018, 16:13
например есть HEX для PIC16F84A, а нужно для PIC16F628A
Только учтите, что HEX это не исходник, а результат компиляции...

rx3apf
06.03.2018, 16:17
Так речь и идет о "сделать hex, имея исходник", так что все просто....

RU7L
06.03.2018, 17:33
Спасибо, что откликнулись. Скачал и установил MPLab и пытаюсь вникнуть.

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


Только учтите, что HEX это не исходник, а результат компиляции...

Файл с расширением "С"- это и есть исходник?

Владимир_К
06.03.2018, 17:47
Файл с расширением "С"- это и есть исходник?
Да, на Си. Я давно уже не занимался PICами, да собственно на Си для них и не писал, только Ассемблер. И если память мне не изменяет, то MPLab, это как раз, для программирования на Ассемблере.. Расширение исходника на ассемблере другое .asm.

RU7L
06.03.2018, 18:42
Добавлено через 31 минут(ы):

Короче коллеги, кто поможет?
Есть исходник на СИ, есть НЕХ для 16F84A.Нужно сделать НЕХ для 16F628A. Есть еще хотелка - подправить немного исходник.Но это пока не так важно.

RU7L
08.03.2018, 09:42
Думал, что это решается просто, а оказалось нет. Расжился пиками 16F84, проблема решена.

SLSR
08.03.2018, 10:08
попробуйте начать осваивать программирование МК с основ программирования программ ПК, желательно сразу на С.. просто язык С.
Без знания основ программирования в реальных проектах МК нечего делать...

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


Например , например есть HEX для PIC16F84A, а нужно для PIC16F628A.

Иногда бывает достаточно переписать файл аппаратной конфигурации. HardwareConfig.h