Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нет проявления жизнеспособности МК
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Страницы: 1, 2
Unitra
Я 99% чайник в микроконтроллерах.

написана программа для управления тремя униполярными шаговыми двигателями.
отлажена в протеусе, работает во всех режимах как положено.
а после прошивки в Мегу8535 оное атмтеловское детище молчит как рыба в воде, не реагирует ни на что sad.gif

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

может, я что не туда подключил? crying.gif

выручайте...

ну вот разве что я не разобрался во fuse, и шил без них

что-то надо было с ними делать?
Lmx2315
вы сначала прошейте что-нить простое - мигание светодиодом например и посмотрите , если всё ок - значит дело в прошивке.
kovigor
Цитата(Unitra @ Feb 26 2011, 19:49) *
ну вот разве что я не разобрался во fuse, и шил без них

что-то надо было с ними делать?


Очень возможно, что дело именно в них. Придется разобраться, ничего сложного там нет ...
Unitra
kovigor, если б я ещё анлгицкий знал...
я в обоих учебках немецкий изучал, к сожалению sm.gif
alexunder
Цитата(Unitra @ Feb 26 2011, 20:12) *
kovigor, если б я ещё анлгицкий знал...
я в обоих учебках немецкий изучал, к сожалению sm.gif


Сережа, я те миллион раз говорил: читай мануалы внимательно! Юзай lingvo.ru для перевода, набор слов в манах по контроллерам не такой уж большой.
kovigor
Цитата(Unitra @ Feb 26 2011, 19:12) *
в обоих учебках немецкий изучал, к сожалению sm.gif


Это не имеет никакого значения. Хотите вы или не хотите, а учиться читать английские технические тексты вам придется, без этого в современной электронике делать, наверное, нечего ...
Unitra
kovigor, если придётся учиться читать на другом языке, то как раз-таки и имеет sm.gif

посижу почитаю про фьюзы, может и пойму что
kovigor
Цитата(Unitra @ Feb 26 2011, 19:34) *
посижу почитаю про фьюзы, может и пойму что


На некоторые МК были в сети переведенные даташиты (кажись, на www.gaw.ru). Попробуйте поискать там ...
Unitra
а с проекта AVR Studio можно вытащить требуемые к прошивке фьюзы?

Lmx2315, светодиодики, увы, не моргают sad.gif
Lmx2315
если вы фьюзы изначально не трогали то и испортить ничего не могли и светодиоды должны моргать - отсюда вывод , либо мк не живой , либо программатор не работает . Выложите прогу которой моргали светодиоды.
Unitra
сейчас МК не определяется вовсе. чую, трындец пришёл

если я ему в CKSEL зашил 7, может он сдохнуть? sm.gif
-SANYCH-
Процессор от прошивки битов сдохнуть не может. Но можно его загнать в режим когда понадобится внешнее тактирование после чего проц перестанет реагировать на программатор. И в более плохом случае вы можете перевести в такой режим что понадобится высоковольтный (параллельный) программатор. Поэтому с битами конфигурации нужно играться осторожно.
Просмотрел бегло программу вроде рабочая. Покажите схему как вы подключили светодиоды.
Какая тактовая частота у вашего проца? Чем тактируется?
Напишите какие фузы вы устанавливаете
Unitra
-SANYCH-
светодиоды - через 470 Ом на землю к порту С
тактируемся кварцем на 4МГц
я так понимаю, если шить авреалом, по SPI, он может ведь сам тактировать проц?

фузы в том-то и дело что не устанавливаю вовсе.
В программе задействованы таймер0, без ШИМ, и байт 5 в ОЗУ под переменные. это в самой программе.
в проге под светодиоды фузы не ставлю тоже.
-SANYCH-
Unitra
У вас получилось помигать светодиодами?
Авреалом я не программировал (программил понипрогом через SPI но там нужно было чтобы проц от чегото тактировался сам. Толи от внутреннего генератора то-ли от внешнего кварца). Без схемы подключения программатора к микроконтроллеру про тактированние конкретно не скажу.

