Среда, 09.07.2025, 16:33


Сборник радио схем



Простой экзаменатор    |    Измерительный мост    |    Устройство индикации дней недели    |    Реле времени для фотопечати    |    Питание ламп дневного света    |    Электрическое световое табло    |    Устройство сигнализации    |    Объемная цветомузыкальная установка    |    Карманный радиоприемник    |    Модернизация канала звукового сопровождения.





Приветствую Вас Гость | RSS
Главная | Регистрация | Вход


Магазин электротехники

Меню сайта




Последнее на форуме



Статистика


PR-CY.ru
Счетчик PR-CY.Rank


Онлайн всего: 3
Гостей: 3
Пользователей: 0


Главная » » SST89C58 электронных схем и кода пластины
01:51

SST89C58 электронных схем и кода пластины




Референс-дизайн для чип SST ATA-дисков в 8051 микроконтроллер

Указания по применению

Аннотация: Данное приложение к сведению вводит оборудования и прошивки референс-дизайна для SST ATA-Disk Chip SST58SD/LDxxx в SST FlashFlex51 SST89C54/58 (8051 совместимый микроконтроллер).

1.Hardware соединения:

Пожалуйста, ссылки на прилагается схема для подключения оборудования.

SST ATA-Disk Chip (ADC) SST58SD/LDxxx поддерживает только один режим работы, т.е. ATA / IDE режиме, все управляющие сигналы связаны на основе Таблицы 2-8, стр. 14 на данные После выполнили множество функций команда, включающая 8.. - немного передачи данных, все выше 8 бит шины данных (D8-D15) являются не волнует, и не может быть связь. RESET # (PIN1) не является обязательным, он может быть привязан к Vcc, если не используется. После включения питания, АЦП будет автоматически сбросить внутренне, он не нуждается во внешних вход сброса. Но это хорошая практика, чтобы связаться RESET # к одному из портов ввода / вывода, таких как P1.4, в случае АЦП из-под контроля для любой неизвестным причинам, принимающей MCU имеет возможность сброса АЦП. DASP # подключен к светодиодные через резистор к Vcc, LED обеспечивает пользователю видимость внутренней операции АЦП. Когда ADC активно занят на операции, СИД будет дальше. Просьба отметить, что мастер / раб выбор на выводе CSEL не вступят в силу до следующего сброса, другими словами, если вы измените перемычки мастер / ведомый выбор, вы должны сбросить АЦП один раз.

Ifyour применение системы расширяет любой другой ввода / вывода или памяти данных, измените эталонного дизайна. (1) изменение CS3FX # к Vcc, (2) соедините выход адрес декодер CS1FX # Когда оба CS1FX # и # CS3FX высоки , АЦП-де-отобраны и быть режиме ожидания, все шины данных в высоком-Z. При CS1FX # низка, АЦП выбран и быть оперативным. Так CS1FX # действует как Chip Select (/ CS) в наиболее распространенных периферийных устройств.

2.Firmware Руководство по проектированию:

Важно знать, что ATA / IDE стандарт не разрешают доступ только один байт в то время, чтобы ее носителей, таких как жесткий диск или АЦП, программа должна читать или писать данные по секторам, 1 сектор 512 байт данных, системный инженер дизайн должны разработать буфер данных для поддержки произвольного доступа к АЦП. эталонного дизайна используется вторичный блок (4Kbytes х 8bit) на кристалле вспышки в SST89C54/58 в качестве буфера данных.

После включения питания или внешнего сброса, АЦП по умолчанию для 16-битных операции. Как SST89C54/58 является 8-разрядный микроконтроллер, программа должна позволить 8-битные операции Установить Особенности командной, пожалуйста, ссылку на страницу 32 на данные.

Если АЦП установлен как Slave, кроме Мастер, вам необходимо изменить Бит 4 в Драйв / Глава Регистрация равным 1 при написании Команда ADC, см. стр. 17 на данные.

