| Автор | Сообщение |
Kisovi4 Участник Сообщения: 373
|
После немалых успехов в изучении микрочиповских контроллеров,всё сильнее просыпаеться желание изучать AVR,темболее все пишут какие они крутые и дешовые!
Привык писать на asm.Для микрочипа это не так сложно ,но для AVR приходиться изучать в разы больше команд,и что самое напряжное переучивать привыкшие команды...Но на С всёравно както не тянет! Ассемблер Форева!!!
Меня интересует есть ли для AVR такая прога как MPLAB для микрочипа? Тоесть,чтоб я пошагово,после каждой команды отслеживал,что происходит в интересующих меня регисрах,и на портах. Может в AVR Sudio есть такое? Качать 90 метров без уверенности меня напрягает...
И ещё вопрос,этот программатор http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm
Будет ли он новые, и перешитые подобными, контроллеры, нормально шить? Или их нужно будет преварительно другими програматорами прошить? |
|
AlexM Участник Сообщения: 883
|
|
Kisovi4 Участник Сообщения: 373
|
Спасибо огромное,книжка похоже то,что надо!!!
Есть непонятки с програматорами,но об этом потом отпишусь... |
|
pavel-pervomaysk Your editor Сообщения: 8037
|
Kisovi4, работает AVR910 совместно с AVrStudio сам пользуюсь , и пишу на асме . Пик - дорого , понятно что команд там понты вообще , но если что-то сделать на серию - карман сразу ощущает это ... |
|
Kisovi4 Участник Сообщения: 373
|
Да, я потом увидел твой AVR910. Акуратно сделал наверно с помощю принтера, а всё с детства лаком для ногтей малюю... Вот немогу понять,что там за экранированая кобочка,типо фильтра,с надпсью 8.000 типо 8MHz? В схеме вроде такого нет...
Установил AVrStudio,до этого WAVRAS юзал.Смотреть состояние портов в 16-ричной системе как-то не очень...Пока ненашёл как в бинарной.Другие регистры легко изменяю...
А в этих AVR можно к счётчику команд, добавлять содержимое регистра,чтоб перескакивать на его величину...Пока нигде не вычитал такого,если да то как? |
|
AlexM Участник Сообщения: 883
|
| Kisovi4 писал: | | Смотреть состояние портов в 16-ричной системе как-то не очень...Пока ненашёл как в бинарной.? |
Kisovi4, может не правильно понял вопрос , но по моему "alt +5"
|
|
starko Гость 77.94.*.*
|
| AlexM писал: | | Может работать через переходники в USB. | Переходник, как я понял, на FT232 ? Что у него со скоростью, не так, как с PL2303 ? |
|
Kisovi4 Участник Сообщения: 373
|
AlexM, Абсолютно правильно! Сегодня нашол уже,тут даже можно вручную менять...Особенно для пинов, настроеных на вход это актуально  |
|
AlexM Участник Сообщения: 883
|
starko, да у меня на FT232. Я использовал неисправный переходник RS232 to USB , был убит MAX . Из AVRStudio atmegа8 записывается приблизительно 3 секунды. На PL2303 не пробовал. |
|
starko Гость 77.94.*.*
|
AlexM, O.K., спасибо, надо попробовать. На PL2303 сейчас пытался проверить - ерунда какая-то получается.
Прошу прощения, вопрос не по теме, как FT232 с понькой работает, тормозит? |
|
Kisovi4 Участник Сообщения: 373
|
Хотелось бы на этот вопрос,кто-то объективно ответил:
А в этих AVR можно к счётчику команд, добавлять содержимое регистра,чтоб перескакивать на его величину...Пока нигде не вычитал такого,если да то как? |
|
starko Гость 77.94.*.*
|
Kisovi4, Дык, а стек на что? Вызываем подпрограммку, вытаскиваем из стека, складываем, помещаем в стек, возвращаемся. |
|
AlexM Участник Сообщения: 883
|
Хм, странная тишина?! А не так давно били себя пяткой в грудь в спорах PIC vs AVR.
| Kisovi4 писал: |
А в этих AVR можно к счётчику команд, добавлять содержимое регистра. |
По моему нельзя. Если вопрос об управляемых переходах, то можно сделать так:
Если ветвлений мало "юзать" цепочки команды сравнения cpi и перехода по условию.
Если ветвлений много , то думаю рациональней использовать команду косвенного перехода IJMP или косвенного вызова подпрограммы ICALL , но эти команды поддерживают не все контроллеры.
Я думаю быстрей ответы можно получить на профессиональных форумах. electronix или Сахара . |
|
Kisovi4 Участник Сообщения: 373
|
Вот и я ,вдохновившись этими спорами,что круче, и начал их изучать,после пиков...
Если раньше всё было просто, писал типо:
movfw Vibor
addwf PC,F
goto Sz
goto Sv
goto Pr
goto Pa
То счас уже сам заметил,что применяют цепочки сравнений с переходами...А вобще в AVR-ах конешно хватает приемуществ,но здесь уже нужно научиться мыслить по другому... А стоит ли? Ну ради интереса буду изучать...Главное я научился при разработках, обходиться без груды обычных логических микросхем.  |
|
AlexM Участник Сообщения: 883
|
На AVR это можно сделать так:
MOV temp, Vibor
CPI temp, 0x01
BREQ Sz ;
CPI temp, 0x02
BREQ Sv ;
CPI temp, 0x03
BREQ Pr ;
CPI temp, 0x04
BREQ Pa ;
Надо иметь ввиду, что в этом случае программа будет выполняться разное время в зависимости от значения в регистре Vibor иногда это важно.
Добавлено January 17 2009, 17:21
| Kisovi4 писал: | | .. А стоит ли? |
Тут каждый выбирает сам Я иногда использую AVR только потому что у нас avr значительно, в разы, дешевле. |
|
NeLeGal Гость 80.237.*.*
|
Kisovi4, в качестве примера приведу код для выполнения вашей задачи (примера) с помощью упомянутой AlexM команды косвенного перехода
ldi ZL,low(table_jamp)
ldi ZH,high(table_jamp)
clr YH
......
add ZL,Vibor
adc ZH,YH
ijmp
table_jamp:
rjmp Sz
rjmp Sv
rjmp Pr
rjmp Pa
если отсутствуют команды косвенного перехода и вызова, то решить данную задачу можно легко используя стек
ldi ZL,low(table_jamp)
ldi ZH,high(table_jamp)
clr YH
......
add ZL,Vibor
adc ZH,YH
push ZL
push ZH
ret
table_jamp:
rjmp Sz
rjmp Sv
rjmp Pr
rjmp Pa
в последнем случае так же, как и в первом, время выполнения косвенного (табличного) перехода будет одинаковым |
|
Kisovi4 Участник Сообщения: 373
|
Вау! Супер! Просветили! Я просто до этого видел гораздо бОльшие цепочки сравнений.Там, как не сразу разобрался,были комаднды выполняющие другие функции...  |
|
Kisovi4 Участник Сообщения: 373
|
А в в "AVR Sudio" состояние оперативки можно посматривать както?
В пиках есть ещё такая фишка,называеться регистр косвенной адресации. Типо кидаем в регистр FSR адрес любого регистра,а с регистром Indf можем делать всё,что угодно. И это будет происходить с тем регистром,адрес которого записан в FSR и этот адрес можем в FSR менять как угодно...В общем пытаюсь либо обходиться без этого,либо придумать этому хотькакую замену... |
|
Dean Новичок Сообщения: 21
|
View -> Memory,ну и там выбираешь область которую надо посмотреть(для озу - Data). |
|
Kisovi4 Участник Сообщения: 373
|
Спасибо,я бы долго мучался.
sts 0x62, Temp
lds Temp1, 0x71
А можно-ли применить какие либо команды здесь,чтоб вместо констант регистр использовать,с записаным в него, нужным адресом? |
|
Dean Новичок Сообщения: 21
|
Ну собственно ST и LD,а адрес в соответствующей регистровой паре X,Y или Z. |
|
Kisovi4 Участник Сообщения: 373
|
Прикольно,работает!
Спасибо,ато книжки рельно некогда читать.На работе завал,каких непомню...
Мот на этих выходных съезжу, куплю девайс какойнибудь,да у же на нём буду эксперементировать. |
|
pavel-pervomaysk Your editor Сообщения: 8037
|
А оперативку лучше обозвать своим именем .
DSEG.
org 0x100
data_ram: .byte 1 // вот и получается имя у ячейки озу с адресом 0х100 .
data_in: .byte 16 // здесь уже 16 байт занято
Далее я думаю понятно
и пример :
sts data_in,r0 // запись
lds r16,data_in // чтение
lds r17,data_in+1 // |
|
Kisovi4 Участник Сообщения: 373
|
Ну, это мы проходили.Мне с цифрами пока легче работать, в окнах вижу именно их а не названия...
Меня счас интересует как Fuses правильно установить,чтоб Atini2313 новую прошить?Слышал там можно их так установить,что потом обычными средствами уже не прошыть,и работать небудет...И там вроде этими Fuses снимаеться установка по умолчанию внутреннего RC генератора.Да и читал гдето,что там если галочка стот,значит Fuse НЕ установлен?
Наверно лудше,через AVR Sudio т.к. здесь Fuses конкретно видны,но здесь похоже нельзя через LPT шить простейшим программатором...( USB мне рано ещё) Хочу попробовать через COM используя этот http://arvresearch.nm.ru/text/adapter_spi.dhtml
(та прога ,что к нему у меня криво становиться...), но тут нужно ставть инверсю всех сигналов,что в AVR Sudio я не нашёл где... Хочу ещё там вместо той микрухи MAX232 использовать (она тоже инвертирует) т.к. мой COM только на неё реагирует...(проверено ранее неоднократно) ,если что, могу после неё по инветору повесть...
Пы.Сы. Прошу сильно не смеяться,и по возможности помочь. |
|
Kisovi4 Участник Сообщения: 373
|
Похоже слишком много вопросов...
Ладно с железом сам разберусь,если шо,научный тык мне в помощ!
Нащёт Fuses в AVR Sudio.
Если у меня кварц на макетке 10 mHz то думаю надо так :
SUT_CKSEL : Ext. Crystal Osc. 8.0- MHz; Start-up time: 14 CK + 65 ms
Это,как я понимаю работа с кварцами больше 8,0MHz, с задержкой работы контроллера,после влючения питания 65 ms ?
BODLEVEL : это просто выбор напряжения, при котором контроллер сброситься и перестанет работать?
Галочки убирать, наверно нигде ненадо? |
|
kuzma700 Участник Сообщения: 237
|
| Kisovi4 писал: | | Похоже слишком много вопросов... | И на них уже ответы тут были, ATTINY2313 не пробовал в ПОИСК забить? И темы прилепленные есть, с пометкой "Важно", где много чего уже было.
| Kisovi4 писал: | | здесь похоже нельзя через LPT шить простейшим программатором...( USB мне рано ещё) | Шей PONY PROG пока с LPT (хоть "пятью проводками"), разберешся - потом посерьезней прогер заюзаешь. В PONY установленная галочка соответствует - Fuses будет запрограммирован ( 0 ). Онлайн калькулятор Fuses удобный здесь тоже в темах не раз упоминался.
Посмотри курс 10 Ступеней Рюмика, там достаточно подробно про многое написано.
Под LPT два простых варианта "программаторов" http://monitor.net.ru/forum/download.php?id=81480 |
|
Kisovi4 Участник Сообщения: 373
|
Блин,что-то както тормознул тут поиск использовать...
Полтора вечера убил в основном на радиокот,так и недочитав там многостраничные темы по фьюзы и аттини2313.А там в основном такие спецы как и я спорят...И про AVR Sudio там нислова...
В PONY PROG у меня только AT90S2313,наверно старая весия,счас попробую поновее скачать.
Может кто знает как в AVR Sudio,галочка стоит,значит Fuse установлен?
Наверно если стоит,значит НЕустановлен,т.к. у Fuse SPIEN, галка не снимаеться и обозначена красным,вопросительным знаком. Типо получаеться можно только первый раз простым, прогромматором прошыть...Если галка означает установленный.Туповато както... Ну очень мне хочеться с AVR Sudio шыть  |
|
kuzma700 Участник Сообщения: 237
|
SPIEN - разрешает(запрешает) программирование по SPI -интерфейсу , рарешено = 0, запрещено =1
Контроллеры выпускаются с установленным битом SPIEN, снять его по SPI - интерфейсу невозможно.
Общий принцип работы любой памяти - стертая ( чистая) память содержит все единицы, и только нули могут быть в нее записаны. В разных программаторах fuse-биты устанавливаются разными способами ( списком, галочками и т.д.), но всегда ЗАПРОГРАММИРОВАННОМУ состоянию бита соответствует НОЛЬ, а не единица, также в AVR Sudio и PONY PROG - галочка обозначает что будет записан "0".
"1" обозначает, что фуз не запрограммирован ( как и для флэш памяти: при стирании все "1" )
"0" обозначает, что фуз запрограммирован (установлен)
Установленным считается fuse-бит, равный нулю, а сброшенным — равный единице. |
|
Kisovi4 Участник Сообщения: 373
|
Спасибо за науку,сразу такой просвет в мозгах нащёт любой памяти...
Сегодня на работе впихнул в корпус от COM-порта диповскую MAX232 и к155ла3(инверторы) и кт315 со всей прилегающей фигнёй,да и даже для светодиода отверстие...Типо мой программатор,что я описывал выше.
Поскольку тиньку нашёл только SMD-шную,(рынок наредкость пустоват был),хочу наконейто,впервые в жизни попробовать лазерно утужную технологию...Разработал уже подопытную макетку, со светодиодами и кнопками и LCD SC1602...Вот только с принтером напряг...На следующей неделе наверно только сделаю...Потом отпишусь... |
|
Kisovi4 Участник Сообщения: 373
|
Не определяеться у меня тинька.Пробовал и через 5 проводков и через свой программатор, тоже самое.Ни пони прогом v2.07c ни AVR Sudio...Пробовал потом на пятую ногу генератор, около 50kHz,тоже ничего...Потом без всякой надеж попробовал через
http://avr.nikolaew.org/data/uniprof20jan6.zip вместе с этим генератором.Сразу определилось. Проверил потом неотсоединяя на пони,опять тоже самое...
Считал фузы непомню точно какие были установленны,помню только,что DWEN RSTDISBL установлены были...
Скачал где-то тут пдф-ку с фузами,там эти фузы красным были обведены и не выставленны.Типо их трогать нельзя... Снял с них галочки и согласно той пдф-ке и установил фузы на внутренний генератор,без делителя частоты,тоесть на 8mHz.
Всё,больше она нигде и никак неопределяеться... До этого без проблем записывал и с читывал с неё HEX файлы...
Как теперь из этого аута выходить? Только этим крутым прогромматором?... |
|
Kisovi4 Участник Сообщения: 373
|
Похоже в этой проге как раз таки всё наоборот с галочками...  |
|
Dean Новичок Сообщения: 21
|
Теперь только в программатор с высоковольтным программированием. |
|
|
Текущий раздел»
Программное обеспечение»
Микроконтроллеры (Микроконтроллеры - AVR-ы, PIC-и и другие)
|
|
|