Кстати светодиоды правильно запаяны (полярность не попутана) ?
Unitra
у меня получилось помигать светодиодиками только в протеусе. МК отказывался работать, кроме как шиться, а теперь он ещё и шиться перестал. после того, как я ему в CKSEL загнал "7". по пдфке, 7 - это 111 - это для кварца 3-8МГц, вместе с СКОРТ=1, таблица 4 на стр.26.
Авреал, я так понял, шьёт сразу все 4 фуза CKSEL, для чего я ему и вставил десятичное число, вместо раздельного прошивания фузов

может, так и неправильно. я хз, я импульсные ИП делаю, а не МК
-SANYCH-
У вас в программаторе на ножки где цепляется кварц заходят сигналы с программатора? Если нет то припаяйте туда кварц и ваш контроллер опять должен начать определяться программатором.

После чего прошейте программу мигания светодиодами и убедитесь что она работает.
Unitra
Altera byte blaster - это глупый SPI программатор, одна 74HC244 и на лпт порт. там нет кварцев и вешать некуда ничего.
а авреал - это консольный софтовый прошивальщик. и в его ключах есть функции принудительного тактирования МК

но почему-то оно не работает.
ILYAUL
Теперь пока не повесите кварц 3-8Mhz между 12 и 13 ногой и с 22 pf на землю по обеим ногам- работать не будет. Да и не трогайте больше fuse - пока не поймёте , что к чему.
Теперь о программе - такого мигания светодиодиками я встречю впервые, но хозяин барин , главное , что рабочая. Единственное , хотелось бы взглянуть на схему их вкл.
-SANYCH-
Цитата
Теперь пока не повесите кварц 3-8Mhz между 12 и 13 ногой и с 22 pf на землю по обеим ногам- работать не будет


Это для корпуса PDIP.
Для TQFP ноги 7 и 8
Unitra
кварц стоит на плате изначально, вместе с кондёрами 22пф
и не работает.
-SANYCH-
Подайте на вход XTAL1 внешние клоки и попробуйте определить чип программатором.
Какое напряжение питания у микросхемы? Возможно у вас бод левел выставлен не правильно.
Выложите схему как вы подключили микросхему (или часть схемы). Сделайте принтскрины консоли когда вы программируете.
Если я не ошибаюсь для Авреала есть батник который вы запускаете. Выложите его тоже.
Unitra
-SANYCH-, скажите мне просто и честно
пожалуйста
1. для простейшей программы мигания светодиодом надо ли шить какие фузы? как написано в датащите, с завода она идёт с прошитым внутренним RC-геной на 1МГц.
2. я правильно понял, что у меги8535 для мигания светодиодом надо соединить обе земли, соединить оба питания? а что делать с лапкой Aref?
-SANYCH-
1. По умолчанию фузы установлены на внутренний RC генератор 1MГЦ. Поэтому чтобы помигать светодиодом шить фузы не обязательно.
Но питание чипа должно быть 5 Вольт.
2 Aref - это опорное напряжение для АЦП его можно никуда не цеплять (к миганиям светодиодами эта нога никакого отношения не имеет) .
Unitra
ну тогда у меня 2 варианта
либо я пожёг МК статикой с рук
либо он изначально был полудохлый
-SANYCH-
Цитата
Подайте на вход XTAL1 внешние клоки и попробуйте определить чип программатором.


Вы это пробовали делать?
ILYAUL
Цитата(Unitra @ Feb 27 2011, 15:03) *
ну тогда у меня 2 варианта
либо я пожёг МК статикой с рук
либо он изначально был полудохлый

1 Молния , что ли проскачила
2 Мало вероятно

Какой кварц-то взяли? И откуда? AVCC - не трогайте пусть себе висит. GND и без Вас соединили.

Осцил есть?
Unitra
господа, я вас благодарю за проявленный интерес к проблеме.

