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

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

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

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

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

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

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

 
Опции темы
Непрочитано 11.03.2011, 22:55  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

st_1, Кидай любой , бум читать ...
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.03.2011, 22:57  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от AJScorp Посмотреть сообщение
Хорошо. У меня стабильно работали MMC, SD1.0, SD2.0, SDHC. 4 типа карт, кроме микроSD, проблему решило только внесение 0xFF перед подачи команды. Возможно это связано со схемотехникой, не спорю.
А откуда вообще взялось это 0xFF? Докум. смотрю, чего-то не вижу. Просто у Чена в инициализации есть 0xFF перед отсылкой команды, 1 при CS = 1 и 1 при CS = 0,
А в библиотеке от микрочипа, только начальные 80 импульсов и потом задержка 1 мс и затем команды без всяких 0xFF.
И то и то работает.
realid вне форума  
Непрочитано 11.03.2011, 22:58  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от dosikus Посмотреть сообщение
Теперь есть куда рыть .
Я то думал код рабочий , и это у меня лыжи не едут...
Погоди, покажи инициализацию карты
У меня на PIC24. Но изменения касались только настройки SPI.
realid вне форума  
Сказали "Спасибо" realid
dosikus (11.03.2011)
Непрочитано 11.03.2011, 23:00  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от realid Посмотреть сообщение
Погоди, покажи инициализацию карты
Здесь весь проект https://kazus.ru/forums/attachment.p...0&d=1299869552
Код:
/*-----------------------------------------------------------------------*/
/* Initialize Disk Drive                                                 */
/*-----------------------------------------------------------------------*/

DSTATUS disk_initialize (void)
{
	BYTE n, cmd, ty, ocr[4];
	WORD tmr;


	init_spi();
	
#if _WRITE_FUNC
	if (MMC_SEL) disk_writep(0, 0);		/* Finalize write process if it is in progress */
#endif
	for (n = 100; n; n--) rcv_spi();	/* Dummy clocks */

	ty = 0;
	if (send_cmd(CMD0, 0) == 1) {			/* Enter Idle state */
		if (send_cmd(CMD8, 0x1AA) == 1) {	/* SDv2 */
			for (n = 0; n ‹ 4; n++) ocr[n] = rcv_spi();		/* Get trailing return value of R7 resp */
			if (ocr[2] == 0x01 && ocr[3] == 0xAA) {				/* The card can work at vdd range of 2.7-3.6V */
				for (tmr = 12000; tmr && send_cmd(ACMD41, 1UL ‹‹ 30); tmr--) ;	/* Wait for leaving idle state (ACMD41 with HCS bit) */
				if (tmr && send_cmd(CMD58, 0) == 0) {		/* Check CCS bit in the OCR */
					for (n = 0; n ‹ 4; n++) ocr[n] = rcv_spi();
					ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;	/* SDv2 (HC or SC) */
				}
			}
		}
		else {							/* SDv1 or MMCv3 */
			
			if (send_cmd(ACMD41, 0) ‹= 1) 	{
				ty = CT_SD1; cmd = ACMD41;	/* SDv1 */
			} else {	/* Proteus 7.x MMC sim model */
				ty = CT_MMC; cmd = CMD1;	/* MMCv3 */
			}
			for (tmr = 25000; tmr && send_cmd(cmd, 0); tmr--) ;	/* Wait for leaving idle state */
			if (!tmr || send_cmd(CMD16, 512) != 0)			/* Set R/W block length to 512 */
				ty = 0;
		}
	}
	CardType = ty;
	release_spi();

	return ty ? 0 : STA_NOINIT;
}
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 11.03.2011 в 23:03.
dosikus вне форума  
Непрочитано 11.03.2011, 23:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

