ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
Valera_112
Родился
Сообщения: 18
Зарегистрирован: Чт фев 19, 2009 20:55:10

Сообщение Valera_112 »

Я понял в чем проблема. Вопрос теперь в другом, как уменьшить частоту сингранизации при програмировании в CVAVR по интерфейсу SPI?
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Сообщение nictrace »

может, попробовать uniprof?
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

2Кирилл
Подключать можно к любому порту.
Обработка примерно такая(кнопка на PD0):

Код: Выделить всё

reset:
        ldi Tmp, RamEnd   ; инициализация стэка
        out SPL, Tmp
        cbi PORTD, 0 ; подтяжка откл
        cbi DDRD, 0  ; линия на ввод
forever:
        sbiс PIND, 0  ; пропустить следующую команду если PD0 сброшен
        rcall lable      ; перейти, если PD0 установлен
rjmp forever

lable:
        nop
ret
Елисей
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт мар 05, 2009 23:21:53

Сообщение Елисей »

доброго времени суток! имеется такая проблема.- ATtiny2313 успешно распознается и шьется прогой AvrOsp_II_400. только вот при загрузке ЛЮБОЙ прошивки он на 19 ногу выдает 5 вольт а на остальные 3 вольта. программки для него брал и из обучалки где просто некоторые светодиоды засветить и свою писал, все одна и та же реакция. кварц я не ставил, но и заводские фьюзы не менял, т.е. по идее он должен работать от внутреннего генератора. как быть?
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

2Елисей
Код прошивки выложите.
Елисей
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт мар 05, 2009 23:21:53

Сообщение Елисей »

прошивка самая любая, например вот эта

Код: Выделить всё

.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler\Appnotes\tn2313def.inc"
.def     Temp=R16
.def     Temp1=R17
.def     Temp2=R18
.def     Temp3=R19
.def     Temp4=R20
.cseg
.org 0
ldi Temp, 0b11111111  ;присвоение константы
out DDRB,Temp         ;вывод
;выводим число 11010010 на светодиоды
ldi Temp,0b11010010  ;присвоение константы
out PortB,Temp         ;вывод на индикацию


та что была с самого начала зашита- в приложении. (должна опрашивать датчики и включать светодиоды)
Вложения
submarine.asm
(974 байт) 358 скачиваний
Елисей
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт мар 05, 2009 23:21:53

Сообщение Елисей »

вот это как называется? утро вечера мудреннее? я его забыл на ночь из розетки вытащить так он раскачался, щас заново прошил- вроде работает. только почемуто не в том порядке (заказываю 11010010 а выдает 01001011 если считать с ножки PB0).да еще и не прямым сигналом а на 500 килогерцовой частоте и довольно хитрой формы(может потому что я его от нокиевского зарядника питаю?). можно это какнибудь исправить? а та прога которую я в приложении к предыдущему сообщению выложил все таки не работает. на 19 ноге есть сигнал на остальных нету. независимо от состояния входов. в симуляторе AVR studio все работает на ура
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Я бы сделал вот так:

Код: Выделить всё

.include "C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler\Appnotes\tn2313def.inc" 
.def     Temp=R16
.def     Temp1=R17
.def     Temp2=R18
.def     Temp3=R19
.def     Temp4=R20
.cseg
.org 0
;reset:
   rjmp start
; Начальная инициализация
Start:
ldi Temp, 0b11111111  ;присвоение константы
out DDRB,Temp         ;вывод
;выводим число 11010010 на светодиоды
ldi Temp,0b11010010  ;присвоение константы
out PortB,Temp         ;вывод на индикацию
; Бесконечный цикл.
; Если его не будет, то очень сложно предположить, что контроллер
; будет делать дальше
Forever:
nop
rjmp Forever
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

По поводу программы из приложения:

Код: Выделить всё

breq   del1
.......................
del1: 
ldi Temp2,0b0001000
out Portb,Temp2
ret;??!!


ret-это команда возвращения из подпрограммы.
Подпрограмма вызывается командами типа call, при выполнении которых содержимое счётчика программ (PC) помещается в стэк(который у Вас,к стати, даже не инициализирован).
Команда ret извлекает PC из стэка, и возвращает программу в соответствующее место.
Как думаете, в Вашем случае что и откуда извлекает ret?

