реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> DS89C420, Общение с флэшкой из резид. программы
gor_mike
сообщение Feb 27 2005, 20:04
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 27-02-05
Пользователь №: 2 911



Кто-нибудь пробовал что-либо заносить во флэшку микроконтроллера DS89C420 из своей резидентной программы? Делаю все, как в даташите, но результат - ничего не заносится. Если кто-то превзошел сие - прошу на мыло gor_mike@mail.ru. Впрочем, буду продолжать попытки - отступать некуда. Если получится - сообщу. Всем удачи.
Получается только писать. Читаю пока на общих основаниях, как область кода. Фишка в том, что надо в FDATA писать адрес и байт максимально бысто друг за другом, например, из DATA, а после записи в FDATA байта проверять бит BUSY не сразу, а после задержки в несколько (например, 10) тактов. Читать из FDATA пока не получается.
Go to the top of the page
 
+Quote Post
mishkofefer
сообщение May 26 2005, 14:27
Сообщение #2





Группа: Новичок
Сообщений: 2
Регистрация: 26-05-05
Пользователь №: 5 427



;************************************************************************
;* 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...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 04:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016