Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

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

 
Опции темы

Работа с EEPROM по SPI

Непрочитано 03.05.2012, 17:47  
dominik2
Частый гость
 
Регистрация: 03.06.2010
Сообщений: 14
Сказал спасибо: 3
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
dominik2 на пути к лучшему
Восклицание Работа с EEPROM по SPI

Помогите пожалуйста реализовать в CodeVision чтение и запись в eeprom по SPI. Делаю все по даташиту 25LC256.



#include ‹spi.h›
*****
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2000,000 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
******
//Чтение 0x0000
spi(0x05); //Команда Чтения
PORTC=spi(0x0000); // Выбор адреса и присваиваю полученное число к порту.
В адресе eeprom 0x0000 находиться число 0x11, в следующем адресе 0x0001 хранится число 0х22.

Когда пытаюсь прочитать адрес 0х0000 на осциллографе вот что получается

Желтым отображается команда, синим ответ от eeprom
В итоге, какой бы адрес я не читал картина на осциллографе не изменяется...
Подскажите пожалуйста, что я делаю не так?
Реклама:
dominik2 вне форума  
Сказали "Спасибо" dominik2
warel (29.06.2019)
Непрочитано 03.05.2012, 17:57  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

А код где?
Там вообще просто все.
1) Опустили CS.
2) Отправили байт команды
3) Отправили 2 байта адреса
4) Читаем один или сколько угодно байт
5) Подняли CS
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 03.05.2012, 23:25  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Сообщение от dominik2 Посмотреть сообщение
Помогите пожалуйста реализовать в CodeVision
//Чтение 0x0000
spi(0x05); //Команда Чтения
PORTC=spi(0x0000); // Выбор адреса и присваиваю полученное число к порту.
В адресе eeprom 0x0000 находиться число 0x11, в следующем адресе 0x0001 хранится число 0х22.
Не знаю что там у вас по адресу 0, но 0x05 - это не команда чтения, а RDSR - read status register. Вот он вам отвечает одним и тем же - статусом.
Команда чтения - Read data - 0x03.
_Артём_ вне форума  
Сказали "Спасибо" _Артём_
warel (29.06.2019)
Непрочитано 03.05.2012, 23:38  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Да и желтый луч больше на клок похож, чем на дату...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
warel (29.06.2019)
Непрочитано 04.05.2012, 11:10  
dominik2
Частый гость
 
Регистрация: 03.06.2010
Сообщений: 14
Сказал спасибо: 3
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
dominik2 на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Ну это тут, по 0х03 позывных тоже никаких. сейчас и по 0х05 тишина по приему.

Тактовик там нормальный, это команда отображена)

Может лучше по делу? Как должен выглядеть кусок кода для чтения из eeprom?
Сейчас взял Xmega128A1, кусок кода такой у меня для чтения

SET_SPIC_SS_LOW //опускаем защелку
spic_master_tx_rx(0b00000101); //читаем регистр
spic_master_tx_rx(0x03); //подаем команду чтения из памяти
spic_master_tx_rx(0x00); //говорим нулевой адрес
a=spic_master_tx_rx(0x00); //забиваем оттуда значение в переменную
// можно и без переменной, сути рабочести не меняет, ответа нет
SET_SPIC_SS_HIGH //поднимаем защелку

Конфигурация SPI та же:
// SPIC is enabled
// SPI mode: 0
// Operating as: Master
// Data order: MSB First
// SCK clock prescaler: 16
// SCK clock doubled: Off
// SCK clock frequency: 2000,000 kHz
dominik2 вне форума  
Сказали "Спасибо" dominik2
warel (29.06.2019)
Непрочитано 04.05.2012, 11:15  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Сообщение от dominik2 Посмотреть сообщение
SET_SPIC_SS_LOW //опускаем защелку
spic_master_tx_rx(0b00000101); //читаем регистр
spic_master_tx_rx(0x03); //подаем команду чтения из памяти
spic_master_tx_rx(0x00); //говорим нулевой адрес
spic_master_tx_rx(0x00); //говорим нулевой адрес
a=spic_master_tx_rx(0x00); //забиваем оттуда значение в переменную
// можно и без переменной, сути рабочести не меняет, ответа нет
SET_SPIC_SS_HIGH //поднимаем защелку
Выбросить вторую строчку и все заработает.
Какое-то упорное нежелание читать даташиты.

Последний раз редактировалось Easyrider83; 04.05.2012 в 11:22.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 04.05.2012, 11:21  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

он над нами издевался...

[чтение статуса памяти]
SET_SPIC_SS_LOW(); // опускаем CS
spic_master_tx_rx(0x05); // подаем команду
byte State = spic_master_tx_rx(0xFF); // читаем регистр
SET_SPIC_SS_HIGH(); // поднимаем CS

[чтение ячеек памяти]
SET_SPIC_SS_LOW(); // опускаем CS
spic_master_tx_rx(0x03); // подаем команду чтения
spic_master_tx_rx(0x00); // подаем high-part адреса
spic_master_tx_rx(0x00); // подаем low-part адреса
byte Data = spic_master_tx_rx(0xFF); // читаем данные
SET_SPIC_SS_HIGH(); // поднимаем CS

PS и блоки желательно не объединять

Последний раз редактировалось Hives; 04.05.2012 в 11:25.
Hives вне форума  
Сказали "Спасибо" Hives
warel (29.06.2019)
Непрочитано 04.05.2012, 12:42  
dominik2
Частый гость
 
Регистрация: 03.06.2010
Сообщений: 14
Сказал спасибо: 3
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
dominik2 на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Пробую и такой вариант:

SET_SPIC_SS_LOW //опускаем защелку
spic_master_tx_rx(0x03); //подаем команду чтения из памяти
spic_master_tx_rx(0x00); //говорим нулевой адрес
spic_master_tx_rx(0x00); //говорим нулевой адрес
a=spic_master_tx_rx(0x00); //забиваем оттуда значение в переменную
// и с FF тож
SET_SPIC_SS_HIGH //поднимаем защелку


Для чтения регистра то же, в принципе. Сигнал идет, ответа нет.

Может дело в частоте SPI? Пробовал пока только 2 и 8Мгц (на 5В питания памяти)
dominik2 вне форума  
Сказали "Спасибо" dominik2
warel (29.06.2019)
Непрочитано 04.05.2012, 12:45  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

Как подключали?
MISO и MOSI не попутали?
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 04.05.2012, 12:50  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: Работа с EEPROM по SPI

а какой именно ответ ты ждешь?
Hives вне форума  
Сказали "Спасибо" Hives
warel (29.06.2019)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с SD-картами по SPI sonartiflo Микроконтроллеры, АЦП, память и т.д 3 13.02.2012 23:13
Простейший программатор SPI EEPROM dimmich Микроконтроллеры, АЦП, память и т.д 6 09.08.2010 23:08
SPI eeprom 95p08 и 95080 ipkin Микроконтроллеры, АЦП, память и т.д 1 11.06.2008 23:52
Инициализация SPI-EEPROM в Proteus 7.1 slavik_1234 Микроконтроллеры, АЦП, память и т.д 0 10.09.2007 21:19
Какую память выбрать EEPROM/Flash с SPI/I2C? graham Микроконтроллеры, АЦП, память и т.д 9 17.11.2005 19:17


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


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