После включения питания или сброса, ADC будет готова для чтения / записи операции после 200 мс (типовое), 500 мс (максимум), см. стр. 1 под время запуска в особенности на данные.

3.Conclusion:

Легко изменить это референс-дизайна на любой другой встроенные контроллеры тех пор, пока вы будете следовать выше рекомендации по проектированию.

4.Schematic диаграмме:

5,8051 Исходный код:

; Все команды, поддерживаемые АЦП.

ChkPwrEqu0E5h; 98H

DiagnosticEqu90h

FormatEqu50h

IdentifyEqu0ECh

IdleEqu0E3h; 97h

IdleImmEqu0E1h; 95h

InitializeEqu91h

ReadBufEqu0E4h

ReadLongEqu22h; 23h

ReadMultiEqu0C4h

ReadSctrEqu20h; 21h

ReadVerifyEqu40h; 41h

RecalibrateEqu10h; 1xh

SeekEqu70h; 7xh

SetFeatureEqu0EFh

SetMultiEqu0C6h

SleepEqu0E6h; 99h

StandbyEqu0E2h; 96 ч

StandbyImmEqu0E0h; 94h

WriteBufEqu0E8h

WriteLongEqu32h; 33H

WriteMultiEqu0C5h

WriteSctrEqu30h; 31h

WriteVerifyEqu3Ch

;================================================= ============

; АЦП Драйв набор регистров определения

Data_RegEqu8000h; регистр данных для чтения / записи

Error_RegEqu8001h; регистр ошибок, только чтение

FeaturesEqu8001h, особенности Регистрация, писать только

Sectr_CntEqu8002h; сектор регистра счетчика (R / W)

Sectr_NoEqu8003h; Сектор Число реестра или LBA0: 7 (R / W)

Cylinder_LowEqu8004h; цилиндра низкого регистра или LBA8: 15 (R / W)

Cylinder_HiEqu8005h; цилиндра высокого регистра или LBA16: 23 (R / W)

Drv_HeadEqu8006h; Регистрация Драйв Head (R / W)

StatusEqu8007h; регистра статуса, только чтение

CommandEqu8007h; регистр команд, писать только

Alt_StatusEqu4006h; Альтернативные регистра статуса, только для чтения,

; Чтение Alt_Status не ясно до прерывания флаг не используется в этой демонстрации..

Device_CtrlEqu4006h; устройство регистра управления, написать только не использовали в этой демонстрации..

Drive_AddrsEqu4007h; Драйв Адрес регистра, только для чтения не используется в этой демонстрации..

;================================================= ================

; SST FlashFlex51 микроконтроллер связанных определения SFR's

SFCFDATA0B1H; SuperFlash конфигурации

SFCMDATA0B2H; SuperFlash Командная

SFALDATA0B3H; SuperFlash Адрес Низкая

SFAHDATA0B4H; SuperFlash Адрес высокого

SFDTDATA0B5H; SuperFlash данных

SFSTDATA0B6H; SuperFlash Статус

WDTCDATA0C0H; управления сторожевого таймера

WDTDDATA86H; данных сторожевого таймера / Reload

;================================================= ================

; Constantdefinition

FlashAddrsEqu0F800h; начальный адрес для хранения данных от АЦП

;===========================================

org0000h

ljmpstart

org0100h

Начало: clrP1.4; сброс АЦП

NOP

NOP

NOP

NOP

setbP1.4

movr4, № 5; задержки 0,5 секунды

loadr5: movr5, # 200; задержки 0,1 секунды

loadr6: movr6, # 250; задержки 0,5 мс для 12 МГц кристалла

djnzr6, $

djnzr5, loadr6

djnzr4, loadr5

acallEnable8bit, в первую очередь, позволит 8 бит операции!

;========================================

orlSFCF, # 40h; IAPEN = 1

movSFAH, # высокой (FlashAddrs)

