Перейти к содержанию
    

я программу вобще не трогал....разве в ней надо что нить изменять? и еще вопрос относительно фузов: почему в ponyprog не изменяется SPIEN? ведь в AVR093 написано что там должен быть 0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я программу вобще не трогал....разве в ней надо что нить изменять? и еще вопрос относительно фузов: почему в ponyprog не изменяется SPIEN? ведь в AVR093 написано что там должен быть 0.

В AT90S1200 аппаратный стек, а в ATTiny2313 нет, его надо при старте устоновить используя следующие команды:

ldi tmp,low(RAMEND)

out SPL,tmp

Также надо проверить, что там твориться с прерываниями, хотя думаю можно сначало только выстовить стек

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там на программаторе стоит какой то на 10 МГц, но я не знаю как проверить подключен он или нет, просто программатор самодельный какой то, был сделан задолго до моего прихода на эту работу. я вот седня пробовал новый микроконтроллер программировать, сначала прошил фузы, а затем нажал write programm в итоге все нормально прошилось, появилось сообщение write sucsesful, но когда я вставил его на плату индикации то ни фига опять не показывало. может на плате индикации что нить надо сделать? ее разрабатывали для s1200, там еще схема сброса стоит, я уже пробовал и с ней и без нее, когда без нее я просто ресет через резистор на питание вешал, но все равно ничего не получаеца. что можно еще попробовать?

А на плате индикации какой кварц стоит? и стоит ли он там вообще? (может s1200, от RC генератора тактируется?) Фузы по AVR093 программируют тиню на работу с кварцем 3...8МГц .

 

я программу вобще не трогал....разве в ней надо что нить изменять?

См. посты Семёна.

 

и еще вопрос относительно фузов: почему в ponyprog не изменяется SPIEN? ведь в AVR093 написано что там должен быть 0.

Он (ноль) там и есть иначе понипрогом ничего не зашилось бы, поскольку понипрог программирует по SPI. А изменить его понипрогом нельзя, потому что SPIEN недоступен при последовательном программировании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на плате индикации нету кварца это точно, подскажите пожалуйста наиболее оптимальный вариант для этой ситуации? может если туда кварц поставить все заработает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дева Мария, пресвятая богородица, заступница. Вам который день

рассказывают. Во - первых. В самое начало программы вставьте конструкцию вида:

ldi R16,low(RAMEND) ; настройка стека

out SPL,R16

Во вторых, проверьте установку фузов.

Потом, прочтите атмеловский пдф под названием :"Replacing AT90S1200_by_ATtiny2313.pdf"

Если не можете сами отрихтовать программу, пришлите hex - файл. Я вам на шару эти 2 оператора добавлю.

В догонку можете прислать схему самого дивайса.

З.Ы. Сам с 1200 не работал, но в атмеловском пдф есть какая то неясная угроза насчёт отличия электрических параметров. Хотя, думаю, что это неважно.

Изменено пользователем Alex_Pol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я уже добавил настройку стэка, пробовал и с заводскими установками фузов и выставлял как в AVR093 написано, все равно нифига не работает, а s1200 все нормально работает. что можно еще попробовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я уже добавил настройку стэка, пробовал и с заводскими установками фузов и выставлял как в AVR093 написано, все равно нифига не работает, а s1200 все нормально работает. что можно еще попробовать?

Судя вот по этому:

на плате индикации нету кварца...

S1200 работала от RC генератора (1МГц). (В этой связи понятны манипуляции ваших предшественников с программатором Picprog- это они программировали фуз RCEN в S1200, который доступен только при параллельном программировании.) А значит заводские фузы тини 2313 трогать всетаки не нужно :).

Проанализируйте программу S1200 и выясните использовались ли прерывание от переполнения таймера 0 и прерывание от аналогового компаратора. У тини2313 вектора этих прерываний находятся по другим адресам. Если хотябы одно из этих прерываний задействовано, то ИМХО проще будет перекомпилировать проект под тиню. Кроме того у тини отличается доступ к ЕЕПРОМ, на это тоже надо обратить внимание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проанализируйте программу S1200 и выясните использовались ли прерывание от переполнения таймера 0 и прерывание от аналогового компаратора. У тини2313 вектора этих прерываний находятся по другим адресам. Если хотябы одно из этих прерываний задействовано, то ИМХО проще будет перекомпилировать проект под тиню. Кроме того у тини отличается доступ к ЕЕПРОМ, на это тоже надо обратить внимание.

Исходник в студию. Чтобы воду в ступе не толочь. :) З.Ы. Мне бы на асме.

Изменено пользователем Alex_Pol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходник в студию. Чтобы воду в ступе не толочь. :) З.Ы. Мне бы на асме.

как его выложить? может я вам на мыло лучше пришлю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получил. Дык она вообще не компилится. Компилятор матерно ругается вот в этом месте:

prt1:

ldi tmp1,$0f ;

cp T2L,tmp1 ;

breq p_rcorr ;

ldi tmp1,$27 ;

cpc T2H,tmp1 ;

brcc p_rcorr ;

cp T3H,tmp1 ;

brcc p_rcorr ;

ldi tmp1,1 ;

cp T4H,tmp1 ; Здесь!

brcc p_rcorr ;

ldi tmp1,4 ;

cp T4L,tmp1 ;

brcc p_rcorr ;

rjmp begin ;

И правильно делает. Т4Н не определён. Если эту программу как нить откомпилить, работать всё равно не будет. Так как там должно быть на самом деле?

Да, и ещё. Если вы ожидаете, что по прерыванию таймера у вас отработает процедура tim_0, то этого не случится никогда.

Ещё раз, внимательно AVR093 стр.2, 3; таблица 3.

Это я ещё до работы с EEPROM не добрался.

Изменено пользователем Alex_Pol

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зашил в тини2313 запрет на внешний сброс и он перестал распознаваться авреалом. Что можно предпринять. Программирую через "проводки".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зашил в тини2313 запрет на внешний сброс и он перестал распознаваться авреалом. Что можно предпринять. Программирую через "проводки".

Теперь поможет только паралельный програматор. :( Им перешить фузы и можно опять будет вернуться к последовательному програматору на "проводках". :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to Andrew_k5

При программировании по SPI вывод RESET используется для ввода в режим

программирования. Если Вы запретили внешний сброс, то как правильно советуют

в предыдущем посте - ищите параллельный программатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...