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

Обсуждаем контроллеры компании Atmel.
MeL$
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Вс апр 05, 2009 08:55:15

Сообщение MeL$ »

доброго времени суток
заинтересовался микроконтроллерами - решил поковыряться
начал с того, что
собрал схему программатора и бегущего огня из обучалки с той лишь разницей, что МК tiny2313
ессно прописал это в батнике, вместо 90s2313
при включении питания
постоянно горит третий светодиод, во время прошивки мигают первые три (шью под вин98, так как очень стааарый кампутер)
схемы проверены и перепроверены
коротышей нет, плохих контактов тоже
в процессе самой прошивки консоль выдает :


Chip not locked
Device erased
Device connected, TINY2313 detected
Fuses
OSCCAL = 62, 5D
CKDIV = 0
CKOUT = 1
SUT = 2
CKSEL = 4
DWEN = 1
EESAVE = 1
WDTON = 1
BODLEVEL = 7
RSTDISBL = 1
SELFPRGEN = 1
Programming CODE memory
done
Reset pin released
Adapter disabled

D:\AVR-projects\runfire>pause=null
Для продолжения нажмите любую клавишу . . .

я так понимаю, что процесс программирования проходит успешно, но
при сбросе и включении питания всё тоже самое : горит 3й светодиод
помогите plz
перепробовал несколько программок - не помогает
Аватара пользователя
Shuriks
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт дек 30, 2008 20:51:09
Откуда: Россия, г. Брянск
Контактная информация:

Сообщение Shuriks »

Попробуйте отпаять светодиоды ... которые припаяны к ножкам используемых в последовательном программировании (MOSI , MISO , SCK) ... И еще раз попробовать прошить ...
MeL$
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Вс апр 05, 2009 08:55:15

Сообщение MeL$ »

спасибо за совет - сегодня попробую прошить контроллер на отдельной плате
MeL$
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Вс апр 05, 2009 08:55:15

Сообщение MeL$ »

спаял отдельную плату для прошивки
тоесть теперь у меня получатся :
1)программатор bb из обучалки
2)небольшая платка для программирования контроллера - 4 резистора и кварц с кондерами + питание (из обучалки)
3) схема со светодиодами, Мк и кварцем с кондерами + питание (из обучалки)

Мк так же шьется
однако при переутановке МК в плату со светодиодами светодиоды всеравно не работают
пробовал 2 разные программы из обучалки:

господа ! может контроллер нерабочий ???
Аватара пользователя
Shuriks
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт дек 30, 2008 20:51:09
Откуда: Россия, г. Брянск
Контактная информация:

Сообщение Shuriks »

Контроллер новый ? Если новый , то 99% что он рабочий ..
Попробуйте эту прошивку засунуть в Proteus (я сам по возможности , сначала все прогоняю через него) . Или давайте прошивку - я сам засуну. А потом бум дальше думать :)

ЗЫ: Не рекомендую так подключать светодиоды , как подключены в обучалке . Более правильно анодом через резистор подтягивать к плюсу, а управлять нулем ... И поэтому МК у вас и не прошивался , сигналы через резистор и диоды шунтировались на общий.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

MeL$ писал(а):Мк так же шьется
однако при переутановке МК в плату со светодиодами светодиоды всеравно не работают
пробовал 2 разные программы из обучалки:

господа ! может контроллер нерабочий ???


Попробуйте прочитать МК и сравнить с тем что вы в него заливаете, если все ок, ищите лап на плате, проверьте подтяжку RESET к 5В, в этой ветке уже не однократно писалось.
Чем дальше, тем больше становлюсь занудой...
Изображение
DossJ
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вс апр 19, 2009 11:11:02

неправильные fuse-биты

Сообщение DossJ »

Всем Привет!
Помогите пожалуйста восстановить attiny2313 после неправильной установки фьюзов. Программатор Altera ByteBlaster c подключением XTAL1 не помогли. Фьюзы по незнанию были установлены так CKSEL0-3 1111 + SUT0-1 01. Как выставить фьюзы на этой микросхемы чтоб она тактовалась от кварца 12 MHz?

Зарание спасибо за ответы!
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Re: неправильные fuse-биты

Сообщение ikarab »

DossJ писал(а):Как выставить фьюзы на этой микросхемы чтоб она тактовалась от кварца 12 MHz?

фьюзы ATtiny2313 расписаны по-русски.
http://radiokot.ru/forum/viewtopic.php?p=204996#204996
Gozi
Родился
Сообщения: 5
Зарегистрирован: Пн фев 23, 2009 19:41:39
Контактная информация:

tiny2313

Сообщение Gozi »

Здраствуйте! у меня довольно странный вопрос. Собрал программатор stk200/300, не из обучалки, но похожий на него, тоже на 1533ап5. Монтаж правильный 100 процентов. Пробовал много раз зашить программу в tiny2313(программа отлажена, и тоже без ошибок). При этом понипрог пишет что отсутствует устройство или неизвестное усстройство, я уж думал, что что-то с самим мк, но один раз у меня получилось удачно прочитать фюзы и записать программу, после чего опять выдает ту же ошибку. вот и ломаю голову теперь - ведь я ничего не изменял, а записать программу получилось, а теперь опять не получается :))) :))) Не подскажите в чем может быть проблема? с питанием все впорядке. И, кстате мк без кварца работает, но в книге написано, что от этого проблем с прошивкой возникать не должно. Короче, есть у когонибудь идеи? :?
Telek
Встал на лапы
Сообщения: 115
Зарегистрирован: Пт май 23, 2008 23:59:37
Откуда: Москва

