|
При работе с mmc картой на AT89C51SND1 не производится запись на карту т.е выполняю cmd24 получаю нормальный ответ карты (готова к приему данных), потом конфигурирую линию данных на вывод блока 512 байт, загружаю fifo 16 байт и включаю передачу daten 1,0 но буфера данных не освобождаются а на линии данных стоит 1 (т.е не bysy) проверку освобождения буферов осуществляю без прерываний(маска включена).Можете подсказать что происходит? P.S. на карточкук пишется ff.
пример программы:
;-----------------------------------
write_sec_mmc:
MOV MMMSK,#11111111B
MOV MMCON2,#10000110B ;
MOV MMCON0,#00000011B ;MBLOCK=0,DFMT=1,RFMT,CRCDIS
MOV MMCON1,#01001100B ;BLEN=9(512),DATDIR=1 (host->card)
MOV MMDAT,#055H ;1
...
MOV MMDAT,#055H ;16
ORL MMCON1,#00000100B ;start data trans
ANL MMCON1,#11111011B
loop_wait_:
MOV A,MMINT
JB A_1,fifo_empty ;F2EI
JB A_0,fifo_empty ;F1EI
JB A_4,end_data_ ;EOFI
JMP loop_wait_
fifo_empty:
MOV MMDAT,#055H ;1
...
MOV MMDAT,#055H ;8
JMP loop_wait_
end_data_:
RET
;----------------------
C уважением Сега.
E-mail: info@telesys.ru