Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

ATMega128 + AT25F4096

Непрочитано 11.04.2011, 12:48  
forastr
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
forastr на пути к лучшему
По умолчанию ATMega128 + AT25F4096

Добрый день.Пытаюсь записать байт данных в память AT25F4096.Использую CodeVisionAVR+proteus. Вот код:

Код:
#include ‹mega128.h›
#define DDR_SPI DDRB
#define DD_MOSI 2
#define DD_MISO 3
#define DD_SCK 1
#define DD_CS 0
#define DF_CHIP_SELECT 0x01


unsigned int addr=0;
unsigned char temp = 0xC0;

                void main(void){
                     
                                DDR_SPI = (1‹‹DD_MOSI)|(1‹‹DD_SCK)|(1‹‹DD_CS);
                                SPCR = (1‹‹SPE)|(1‹‹MSTR);
                                
                                PORTB &= ~DF_CHIP_SELECT;   //опускаем чип селект
                                SPDR = 0x06;  //WREN
                                while (!(SPSR & temp));
                                PORTB |= DF_CHIP_SELECT;   //поднимаем чип селект
                                
                                
                                
                                PORTB &= ~DF_CHIP_SELECT;
                                SPDR = 0x02;  //PROGRAM
                                while (!(SPSR & temp));
                                
                                  
                                
                                SPDR = addr››16;       //толкаем 3 байта адреса
                                while (!(SPSR & temp));
                                SPDR = addr››8;       
                                while (!(SPSR & temp));
                                SPDR = addr››0;       
                                while (!(SPSR & temp));  
                                
                                
                                
                                SPDR = 0xAA;             //один байт данных                   
                                while (!(SPSR & temp));
                                 
                                
                                PORTB |= DF_CHIP_SELECT;      //поднимаем чип селект
                                
                                                                
                    }
Компилируется без ошибок. Proteus тоже не выдает ошибок, вот только смотрю в память флэши , а там ничего не меняется.
Помогите разобраться,пожалуйста!
Реклама:
forastr вне форума  
Непрочитано 11.04.2011, 13:43  
oleg_harp
Прописка
 
Регистрация: 25.08.2007
Сообщений: 193
Сказал спасибо: 11
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
oleg_harp на пути к лучшему
По умолчанию Re: ATMega128 + AT25F4096

Сообщение от forastr Посмотреть сообщение
Помогите разобраться,пожалуйста!
Моё мнение такое. Для начала, хотя бы, стоит произвести пошаговую отладку в Proteus и попытаться самому найти ошибку. Если не получилось, написать, у меня вот этот байт туда-то пришёл, а вот здесь флаг не встал (например), не могу разобраться, помогите! К сожалению, по Вашим действиям это непонятно. А так можно просто любой отбалдовый код помещать и ждать когда другие в нем за Вас разберутся, а точнее напишут новый.
oleg_harp вне форума  
Непрочитано 11.04.2011, 17:38  
forastr
Частый гость
 
Регистрация: 13.04.2010
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
forastr на пути к лучшему
По умолчанию Re: ATMega128 + AT25F4096

Сообщение от oleg_harp Посмотреть сообщение
Моё мнение такое. Для начала, хотя бы, стоит произвести пошаговую отладку в Proteus и попытаться самому найти ошибку. Если не получилось, написать, у меня вот этот байт туда-то пришёл, а вот здесь флаг не встал (например), не могу разобраться, помогите! К сожалению, по Вашим действиям это непонятно. А так можно просто любой отбалдовый код помещать и ждать когда другие в нем за Вас разберутся, а точнее напишут новый.
Это я понимаю! У меня проблема в том,что даташит на английском(а с ним большие проблемы) и я до конца не могу понять принцип записи в эту память: когда и какие байты туда записывать ,чего ждать и чего не ждать(всмысле поднятия флагов).вот так....
forastr вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Универсальный Wiring модуль на ATmega128 DimmONN Микроконтроллеры, АЦП, память и т.д 7 17.03.2018 04:06
ATMEGA128 и голос isakz Микроконтроллеры, АЦП, память и т.д 7 05.04.2011 09:48
Какой стек для Ethernet ATmega128 + ENC28J60 выбрать? LionRJ Микроконтроллеры, АЦП, память и т.д 11 17.03.2011 07:37
АЦП на Atmega128 Fan79 Микроконтроллеры, АЦП, память и т.д 15 16.09.2010 20:40
Реализация modbus на atmega128 neizilber Микроконтроллеры, АЦП, память и т.д 4 20.03.2010 23:40


Часовой пояс GMT +4, время: 15:26.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.