к статике я склоняюсь не зря. Молния не проскакивала, но с пальцев искрило прилично. 74НС244 заменил, эффекта не дало.
дома осцилла и генератора нет.
завтра на работе продолжу. там же и запасной МК есть.
Genadi Zawidowski
Цитата(Unitra @ Feb 26 2011, 22:03) *
а с проекта AVR Studio можно вытащить требуемые к прошивке фьюзы?

Lmx2315, светодиодики, увы, не моргают sad.gif

Есть выход mux? Поуправляйте им...

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

Шью во второй МК, такой же, из той же партии, программу такого содержания:

main:
ldi temp,0b11111111
out portA,temp
rjmp main

В результате мы имеем негорящие светодиоды на любом бите порта А, подключенные к земле через 220 Ом.
порт есесно настроен, и шапка программы стандартная.
При прошивке косяков не обнаружилось. шил без фузов.

я даже не знаю, какой вопрос у вас спросить... у меня что, совсем плохо всё?
ILYAUL
Цитата(Unitra @ Feb 28 2011, 13:53) *
В результате мы имеем негорящие светодиоды на любом бите порта А, подключенные к земле через 220 Ом.
порт есесно настроен, и шапка программы стандартная.
При прошивке косяков не обнаружилось. шил без фузов.

я даже не знаю, какой вопрос у вас спросить... у меня что, совсем плохо всё?

А светодиодики на какое напряжение ?
И может всё таки наоборот - 220 OM на 5 V , а катоды диодов на PINs порта , да и резисторы на 510 OM заменил
нечитатель
Леньчитатьвсютему про ресет уже писали?
Типа лечение по SMS.
Unitra
светодиодики обычные самые что ни на есть
сняты откуда-то
светятся зелёным от мультиметра
вместе со светодиодами мерю напряжение на выходе порта - пусто

у меня подозрение - в шапке всё в порядке? может, что-то проинициализировать нужно?
напомню, новая мега прошита на внутренний генератор 1МГц

.include "d:\avr\avr\avrasm\appnotes\m8535def.inc"
.def temp1=R16
.def temp2=R17
.def temp3=R18

.cseg
.org 0

rjmp Reset
rjmp ext_INT0
rjmp ext_INT1
rjmp TIM2_COMP
rjmp TIM2_OVF
rjmp TIM1_CAPT
rjmp TIM1_COMPA
rjmp TIM1_COMPB
rjmp TIM1_OVF
rjmp TIM0_OVF
rjmp SPI_STC
rjmp USART_RXC
rjmp USART_UDRE
rjmp USART_TXC
rjmp ADCC
rjmp EE_RDY
rjmp ANA_COMP
rjmp TWSI
rjmp EXT_INT2
rjmp TIM0_COMP
rjmp SPM_RDY

EXT_INT0:
EXT_INT1:
TIM2_COMP:
TIM2_OVF:
TIM1_CAPT:
TIM1_COMPA:
TIM1_COMPB:
TIM1_OVF:
TIM0_OVF:
SPI_STC:
USART_RXC:
USART_UDRE:
USART_TXC:
ADCC:
EE_RDY:
ANA_COMP:
TWSI:
EXT_INT2:
SPM_RDY:
TIM0_COMP:
reti

RESET:
cli
ldi temp1,high(RAMEND)
out SPH,temp1
ldi temp1,low(RAMEND)
out SPL,temp1
ldi temp1,0b11111111
out DDRa,temp1

main:
out PORTa,temp1
rjmp main


нечитатель, ресет - 1кОм на +5 и 0,1мкФ на землю

я упростил программу донельзя
.include "d:\avr\avr\avrasm\appnotes\m8535def.inc"
.def temp1=R16
.def temp2=R17
.def temp3=R18

.cseg
.org 0

ldi temp1,0b11111111
out DDRa,temp1

main:
out PORTa,temp1
rjmp main

и тишина....
нечитатель
В глаза ничего не бросилось по сабжу мне.

