Здравствуйте, весь день голову ломаю...Нужно подружить PIC16F72 с Flash-памятью AT45DB161D. В порядке эксперимента для начала хочу прочитать регистр статуса и идентификатор памяти, но она ничего совсем не отвечает . вот код:
;========== Настройка МК ==============================================
SetMCU CALL Pause1s
CLRF STATUS
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS, RP0 ;Банк 1
MOVLW b'00000000' ;Значение для направления PORTA
MOVWF TRISA ;Настройка PORTA
MOVLW b'00000000' ;Значение для направления PORTB
MOVWF TRISB ;Настройка PORTB
MOVLW b'00010000' ;Значение для направления PORTC
MOVWF TRISC ;Настройка PORTC
;========== Инициализация SPI ===========================================
BCF STATUS, RP0 ;Банк 0
CLRF SSPSTAT
MOVLW b'00100000' ;Значение для настройки SPI
MOVWF SSPCON ;Настройка SPI
BSF PORTC, 6 ;Установка CS0
;========== Чтение идентификатора AT45DB161D
BCF PORTC, 6 ;Опускаем CS
MOVLW 0x9F ;Опкод для чтения идентификатора
CALL SPI_Trans ;Обмен SPI
MOVLW 0x00 ;Ждем ответ
CALL SPI_Trans
MOVF SPI_RX,0 ;Принятый байт в аккумулятор
MOVWF PORTB ;Вывод значения
BSF PORTC, 6 ;Завершение передачи
stop GOTO stop ;Бесконечный цикл
;========== Передача по SPI ======================================================================================================
SPI_Trans MOVWF SSPBUF ;Передача байта
CALL Pause1ms ;Ожидание завершения передачи
MOVF SSPBUF, 0 ;Копирование принятого байта
MOVWF SPI_RX
RETURN
В протеусе с SPI_Debugger-ом все работает, если подставить на место ответа какое-нибудь значение, оно выводится в портБ. Но в железе с подключенной памятью ничего не происходит. Выводы памяти RESET, WP соединены с питанием. Питание 3,3В. Помогите, пожалуйста)