movSFAL, # низкой (FlashAddrs)

MOVB, № 8; стереть 8 секторов (512 байт)

;========================================

Стереть: movSFCM, # 0Bh; сектора стереть!

acallDone?

мова, SFAL

Адда, # 64; 64 байт / сектор в блоке 1 из SST89C54/58

movSFAL,

мова, SFAH

addca, # 0

movSFAH,

djnzB, стереть

anlSFCF, # 0BFh; отключить ИПФ

;========================================

Главная: ACALL Write_Sctr

ACALL Read_Sctr

ACALL Сравнить

jbF0, неудача

clrP1.4; указывает успешных операций.

setbP1.5

командой SJMP $

провал: clrP1.5; флаги не удалось comaprison.

setbP1.4

командой SJMP $

;========================================

Функция: acallBusy

movdptr, # Sectr_Cnt

мова, R2, R2 является число секторов

MOVX @ дптр,

movdptr, # Sectr_No

мова, R3, R3 содержит LBA0: 7

MOVX @ дптр,

movdptr, # Cylinder_Low

мова, R4, R4 содержит LBA8: 15

MOVX @ дптр,

movdptr, # Cylinder_Hi

мова, R5, R5 содержит LBA16: 23

MOVX @ дптр,

movdptr, # Drv_Head

мова, R6, R6 содержит LBA24: 27

anla, # 00001111b

Орла, # 11100000b; Бит 4 = 0 как мастер-p.htm "целевых =" _blank "название =" MASTER источников данных и PDF "> MASTER, 1, как раб; Бит 6 = 1, включить LBA.

MOVX @ дптр,

movdptr, # команда

мова, R7, R7 является кодом команды.

MOVX @ дптр,

RET

;========================================

Занят: movdptr, # статус

MOVX, @ дптр

jbacc.7, Занят

jbacc.0, ошибки

; Jnbacc.6, Занят

КМРВ; АКК = 0 в случае успешного

clrC; C = 0, АЦП не беспокоить (= 0) и не ошибка (ERR = 0)

RET; и готова к приему команд (RDY = 1)

ошибки: movdptr, # Error_Reg

MOVX, @ дптр

множества В С, С = 1 флаги коды ошибок, содержащихся в АКК зарегистрироваться

RET

;========================================

WaitDRQ: movdptr, # статус

MOVX, @ дптр

jbacc.7, WaitDRQ; Если занят = 1, то WaitDRQ

jnbacc.3, WaitDRQ, если DRQ = 0, то WaitDRQ

jbacc.0, ошибки, если ERR = 1, то ошибки чтения кода и установлен флаг C

; Jnbacc.6, WaitDRQ

КМРВ

clrC; C = 0, АЦП занят = 0, DRQ = 1, ERR = 0.

RET

;========================================

Готово: Мова, SFST

jbacc.2, делать?

RET

;========================================

Enable8bit: ACALL Занят

movdptr, # Особенности

мова, # 01h; позволит 8 бит передачи данных

MOVX @ дптр,

movdptr, # Drv_Head

мова, # 11100000b; Бит 4 = 0 как мастер-p.htm "целевых =" _blank "название =" MASTER источников данных и PDF "> MASTER, 1, как раб; Бит 6 = 1, включить LBA

MOVX @ дптр,

movdptr, # команда

мова, # SetFeature; # 0EFh

MOVX @ дптр,

RET

;========================================

Write_Sctr: movR2, # 1, написать 1 сектор на время.

movR3, # 0Ah; пусть LBA быть 000000Ah

movR4, # 0

movR5, # 0

movR6, # 0

movR7, # WriteSctr

acallFunction

acallWaitDRQ

acallWrite512

RET

;========================================

Write512: movR0, # высокой (сообщение); получить высшее адрес сообщения

movR1, # низкой (сообщение); получить ниже адрес сообщения

movR7, № 2; 512 байт = 2 * 256

MOVB, # 0