1. Обратил бы внимание на векторы прерываний: в данном случае они однобайтовые, т.е. адреса просто по порядку "0x001, 0x002, 0x003, ..." - тогда так прокатывает. Но не гарантируется, что у любых других микросхем они такие же однобайтовые.
2. Попробовал бы другими портами помигать.
3. Поизучал бы разницу между "вывести в порт 1" и "вывести в порт 0".
4. Обратно с микросхемы прочитал-сравнил бы прошивку ещё раз (полагаю, что уже сделано, но на всякий).

То ли атмела сайт чересчур современный, то ли мой интернет чересчур отсталый. В смысле тормоз. Зато дёшево и не модно.

---

... падажжжите падажите, минуточку внимательнее давайте побудем!
Цитата(ILYAUL @ Feb 27 2011, 15:26) *
AVCC - не трогайте пусть себе висит.
Документ номер 2502, страница 5:

"AVCC is the supply voltage pin for Port A and the A/D Converter".

Который намёк и уже правильно обозначен в п. 2.
Unitra
да, вот ещё кто-то спрашивал про зашитые фузы
Fuses
OSCCALs = AE AF A5 A8
BODLEVEL = 1
BODEN = 1
SUT = 2
CKSEL = 1
BLB1 = 3
BLB0 = 3
S8535C = 1
WDTON = 1
CKOPT = 1
EESAVE = 1
BOOTSZ = 0
BOOTRST = 1
это что пишет прошивальщик при прошивке.
тут нет косяка?

нечитатель
я не понял ничего, что вы написали в п.1. Ну не моя это специализация. Я думал, что простая программа должна работать просто и весело. Выходит, не так? Странно, но простенькие моргалки с обучающего курса на РадиоКот повторяются на "ура" без проблем. Правда, не с мегой, а с простеньким 90S2313. Но без прошивок фузов и танцев с бубном. Странно.
Сейчас пробую мигать всеми портами. На всех пусто.
AVCC соединён с VCC на плате. Сейчас даже 0,1мкФ с Aref на землю повесил. Тишина.
С каждым включением питания на выходах разное напряжение. Замечал 0,2В, 0,07В, вот сейчас спциально проверил - 0,14В. Это на тех лапках, где висят светодиоды.
нечитатель
Попробуй на всякий случай для гарантии:
Код
main:
out PORTa,temp1
wdr; сброс собаки, которая научно называется watchdog (поищи слово в официальном документе и/или в интернете)
rjmp main


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

Железка глупая, специализацию паяльщика не понимает и завлекательные обучалки с инета не скачивает, дык. Или всё сделано правильно, или с бубном наугад вокруг чёрного ящика.

Я до "вы" ещё не дорос.

---

Околонулевые напряжения на ногах похожи на кабутто они входы без подтяжек (pull-up) либо питания нет.
Программатор на всякий случай отключен физически для нормальной работы?

---

.... ээээ. С собакой там почитал: как-то мутно. Простой инструкции wdr может не оказаться достаточно. Попробуй fuse WDTON поменять как вариант.
Вообще же на чужие fuses не хочется лишний раз смотреть, потому что неоднозначно соответствие между "0/1" и "programmed/unprogrammed", соответственно в популярный вариант публичного онанизма "проверяние фузов через форум" превращается.
ILYAUL
Цитата(Unitra @ Feb 28 2011, 17:33) *
светодиодики обычные самые что ни на есть
сняты откуда-то

Светодиоды обычными не бывают! Если они вольт на 6 - гореть не будут. У тестера на щупах сколько вольт?
Цитата
С каждым включением питания на выходах разное напряжение. Замечал 0,2В, 0,07В, вот сейчас спциально проверил - 0,14В. Это на тех лапках, где висят светодиоды.