Инициализация стэка:

Код: Выделить всё

ldi tmp, LOW(RAMEND); младший байт адреса конца RAM в tmp
out SPL, tmp               ; tmp в младший байт указателя стэка

; если RAM>256 байт, то надо инициализировать SPH

ldi tmp, HIGH(RAMEND); старший байт адреса конца RAM в tmp
out SPH, tmp               ; tmp в старший байт указателя стэка


ЗЫ: Срочно в обучалку.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Такого рода проблема:
Прошил тини2313 простенько прошивочкой аля бегущие огоньки:

Код: Выделить всё

      PORTB.0=1; 
      delay_ms(200);
     
      PORTB.1=1;
      delay_ms(200);
     
      PORTB.2=1;
      delay_ms(200);
      ...
     
      //начинаем потихоньку тухнуть
     
      PORTB.0=0;
      delay_ms(200);
      PORTB.1=0;
      delay_ms(200);
      PORTB.2=0;
      delay_ms(200);
      ...     

И что было замечено... Первый N-циклов всё хорошо работает. Но после начинается сбой: приблизительно раз в 2-3 цикла, не доходя до конца затухания, диоды тухнут и снова начинают зажигаться. Пройдя 2-3 раза - снова та же история.
Частота выставлена на внутрений генератор 8МГц. Fuse SUT0..1 00.
Побывал и на 4-х МГц ... Так же.
Программно (в плане прошивки) нет ошибок.
При моделировании в Протеусе - предупреждение. Что-то не так со сторожевым таймером. Но продолжает работать.
Кто что подскажет?
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Сообщение nictrace »

DataLife писал(а):При моделировании в Протеусе - предупреждение. Что-то не так со сторожевым таймером.


Думаю, он просто срабатывает :)
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Есть способы его отключить? Так как этот "эффект" мне уж никак не нужен.
На странице 38 Даташита написано что-то про него... Но я толком мне понял, как его отключить... Да и на 42-й есть программный код ...
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Вот так я отключал в Atmega16. Но протеус продолжает ругаться, такой вот он дурак:) собрал все в железе и никаких проблем.
Вложения
wh.jpeg
ст.42 datasheet
(3.43 КБ) 304 скачивания
Я не Сашок!!!
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Вроде бы как вылечено строчками:

Код: Выделить всё

#asm ("wdr")
/* Write logical one to WDTOE and WDE */
WDTCR |= 0x18;      //(1<<WDTOE) | (1<<WDE);
/* Turn off WDT */
WDTCR = 0x00;


5 минут полёт нормальный :)))
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

AT90S2313/ATTiny2313

Сообщение kret_a_v »

AT90S2313/ATTiny2313

памагите !!!!
Гуру помогите новичку
сделал стк200/300
а как к нему присобачить AT90S2313/ATTiny2313 ????

за ранее мяу
Аватара пользователя
Aheir
Модератор
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург
Контактная информация:

Сообщение Aheir »

У программатора есть выходы MOSI, MISO, Reset и т.д. - их нужно соединить с соответствующими выводами контроллера. Ну и питание не забыть подать на программатор и МК. И вперед. :)
Оптимизм х (Опыт + Знания) = const
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: AT90S2313/ATTiny2313

Сообщение DataLife »

kret_a_v писал(а):помогите новичку
сделал стк200/300
а как к нему присобачить AT90S2313/ATTiny2313 ????

за ранее мяу

Скажем проще...
Если собирал по ЭТОЙ статье, что там есть приатаченый архив со схемой программатора и плат расширения. Одна из плат - плата для тини2313/90s2313. Делаешь, подключаешь, горя не знаешь :)
Только одно НО! Если будешь запускать от внешнего генератора (кварц), то нужно убрать перемычку от 5-й ноги к порту х2.
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

DataLife - сори

спасибо уже разобрался

а как без кварца будет ?
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

я набрел пока на этот
Аватара пользователя
kret_a_v
Мучитель микросхем
Сообщения: 415
Зарегистрирован: Пн фев 02, 2009 15:00:33

Сообщение kret_a_v »

есть печатка без кварца вроде
а открыть не могу
Ответить

Вернуться в «AVR»