|
проблема с ATmega16, помогите новичку |
|
|
|
Aug 6 2006, 08:22
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
люди, я щас буду головой об стенку биться  всю ночь мучаюсь а ничего не работает, как в принципе уже и мозг под утро ситуация следующая есть кристалл АТмега16-16PI, распаяный на монтажке с питанием 5В. есть программатор СТК200, собраный один в один со схемой с сайта ПОНИпрога собственно понипрог версии 2,06f который даёт Тест ОК при проверке программатора теперь даже не знаю как описать собственно проблему... я хотел спаять управлялку стеклоочистителем для своей старенькой машины... пару кнопок, таймер... ничего сложного. думал, для начального освоения АВР пойдёт. ну, написал прогу на асме, залил, смотрю - не работает. исправил кой чаво - всё равно не работает. потом думаю, дай ка я начну с простого... и написал следующее: код в АВРстудии версии 4.12 билд 460: .include "m16def.inc" .def tmp = r16 .cseg .org 0 jmp reset reset: ldi tmp, 0b11111111 out DDRC, tmp main: ldi tmp, 0b00000001 nop_cicle: rol tmp out PORTC, tmp nop jmp nop_cicle ;---------------------------- вот такой вот код. просто как сиськи первого размера. ну думаю, щаз увижу имульс какой-то частоты. беру осциллограф, встаю на 0 пин порта С и о чудо! импульс! 1 пин - импульс.... а дальше - 2 пин - единица, 3 - единица, 4 и 5 - нули, 6 и 7 - показывают правильный импульс. получается, что в порту работают только два старших и два младших бита, а средние - показывают детскую неожиданность. думаю, может что с осциллографом? иду и смотрю на цифровом (кажись Тектроник за 7 косарей) - всё идентично с показаниями старого советского осциллографа. затем пишу другую программу: .include "m16def.inc" .def tmp = r16 .def tmp1 = r17 .cseg .org 0 jmp reset reset: main: ldi tmp, 0b11111111 out DDRB, tmp ; так же ставил ДДРЦ, ДДРА, ДДРД ldi tmp, 0b00000000 ldi tmp1, 0b00000001 nop_cicle: add tmp, tmp1 nop out PORTB, tmp nop jmp nop_cicle ;------------------------------------------------ ну и по идее что я должен увидеть? делитель частоты. осциллограф.... порт C - те же пины работают, те же не работают. другие порты - ВООБЩЕ нули. беру другую атмегу16..... ****, то же самое! сто раз проверяю схемотехнику монтажки - всё правильно (да и негде там ошибиться! ) может я где-то чего-то не дочитал о назначении портов? что может быть? кто-то знает?
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 09:05
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
спасибо за совет, сейчас попробую
но это касательно порта С. а что по поводу других портов? почему с ними могут быть проблемы?
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 09:49
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
А стек после reset: кто инициализировать будет Код reset: ldi r16, high(RAMEND) out SPH, r16 ldi r16, low(RAMEND) out SPL, r16 А что б начать зайди хоть сюда (раз десять наверное сылку давал) http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm там как по русски, так и по импортному, апликейшены от Atmel. Также если будешь использовать биты порта на котором сидит компаратор, не забудь отключить его, т.к. он по умолчанию тоже включён.
Сообщение отредактировал Rash - Aug 6 2006, 09:50
|
|
|
|
|
Aug 6 2006, 10:22
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
а назачем, извиняюсь, в такой тестовой программке инитить стек? ессесно что его инит я делаю, но не здесь же =)
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 10:57
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
в данном случае мы не обращаемся же в память, всё только через регистры. а теперь собственно жалуюсь на новую проблему: ну по совету товарища Black Pahan, решил запрограммить фьюзы. включаю пони прог, читаю - всё пусто. (и флеш проца пуст). ставлю бит, пишу - писать... потом читаю снова фьюзы - ничего не изменилось. зато во флеше!!!!!! мама родная! весь влешь забить мусором! в частности, если я не ошибаюсь, он просто в ячейки памяти записал их номера! ирэйз, повторно - сейм шит. читаю доку, ничего такого особенного на эту тему не нахожу... сорри за два сообщения, но что-то я не могу редактировать предыдущее
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 13:16
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
нда, до этого за понипрогом не наблюдал ничего такого! но при этом после того, как я делаю ирэйз (не ресет) он возвращает пустой флеш! ща попробую другой пони прог чтоли кто-то вообще программировал же фьюзы на атмеге16? не я же первый! как и чем вы это делали? кста прочитал в даташите - в MCUCSR есть бит JTD - это типа дисэйбл ДЖТАГА... ставлю... ага, как бы ни так...
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 14:12
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

|
взял сейчас 90s4434 всё работает замечательно! и фьюзы программит, и флеш! и работает всё!! чё ж мне так не прёт с атмегой16?
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|
|
|
|
|
Aug 6 2006, 15:24
|
Частый гость
 
Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397

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