nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 05:32



Reply to topic  [ 31 posts ]  Go to page 1, 2, 3  Next
Конверсия софта с AT90S1200 на attiny2313 
Author Message
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
rw6hrm wrote:
работать явно не будет.

Почему такой вывод ?

Описание процесса из даташита на 2313 (doc8246.pdf)
Code:
Before writing data to EEPROM the target location must be erased. This can be done either in
the same operation or as part of a split operation. Writing to an unerased EEPROM location will
result in corrupted data.
To write an EEPROM memory location follow the procedure below:
• Poll the EEPROM Program Enable bit (EEPE) in EEPROM Control Register (EECR) to make sure no other EEPROM operations are in process. If set, wait to clear.
• Set mode of programming by writing EEPROM Programming Mode bits (EEPM0 and EEPM1) in EEPROM Control Register (EECR). Alternatively, data can be written in one operation or the write procedure can be split up in erase, only, and write, only.
• Write target address to EEPROM Address Registers (EEARH/EEARL).
• Write target data to EEPROM Data Register (EEDR).
• Enable write by setting EEPROM Master Program Enable (EEMPE) in EEPROM Control Register (EECR).
Within four clock cycles, start the write operation by setting the EEPROM
Program Enable bit (EEPE) in the EEPROM Control Register (EECR). During the write
operation, the CPU is halted for two clock cycles before executing the next instruction.
The EEPE bit remains set until the write operation has completed.
While the device is busy with programming, it is not possible to do any other EEPROM operations.


Пример из даташита:
в моей редакции :ebiggrin:
Code:
EEPROM_write:
; Wait for completion of previous write
    sbic 0x1C, 1
    rjmp EEPROM_write
; Set Programming mode
    ldi   r16, (0<<5)|(0<<4)
    out 0x1C, r16
; Set up address (r17) in address registers
    out 0x1E, r17
; Write data (r18) to data register
    out 0x1D, r18
; Write logical one to EEMPE
    sbi 0x1C, 2
; Start eeprom write by setting EEPE
    sbi 0x1C, 1



Теперь ищем разницу :esmile:

1. Нужно установить режим программирования
ldi r16, (0<<EEPM1)|(0<<EEPM0)
out 0x1C, r16


ВСЕ !!! :rotate:


17 Jul 2020 14:41
Profile
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
И шо сказали ?
Ошибка на этапе компиляции или компилится, но не работает?


21 Jul 2020 14:29
Profile
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
Замените этот кусок
Code:
EEPROM_write:
; Wait for completion of previous write
    sbic 0x1C, 1
    rjmp EEPROM_write


на тупую 10 mS задержку.


22 Jul 2020 01:33
Profile
Senior
User avatar

Joined: 21 Aug 2018 07:39
Posts: 164
Location: Кемеровская обл.
Reply with quote
rw6hrm wrote:
компилится норм, но в работе, при нажатии на кнопки (обращение к п/п записи), чип улетает в небеса, выдавая произвольное число на индикацию, и виснет...

Похоже на срыв стека. Можете выложить исправленный вами код?


22 Jul 2020 01:43
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
А зачем флагу приравнивать регистр?


22 Jul 2020 11:29
Profile WWW
Senior
User avatar

Joined: 21 Aug 2018 07:39
Posts: 164
Location: Кемеровская обл.
Reply with quote
dvarkin прав - "TOV0" это флаг и он уже в инклуде прописан и компилятор про это пишет.
.def TOV0 =r4; - это что то вроде команды автозамены
в тексте где встретится "TOV0" компилятор подставит "r4", что не верно

для установки флага нужно использовать команду
Code:
sbi TIFR,TOV0

интересно так проканает?
Code:
.def set_TOV0 = sbi TIFR,TOV0
не уверен что стоит устанавливать бит без таблицы прерываний
у вас в коде встречается такая конструкция
Code:
mov TOV0,r18 // неверно
out 0x38,TOV0 // верно

у вас спортивный интерес (хотите добить сами прогу на асме) или нужно просто рабочую программу?


22 Jul 2020 17:06
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
Очень сильно сомневаюсь, что дело (было) в ненадёжности ATTiny.
И разве поведение с пальцем не означает недостаток pull up? КМОП входы, как никак.

Кстати, некоторое время уже посматриваю на частотомер с ВЕ31 и ИВ-28. (ред.: не ИВ-18, хотя на нём тоже какой-то похожий есть).


Last edited by dvarkin on 23 Jul 2020 00:00, edited 1 time in total.



22 Jul 2020 23:04
Profile WWW
Senior
User avatar

Joined: 21 Aug 2018 07:39
Posts: 164
Location: Кемеровская обл.
Reply with quote
rw6hrm wrote:
Просто пролетающий мимо палец (ёмкость) уже даёт сбой.
Входа подтянуть резюками 5-10кОм.


22 Jul 2020 23:10
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
dvarkin wrote:
Кстати, некоторое время уже посматриваю на частотомер с ВЕ31 и ИВ-18.

Из "Радиолюбителя"? Есть прошивка ПЗУ?


22 Jul 2020 23:19
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
Icer wrote:
Входа подтянуть резюками 5-10кОм.
Или хотя бы проверить, включены ли internal pull up.

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


22 Jul 2020 23:41
Profile WWW
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
rw6hrm wrote:
придётся перейти на PIC, они гораздо стабильнее в работе в жёстких условиях.

:exclaim: :exclaim: :exclaim:
СТОПУДОВО
:dj:


24 Jul 2020 06:04
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
Konstantin18 wrote:
rw6hrm wrote:
придётся перейти на PIC, они гораздо стабильнее в работе в жёстких условиях.

:exclaim: :exclaim: :exclaim:
СТОПУДОВО
:dj:

:o :o :o
ПОЯСНИТЕ
:neutral:


24 Jul 2020 06:21
Profile WWW
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
Многолетний опыт эксплуатации готовых конструкций (собственной разработки, если что :esmile: )
показывает гораздо более высокую надежность и помехоустойчивость MICROCHIP в сравнении с ATMEL.
Сравнивались 8 битные контроллеры.
10 миллиметровая искра на расстоянии 10 см. от контроллера гарантировано "сбивает с толку" 8ю МЕГУ, а 16й ПИК работает без проблем.


24 Jul 2020 06:32
Profile
Fanat

Joined: 05 Jul 2020 14:08
Posts: 87
Location: Ижевск
Reply with quote
Quote:
Сравнивались 8 битные контроллеры.
Конечно же хочется узнать подробные условия испытаний. "Сбивает с толку" может означать частый неконтролируемый сброс? Был ли активирован /MCLR на ПИКе?
В любом случае, проблемы ТС вряд ли в надёжности.


24 Jul 2020 06:58
Profile WWW
Maniac

Joined: 15 Jan 2019 15:48
Posts: 326
Location: Украина, Луганская обл.
Reply with quote
dvarkin wrote:
Quote:
Сравнивались 8 битные контроллеры.
Конечно же хочется узнать подробные условия испытаний.

Извините, подробно описывать лениво. Методика испытаний не была строго научной. :ebiggrin:

dvarkin wrote:
"Сбивает с толку" может означать частый неконтролируемый сброс? Был ли активирован /MCLR на ПИКе?

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

dvarkin wrote:
В любом случае, проблемы ТС вряд ли в надёжности.

Полностью согласен.


24 Jul 2020 07:28
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 31 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.