Вы понимаете , что порт просто не тянет заданный Вами ток? Посмотрите , что в этот момент с питанием самого проца? И схему включения мы когда нибудь дождемся?
Unitra
нечитатель, со сторожевым таймером попробую, и с его фузом тоже, завтра.
мыслей не остаётся. только экстремальные... сбросить с 16 этажа или в микроволновку на пару секунд засунуть.

программатор после программирования переходит по выходам в z-состояние и на работу не влияет. Во всяком случае, ресет = "1", а остальные выводы программирования не задействованы в схеме. Тем не менее, я его отключаю - МК всё равно не стартует.

ILYAUL
вот примерная схема. Светодиоды вешал и на портЦ, и на портА. другие на плате отведены под входы, и их использование невозможно.
не буду комментировать параметры светодиодов, у меня пока хватает мозгов различать диоды по напряжению и току.
так же, как и балластные резисторы к ним. 220 Ом с пяти вольт - это 23мА. Вполне нормальный для выхода МК ток, учитывая максимальное значение по даташиту 40мА. А если ещё отнять падение на диодах - 2В - будет вообще 14мА. и диоды должны гореть, и МК должен держать.
А что с питанием самого проца? а оно непокобелимо как солнце! я его (проц) уже по питанию конденсаторами обвесил - места свободного не осталось.

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

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

как бы вы написали прошивку и что бы вы зашили во фузы для реализации этой простой и тупой затеи?

я вижу, ни один из вас не готов принять факт дохлости обоих контроллеров? значит, работа продолжается? это радует.

З.Ы. первый МК, который перестал определяться после того, как я прошил ему фуз работы с кварцем, я его погонял сегодня утром. Никаких сигналов на кварце. Пробовал 3 разных - 4, 4,5, 8МГц.
я имею склонность верить близким мне людям. Продавец с магазина электроники, у которого я купил эти 2 МК, сказал, что у них были большие продажи конкретной партии контроллеров, и без возврата. Я ему верю, не без причины. Значит, косяк по моей части.
-SANYCH-
Попробуйте прошить файлами что я выложил. Должно мигать светодиодами.
Да еще, у вас нигде на контроллер не приходит паразитное питание (через ножки контроллера с вне приходит питание). Встречался с таким эффектом проц тоже тупо не запускался. Что интересно это была подтяжка 10к с ножки контроллера на питание контроллера.
Попробуйте после прошивки насильно ресетнуть проц (подкорачивание ножки ресет на землю)
Unitra
*.elf - это чей файл?
-SANYCH-
там есть hex. Вы можете его прошить?
Unitra
Паразитного питания нет. Источник питания - первичный, свинцово-кислотная АКБ 12-вольтовая. Через кренку. Она тоже обвешана конденсаторами. Подводящие провода короткие, 15см. Вблизи сильных источников ЭМИ нет.
Идеальные условия, блин. Рай просто...

да, хекс прошью, завтра, весь проект на работе.
спасибо, огромное. это всё, что у меня есть на настоящий момент
-SANYCH-
Цитата
Паразитного питания нет. Источник питания - первичный, свинцово-кислотная АКБ 12-вольтовая. Через кренку. Она тоже обвешана конденсаторами. Подводящие провода короткие, 15см. Вблизи сильных источников ЭМИ нет.
Идеальные условия, блин. Рай просто...


Еще раз напомню что у моем случае хватило просто подтяжки на питание проца (выдимо через эту подтяжку как-то запитался проц). Проц никакой реакции не выдавал. Отпаял подтяжку и проц начал стартовать.

Поэтому оставьте на плате подключенные светодиоды к ножкам проца, а остальные пусть весят у воздухе!!!
Unitra
чертовщина какая-то творится.
постараюсь максимально детально описать ситуацию.
---------------------------------------------------------------------------
скачал Юнипроф, у того хоть GUI есть.
СНАЧАЛА:
определялся без проблем.
шил без проблем
читался без проблем.
стирался без проблем.
но прошивка (моя, по которой надо тупо зажечь светодиоды) не работала.
-SANYCH-, ваша прошивка тоже шилась без проблем, но МК по ней тоже ничего не делал.