пишут: movdph, R0; получить адрес

movdpl, R1

КМРВ

movca, @ дптр; получить данные в сообщении

incdptr; указывать на следующий байт в сообщении

movR0, DPH, сохранять адреса

movR1, DPL

movDPTR, # Data_Reg; пункт АЦП

MOVX @ дптр,; писать 1 байт данных в АЦП

djnzB, писать

djnzR7, писать, писать все 512 байт до АЦП

RET

;========================================

Read_Sctr: movR2, № 1; читать 1 сектор на время.

movR3, # 0Ah; пусть LBA быть 000000Ah

movR4, # 0

movR5, # 0

movR6, # 0

movR7, # ReadSctr

acallFunction

acallWaitDRQ

acallRead512

RET

;========================================

; Прочитано 1 сектор размером 512 байт данных и записи в Flash на чип SST FlashFlex51 MCU

Read512: movR7, № 2; 512 байт = 2 * 256

MOVB, # 0

movdptr, # Data_Reg

movSFAH, # высокой (FlashAddrs)

movSFAL, # низкой (FlashAddrs)

orlSFCF, # 40h; множество IAPEN = 1 для включения ИПФ

следующим образом: movxa, @ дптр; читать 1 байт данных от АЦП

movSFDT,; программы в на-чипе Flash

movSFCM, # 0Eh; команду вопрос Байт-программы

acallDone;? ждать пока не сделано

мова, SFAL; настроить адрес Flash

Адда, № 1

movSFAL,

мова, SFAH

addca, # 0

movSFAH,

djnzB, читать

djnzR7, читать

anlSFCF, # 0BFh; отключить ИПФ

RET

;========================================

Сравните: movdptr, # сообщения; указывают на сообщение

movSFAH, # высокой (FlashAddrs)

movSFAL, # низкой (FlashAddrs)

orlSFCF, # 40h; IAPEN = 1

clrF0

movR7, # 2

MOVB, # 0

проверить: КМРВ

movca, @ дптр; getoriginal данных в сообщении

incdptr

movSFCM, # 0Ch; вопрос BYTE-VERIFY команды

NOP

xrla, SFDT; SFDT содержит datain вспышки, эти данные поступают от АЦП

jzskip

setbF0; множество F0 флаг (PSW.5), если любое несоответствие.

показывать: мова, SFAL; увеличение адрес Flash

Адда, № 1

movSFAL,

мова, SFAH

addca, # 0

movSFAH,

djnzB, проверить

djnzR7, проверить

anlSFCF, # 0BFh; отключить ИПФ

RET

;================================================= =======================

сообщение: БД "Это демонстрационная программа демонстрирует, как легко проектировать"

БД "SST ATA-Disk Chip в SST FlashFlex51 встроенных микроконтроллеров."

БД "После того как вы понимаете, как использовать основные WriteSector и ReadSector"

БД "функции, то это легко попробовать любые другие."

БД "аппаратные связи между АЦП и MCU также очень просто",

БД ", как и вы расширить любого ввода / вывода или памяти данных в ваших приложениях системы".

БД "После включения питания, АЦП по умолчанию для 16-битных операции, как и все EIDE"

БД "стандартов, прошивке нужно позволить 8 бит до операции"

БД "дальнейшие записи / чтения."

конец
Просмотров: 484 | Добавил: Jan_Klod | Рейтинг: 0.0/0

[31.03.2011]
Схема регулятор времени диаграммы (0)
[23.01.2011]
Регулятор из трех этапов RTD (0)
[22.01.2011]
Handy Bright Light (0)
[15.02.2011]
переключения дизайн питания (1): РСС переключения принцип питания Подробная (0)
[22.01.2011]
807 и 1625 Клапаны (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Калькуляторы



Популярное

часы на микросхемах



Форма входа
E-mail:
Пароль:



У нас нашли
Загрузка...


Copyright MyCorp © 2025