А у меня так:
Код:
DSTATUS disk_initialize (void)
{
	BYTE n, cmd, ty, ocr[4];
	UINT tmr;

#if _USE_WRITE
	if (CardType && MMC_SEL) disk_writep(0, 0);	/* Finalize write process if it is in progress */
#endif
	init_spi();		/* Initialize ports to control MMC */
	DESELECT();
	for (n = 10; n; n--) rcv_spi();	/* 80 Dummy clocks with CS=H */

	ty = 0;
	if (send_cmd(CMD0, 0) == 1) {			/* Enter Idle state */
		if (send_cmd(CMD8, 0x1AA) == 1) {	/* SDv2 */
			for (n = 0; n ‹ 4; n++) ocr[n] = rcv_spi();		/* Get trailing return value of R7 resp */
			if (ocr[2] == 0x01 && ocr[3] == 0xAA) {			/* The card can work at vdd range of 2.7-3.6V */
				for (tmr = 10000; tmr && send_cmd(ACMD41, 1UL ‹‹ 30); tmr--) dly_100us();	/* Wait for leaving idle state (ACMD41 with HCS bit) */
				if (tmr && send_cmd(CMD58, 0) == 0) {		/* Check CCS bit in the OCR */
					for (n = 0; n ‹ 4; n++) ocr[n] = rcv_spi();
					ty = (ocr[0] & 0x40) ? CT_SD2 | CT_BLOCK : CT_SD2;	/* SDv2 (HC or SC) */
				}
			}
		} else {							/* SDv1 or MMCv3 */
			if (send_cmd(ACMD41, 0) ‹= 1) 	{
				ty = CT_SD1; cmd = ACMD41;	/* SDv1 */
			} else {
				ty = CT_MMC; cmd = CMD1;	/* MMCv3 */
			}
			for (tmr = 10000; tmr && send_cmd(cmd, 0); tmr--) dly_100us();	/* Wait for leaving idle state */
			if (!tmr || send_cmd(CMD16, 512) != 0)			/* Set R/W block length to 512 */
				ty = 0;
		}
	}
	CardType = ty;
	DESELECT();
	rcv_spi();

	return ty ? 0 : STA_NOINIT;
}
Есть отличия.
realid вне форума  
Сказали "Спасибо" realid
dosikus (11.03.2011)
Непрочитано 11.03.2011, 23:06  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от realid Посмотреть сообщение
Есть отличия.
Блин , надо было мне и этот файл у Chan брать . я только файлы petit на новые заменил...
Спасибо что носом ткнул.
Это наверное правленый для протеуса...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.03.2011, 23:12  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от realid Посмотреть сообщение
А откуда вообще взялось это 0xFF? Докум. смотрю, чего-то не вижу. Просто у Чена в инициализации есть 0xFF перед отсылкой команды, 1 при CS = 1 и 1 при CS = 0,
А в библиотеке от микрочипа, только начальные 80 импульсов и потом задержка 1 мс и затем команды без всяких 0xFF.
И то и то работает.
Микрочиповскую библиотеку не пробовал, опирался на Чена и какой-то сырец от атмела (сейчас уже не найду). В спеках такого нет-сто раз перерыл, но откуда-то этот эмпирический опыт всплыл.
AJScorp вне форума  
Непрочитано 11.03.2011, 23:39  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Вот так то , вот чем халява выходит...

realid, Еще раз спасибо за пинок в нужном направлении.
Все заработало . Засяду ка я чана читать...

Еще одна гадость . Я с этим проектом не могу запустит pickit2 как дебаггер .
В конфиге дебаг разрешен. Вываливается табличка Unable enter debug mode.
Эта же плата прекрасно дебажится в CCS ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.03.2011, 23:44  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от dosikus Посмотреть сообщение
Еще одна гадость . Я с этим проектом не могу запустит pickit2 как дебаггер .
В конфиге дебаг разрешен. Вываливается табличка Unable enter debug mode.
Я немного запутался. В С18 или Hitech PICC18?
realid вне форума  
Непрочитано 11.03.2011, 23:52  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: 18F2550 & petit fat fs

Сообщение от realid Посмотреть сообщение
Я немного запутался. В С18 или Hitech PICC18?
Не мудрено . Я тут такие прыжки с бубном делаю...

Сейчас на HI-Tech picc18 STD 9.51.
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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

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


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


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