ДАЛЕЕ:
начал тыкать наугад чекбоксы. Попал в чекбокс "Границы прожига". Снял галку, стали активны Границы начала и конца - там стоят нули, я их не менял. Поигрался с фузом EESAVE (снял-поставил), с BOOTSZ и WDTON. Несколько раз прогнал по-всякому.

после этого начал шить что есть. Что под руку попадалось, кароч.
Прошивки шились без проблем (странно, диапазон прошивки ведь задан от нуля до нуля), при сравнении есесно ошибки, ни один байт не совпадал.
Потом поставил снова галку в "Шить всё!" и попробовал снова залить прошивки.

ТЕПЕРЬ:
прошивка моя, по которой МК жжёт светодиоды, заставляет МК зажигать светодиоды (УРА!!!! они наконец-то загорелись!!!)
команда ldi tmp,0b01010101 и выводим в порт - ура светодиоды горят через один!!!

-SANYCH-, ваша прошивка всё так же молчит sad.gif

я повешусь.
-SANYCH-
Прошивку которую я выложил на реальном железе не тестил, но тестил в AVR Studio в симуляторе. Там все работало (вероятность что должно работать в реальном железе довольно большая но не 100%). Так что если не заработала моя прога забейте на нее. Попробуйте залить в контроллер более сложную прогу и потестить.

Попробуйте прошить вот этим.
XVR
Цитата
Попал в чекбокс "Границы прожига". Снял галку, стали активны Границы начала и конца - там стоят нули, я их не менял.
Ой!
Попробуйте проверить правильность прошивки, но не верификацией из программатора, а путем считывания прошивки из МК в файл, и потом сравнить уже файлы.
По крайней мере вопросы с границами прошивки/верификации отпадут wink.gif
Unitra
XVR, разница конечно будет. Самая первая строчка в хексе - :020000020000FC - не записывается в контроллер, и не считывается из него. То есть, как минимум будет отличие в этом sm.gif
А вообще, я не настолько шарю в МК, чтобы распознавать границы.

Я забыл сказать ещё... после того, как я поигрался с фузами вдоволь, когда тыкал наугад, я ведь всё вернул взад, как по датащиту по умолчанию sm.gif Потом уже начал шить свою прошивку и она, к удивлению, заработала.
XVR
Цитата(Unitra @ Mar 1 2011, 16:38) *
XVR, разница конечно будет. Самая первая строчка в хексе - :020000020000FC - не записывается в контроллер, и не считывается из него. То есть, как минимум будет отличие в этом sm.gif
Если это единственная разница, то можно считать, что hex'ы совпадают rolleyes.gif
Unitra
а, не
та программа которую я писал под шаговые двигатели, успешно работает.

пока косяков не всплывает никаких.

-SANYCH-
нечитатель
ILYAUL
с меня стакан красного beer.gif

аще обязан считайте по гроб sm.gif
dankos
добрый вечер. собрал программатор Хлюпкина и прошивал к нему конвертированый файл STK500.ebn в *.hex, Установил фузы как указывалось в файле. Но, как я сейчас понял фузы выставил совсем наоборот( тобишь указанный в файле фуз*=1 являлся отключенным а фуз*=0 включенным) Теперь программатор Громова мега 8535 не видит в упор. Как мне быть? Читал на форуме здесь что мона RC цепь подключить... Подключен кварц на 4мгц, пробовал на 7мгц тоже молчит... У меня в распоряжении сейчас UNIPROF + пр-р Громова. есть пара AT90S2313 и AT89C55WD. Как мне выкрутиться? все встало на мертвой точке( Подскажите пожалуйста. Заранее спасибо всем.
XVR
Цитата
Но, как я сейчас понял фузы выставил совсем наоборот
Посмотрите по DS во что именно выставились у вас фьюзы и какому режиму тактирования МК это соответствует. Потом обеспечите МК это самое тактирование

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.