Сообщение Telek »

Пытаюсь разбудить tiny2313 после спячки(в режиме power-down) по INT0 или INT1. Если INT настроить на срабатывание по низкому уровню - просыпается. Все другие варианты(по любому изменению, нарастанию/убыания сигнала) не будят. Возможно ли будить по оставшимя вариантам срабатывания INT или только по низкому уровню?
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

Telek писал(а):Пытаюсь разбудить tiny2313 после спячки(в режиме power-down) по INT0 или INT1. Если INT настроить на срабатывание по низкому уровню - просыпается. Все другие варианты(по любому изменению, нарастанию/убыания сигнала) не будят. Возможно ли будить по оставшимя вариантам срабатывания INT или только по низкому уровню?

Только по низкому уровню, об этом даже в Даташите написано. Как вариант использовать PCINT7..0 - прерывания по изменению пина (пинов), они детектируются асинхронно и могут быть использованы для пробуждения контролллера. Правда одно но, все-же они детектируют не фронт(спад сигнала), а изменение состояния (1 или 0) на противоволожное.
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

smac писал(а): все-же они детектируют не фронт(спад сигнала), а изменение состояния (1 или 0) на противоволожное.

А в чем разница ?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

разница в том, что уровень необходимо удерживать какое-то время для пробуждения (значение не помню см. ДШ)
Чем дальше, тем больше становлюсь занудой...
Изображение
Telek
Встал на лапы
Сообщения: 115
Зарегистрирован: Пт май 23, 2008 23:59:37
Откуда: Москва

Сообщение Telek »

smac писал(а):Только по низкому уровню, об этом даже в Даташите написано.

Меня смутила вот эта табличка из датащита. Там написано только про INT0, что оно пробуждает по левелу. Из этого я понял, что INT1 должен будить во всех режимах.

Изображение
Вложения
ds.jpg
(30.59 КБ) 489 скачиваний
Аватара пользователя
Shuriks
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Вт дек 30, 2008 20:51:09
Откуда: Россия, г. Брянск
Контактная информация:

Сообщение Shuriks »

Для вывода микроконтроллера из режима PowerDown может использоваться любое прерывание работающее в асинхронном режиме, вот список прерываний:

1.Прерывания INT0 , INT1 - в режиме срабатывания по низкому уровню
2.Прерывание PCI0 - это прерывание по изменению любого сигнала PCINT7..0
3.Прерывание от канала USI

Следует помнить , что прерыванием работающем в асинхронном режиме можно вывести МК из любого режима сна , кроме IDLE.

Время пробуждения определяется теми же самыми FUSE-битами CKSEL , которые определяют задержку включения после системного сброса.
Аватара пользователя
ikarab
Опытный кот
Сообщения: 828
Зарегистрирован: Пн мар 16, 2009 21:40:57
Контактная информация:

Сообщение ikarab »

GP1 писал(а):разница в том, что уровень необходимо удерживать какое-то время для пробуждения (значение не помню см. ДШ)

А при чем тут тогда изменение уровня ???
smac
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

ikarab писал(а):А в чем разница ?

Вообще разница есть. Например, если у Вас прерывание настроено на фронт, то оно появится лишь при переходе из 0 в 1, а если на смену уровней, то оно может появиться как при переходе из 0 в 1, так и наоборот. Хотя, прерывание по переходу сигнала тоже можно настроить для детекции как фронта, так и спада. Плюс, как уже отметили, для того чтобы детектировать смену уровней потребуется некоторое время (насколько я понял более 3 циклов тактовой частоты контроллера), а детектирование фронта (спада) происходит за 1 цикл.
Telek
Встал на лапы
Сообщения: 115
Зарегистрирован: Пт май 23, 2008 23:59:37
Откуда: Москва

Сообщение Telek »

Разбираюсь с выставлением частоны на tiny2313. Мучает меня следующий вопрос:
Правильно ли я понял, что выставление включение делителя частоты на 8(CKDIV8) и данный код в CVAVR:

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

#pragma optsize-
CLKPR=0x80;
CLKPR=0x03;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif


это одно и тоже?
Т.е. либо писать данный код, либо выставлять фьюз CKDIV8 и не писать код, или писать код и выставлять фьюз - результат будет одинаковый(частота будет делиться на 8 )?

И еще вопрос: правильно ли я понял, что если включить делитель фьюзом, но написать

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

CLKPR=0x80;
CLKPR=0x00;

то частота в итоге делиться не будет?
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Сообщение Kaban »

Кто нибуть сталкивался с таким моментом, когда две однотипные микросхемы выполняют по разному одну и ту же программу?
Значит имеются две ATTini 2313V-10 разных годов выпуска, фьюзы выставлены одинаково, прошивка одна и таже(бегущие огни из книги Белова), но скорость мигания сильно различается. На одной просто лётает, на другой замедлена в 3-4 раза. В чём причина тормознутости одной тиньки? Может какой нибуть дефект самой микрухи?
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

возможно дело в fuse-bits, на одной из микрух может быть запрограммирован CKDIV8
Чем дальше, тем больше становлюсь занудой...
Изображение
Ответить

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