реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> проблема с ATmega16, помогите новичку
junoSynthesizer
сообщение Aug 6 2006, 08:22
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



люди, я щас буду головой об стенку биться sad.gif всю ночь мучаюсь а ничего не работает, как в принципе уже и мозг под утро cranky.gif

ситуация следующая help.gif

есть кристалл АТмега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 косарей) - всё идентично с показаниями старого советского осциллографа. blink.gif

затем пишу другую программу:

.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 - те же пины работают, те же не работают. другие порты - ВООБЩЕ нули. wacko.gif blink.gif

беру другую атмегу16..... ****, то же самое!

сто раз проверяю схемотехнику монтажки - всё правильно (да и негде там ошибиться! )

может я где-то чего-то не дочитал о назначении портов? smile3046.gif

что может быть? кто-то знает?


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
Black Pahan
сообщение Aug 6 2006, 08:40
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 21-07-05
Из: Новосибирск
Пользователь №: 6 978



в атмегах с JTAG'ом он по-умолчанию включен. и в атмеге16 он как раз и находится в PORTC cо 2 по 5 бит. перешейте фуз JTAGEN и будет вам "щасьтье". smile.gif


--------------------
Из того, что дуракам закон не писан, вовсе не следует, что они не принимают участия в их написании.
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 09:05
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



спасибо за совет, сейчас попробую

но это касательно порта С. а что по поводу других портов? почему с ними могут быть проблемы?


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
Rash
сообщение Aug 6 2006, 09:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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.

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

smile.gif

Сообщение отредактировал Rash - Aug 6 2006, 09:50
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 10:22
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



а назачем, извиняюсь, в такой тестовой программке инитить стек? ессесно что его инит я делаю, но не здесь же =)


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 10:57
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



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

а теперь собственно жалуюсь на новую проблему:
ну по совету товарища Black Pahan, решил запрограммить фьюзы.

включаю пони прог, читаю - всё пусто. (и флеш проца пуст). ставлю бит, пишу - писать... потом читаю снова фьюзы - ничего не изменилось. зато во флеше!!!!!! мама родная! весь влешь забить мусором! в частности, если я не ошибаюсь, он просто в ячейки памяти записал их номера! cranky.gif

ирэйз, повторно - сейм шит.
читаю доку, ничего такого особенного на эту тему не нахожу...



сорри за два сообщения, но что-то я не могу редактировать предыдущее


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 6 2006, 12:30
Сообщение #7


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(junoSynthesizer @ Aug 6 2006, 13:57) *
включаю пони прог, читаю - всё пусто. (и флеш проца пуст). ставлю бит, пишу - писать... потом читаю снова фьюзы - ничего не изменилось. зато во флеше!!!!!! мама родная! весь влешь забить мусором! в частности, если я не ошибаюсь, он просто в ячейки памяти записал их номера! cranky.gif

Ничего не записывалось во флеш. Такой эффект будет если былы установлены lockbit's, запрещающие чтение флеша через ISP. В этом случае вместо данных флеша назад выплевывается байт адреса котороый отправлялся к МК.

Возможно пони-прог путает Fuses и Locks.. Попробуйте другим программатором.
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 13:16
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



нда, до этого за понипрогом не наблюдал ничего такого!

но при этом после того, как я делаю ирэйз (не ресет) он возвращает пустой флеш!

ща попробую другой пони прог чтоли


кто-то вообще программировал же фьюзы на атмеге16? не я же первый! как и чем вы это делали?


кста прочитал в даташите - в MCUCSR есть бит JTD - это типа дисэйбл ДЖТАГА... ставлю... ага, как бы ни так... smile3046.gif


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
SergSit
сообщение Aug 6 2006, 13:50
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Программирую ATmega16 именно пони прогом. В том числе и фьюзы. Ни каких проблем нет. Единственное ноль фьюза обозначает галочка, единица пусто.
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 14:12
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



взял сейчас 90s4434
всё работает замечательно! и фьюзы программит, и флеш! и работает всё!! чё ж мне так не прёт с атмегой16? angry.gif


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 6 2006, 14:56
Сообщение #11


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(junoSynthesizer @ Aug 6 2006, 18:12) *
взял сейчас 90s4434
всё работает замечательно! и фьюзы программит, и флеш! и работает всё!! чё ж мне так не прёт с атмегой16? angry.gif

Попробуйте прошить мегу16 с помощью http://avr.nikolaew.org/data/uniprof20jan6.zip


--------------------
Go to the top of the page
 
+Quote Post
junoSynthesizer
сообщение Aug 6 2006, 15:24
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



дело в том, что у меня стк200 программатор, там предумотрен шинный преобразователь, а если я правильно помню, то в этом программаторе (унипрог) нужен коннект на пины тупо через резисторы


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post
AVR
сообщение Aug 6 2006, 15:40
Сообщение #13


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(junoSynthesizer @ Aug 6 2006, 19:24) *
дело в том, что у меня стк200 программатор, там предумотрен шинный преобразователь, а если я правильно помню, то в этом программаторе (унипрог) нужен коннект на пины тупо через резисторы

Можно просто пять проводочков к LPT порту без резисторов (в справке описано как это можно сделать).


--------------------
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 6 2006, 16:10
Сообщение #14


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(junoSynthesizer @ Aug 6 2006, 17:12) *
взял сейчас 90s4434
всё работает замечательно! и фьюзы программит, и флеш! и работает всё!! чё ж мне так не прёт с атмегой16? angry.gif

Очень похоже на то, что программатор просто путает местами команды Write Lock и Write Fuse для Mega16.

Используйте AVReal. Судя по отзывам в этом форуме, AVReal самый лучший LPT программатор.

Сообщение отредактировал defunct - Aug 6 2006, 16:10
Go to the top of the page
 
+Quote Post
SergSit
сообщение Aug 6 2006, 17:58
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Ничего пони прог не путает для меги16. Программирую им мегу три месяца(в том числе и фьэы). Все нормально. И еще , насколько знаю, если установить защиту от прогрммирования по ISP то снять ее можно только паралельным программатором.

Сообщение отредактировал SergSit - Aug 6 2006, 18:03
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01491 секунд с 7
ELECTRONIX ©2004-2016