49F040 не дается...

Apr 20, 2004 1 Replies

Hi All,



Подключил я флэшку AT49F040 к AVR 8515 по стандартной схеме (как внешнюю SRAM), старшие три разряда к порту B подпаял. Но никак не получается записать во флэшку и похоже стереть тоже (проверить последнее сложнее, т.к. программатора для такой флэшки у меня нет). При чтении байта значение равно



0xFF, но опять же IMHO это ничего не значит.

char __low_level_init() { DDRD = 0xE3; // initialise port D as O/I, all OUT except PD2,PD3,PD4 DDRB = 0xFF; // initialise port B as Output PORTB = 0; PORTD = 0; // external SRAM enabled, rising edge of INT0 and INT1 MCUCR = ( (1<<SRE) | (1<<SRW) | (1<<ISC11) | (1<<ISC10) | (1<<ISC01) | (1<<ISC00) );



ACSR |= 1<<ACD; // shut down comparator to save power



OCR1AH = 0; OCR1AL = 3; TCCR1A = 0; // Counter1 disconnected from output pin OC1B TCCR1B = ( (1<<CTC1) | (1<<CS10) ); // CK



/* Return 1 to indicate that normal segment */ /* initialization should be performed. If */ /* normal segment initialization should not */ /* be performed, return 0. */ return 1; }



long g_counter; // счетчик обращений к внешней памяти // составной указатель к ячейке внешней памяти unsigned char *addr_low; unsigned char addr_high;



void WriteByte(unsigned char ch) { if ( g_counter == EXT_SRAM_SIZE ) return; g_counter++; if ( addr_low == EXT_SRAM_END ) { addr_low = EXT_SRAM_BASE; addr_high++; } else { addr_low++; } PORTB &= 0x1F; // предварительно выполняем команды для записи байта cImage[0x5555] = 0xAA; cImage[0x2AAA] = 0x55; cImage[0x5555] = 0xA0; PORTB |= (addr_high << 5); *addr_low = ch;



delay_us(50); }



З.Ы. Самое смешное и больное ТО, что я уже запарился искать причину неработоспособности всего этого. З.Ы.Ы. Флэшка КМОП, а вот регистр-защелка ТТЛ (Кр1533ИР22) - вопрос к спецам: может быть в этом косяк???


Tue Apr 20 2004 19:30, Roman Popok wrote to All:

Стыдно, товарищи, мне стыдно, за себя разумеется. Тема закрыта, а предыдущее сообщение лучше и вовсе не читать, чтобы меня не стыдить лишний раз.

Всем спасибо!!!

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required