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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 07.01.2016, 23:07  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: m45peXX

Сообщение от NewWriter Посмотреть сообщение
Лучше головой об стену удариться
Это ваш право в способе наслаждений.
Никогда не пользовался протезом, но что удивительно, всегда всё работало!
И вообще, можете сказать по существу? Скажите!
Реклама:
STM32F0 вне форума  
Непрочитано 07.01.2016, 23:30  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: m45peXX

Сообщение от STM32F0 Посмотреть сообщение
И вообще, можете сказать по существу? Скажите!
Вы первый. Но только по существу, если вообще умеете
NewWriter вне форума  
Непрочитано 08.01.2016, 00:11  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,000
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: m45peXX

Сообщение от dr-fin Посмотреть сообщение
Если про пк, то i5, ram 16 Gb
мк - atmega16
М-м-мдя-а-а-а...
Ну обожжите... На рабооту приду - проверю код, который на M25 работал.
ForcePoint вне форума  
Непрочитано 10.01.2016, 17:30  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,000
Сказал спасибо: 3,017
Сказали Спасибо 3,191 раз(а) в 2,164 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: m45peXX

Сообщение от dr-fin Посмотреть сообщение
Поставил Протеус 8.3 сп 2, вообще чтение с памяти перестало идти.
Что значит "перестало идти"? Мы как раньше не знали что Вам удавалось считать
Сообщение от ForcePoint Посмотреть сообщение
Добейтесь что-бы конструкция
.....
.....
выдавала 4011h в терминал - будет о чём разговаривать.
- так и сейчас не знаем, что изменилось. А телепаты - они все не здесь.
Кстати, в коде от 4 ноября я так и не увидел предложенный мною тестовый фрагмент с чтением идентификационной информации ПЗУ (т.е., если читается ID, то как минимум правильно подключен и настроен SPI и ПЗУ корректно распознаёт команды от МК).

После этой краткой преамбулы просмотрим Ваш код.
1.
Код:
// Port B initialization
DDRB=(1‹‹DDB7) | (0‹‹DDB6) | (1‹‹DDB5) | (1‹‹DDB4) | (0‹‹DDB3) | (0‹‹DDB2) | (0‹‹DDB1) | (0‹‹DDB0);
PORTB=(0‹‹PORTB7) | (0‹‹PORTB6) | (0‹‹PORTB5) | (0‹‹PORTB4) | (0‹‹PORTB3) | (0‹‹PORTB2) | (0‹‹PORTB1) | (0‹‹PORTB0);
Поскольку PB4 используется как !S (Chip Select) для ПЗУ - было-бы неплохо записать (1‹‹PORTB4), что-бы не провоцировать коллизии.

2. Настройка SPI - вроде нормально.

3. В подпрограммах записи данных мы видим куски кода предназниченные ни-для-чего и ошибки в циклограмме обмена с ПЗУ. Предположим, мы вызвали FLASH_PageWrite и, по мере необходимости, обращаемся из неё к FLASH_TXByte.
Код:
void FLASH_TXByte(unsigned char uData) 
{
Считываем статус, но никак не обрабатываем.
 FLASH_chipSelectLow();
 SPDR = RDSR;
 waitForTransferComplete(); 
 SPDR=0xff;
 waitForTransferComplete();
 //putChar(RDSR);
 //SPDR=0xff;
 //waitForTransferComplete();
 //putChar(SPDR);
 FLASH_chipSelectHigh();
Зачем?

 FLASH_chipSelectLow();
 SPDR = uData;      
 waitForTransferComplete();
 FLASH_chipSelectHigh();
}
   
void FLASH_PageWrite(int pageAddress,char *uData, char sizeData)
pageAddress имеет 24 разряда (смотрю документацию на M45PE80,
раздел "Page Write (PW)"), а Вы пытаетесь 16 бит использовать.
С большой степенью вероятности - потом просто читаете не оттуда,
куда записали. Итого - пишем longint pageAddress и ...
{
 char iterator;
 FLASH_TXByte(WREN);
 FLASH_chipSelectLow();
 SPDR = PW;
 waitForTransferComplete();
  
 //FLASH_chipSelectLow();  
 //SPDR = pageAddress››16;waitForTransferComplete();
... раскомментируем эту строку.
 SPDR = pageAddress››8; waitForTransferComplete();
 SPDR = pageAddress;    waitForTransferComplete();
 //SPDR = 0x00;
 
 //FLASH_chipSelectHigh();
 
 for(iterator = 0; iterator ‹ sizeData; iterator++)
 {
  SPDR = uData[iterator];
  waitForTransferComplete(); 
 }    
  FLASH_chipSelectHigh();
}

Ну и я-бы поменял местами "waitForTransferComplete()" с "SPDR =".
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
dr-fin (03.05.2016)
 

Закладки
Опции темы

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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot