Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DS89C420
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
gor_mike
Кто-нибудь пробовал что-либо заносить во флэшку микроконтроллера DS89C420 из своей резидентной программы? Делаю все, как в даташите, но результат - ничего не заносится. Если кто-то превзошел сие - прошу на мыло gor_mike@mail.ru. Впрочем, буду продолжать попытки - отступать некуда. Если получится - сообщу. Всем удачи.
Получается только писать. Читаю пока на общих основаниях, как область кода. Фишка в том, что надо в FDATA писать адрес и байт максимально бысто друг за другом, например, из DATA, а после записи в FDATA байта проверять бит BUSY не сразу, а после задержки в несколько (например, 10) тактов. Читать из FDATA пока не получается.
mishkofefer
;************************************************************************
;* Declarations *
;************************************************************************

FCNTL EQU 0D5h
FDATA EQU 0D6h
TA EQU 0C7h
FBUSY EQU 10000000b

RD_MODE EQU 0000b ; read mode (default)
WR_BYTE EQU 1011b ; write upper program memory bank command
ERASE_UP EQU 1110b ; erase upper program memory bank command
SYS_RES EQU 1111b ; system reset command




;************************************************************************

IAP_WRITE:
MOV TA, #0AAh
MOV TA, #055h
MOV FCNTL, #WR_BYTE
MOV FDATA, DPH
MOV FDATA, DPL
MOV FDATA, A

MOV R1, #10H
DJNZ R1, $
F_WAIT:
MOV ACC, FCNTL ;wait for FBUSY=1
JNB ACC.7, F_WAIT
MOV TA, #0AAh
MOV TA, #055h
MOV FCNTL, #RD_MODE ;set read mode
AJMP HALT
;************************************************************************

IAP_ERASE:
MOV TA,#0AAh
MOV TA,#055h
MOV FCNTL,#ERASE_UP
MOV R1, #10H
DJNZ R1, $

F_WAITE:
MOV ACC, FCNTL
JNB ACC.7, F_WAITE

MOV TA,#0AAh
MOV TA,#055h
MOV FCNTL,#RD_MODE
AJMP HALT


It works...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.