AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
01.11.2012, 15:07
|
#271
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от ut1wpr
|
Но, как говорится, что имеем - то имеем. Тут нужны эксперименты. Смотря какой внешний девайс у вас будет обслуживаться, такие и требования к таймингам.
А в целом почему бы и не пурквапа?
|
SDMMC. Но.. пока нужно ложить логи на маленькую флешку. Позже наверняка начнется.. надо будет ложить все больше логов, да еще фото с jpeg-камеры приедет.. SDHC надо будет, да свыше 2гб..
Насколько софтовая реализация медленнее? Может мне проще будет один модуль вынести в rs485 со своим мелким мк (для работы межпроцессорного режима UART)
|
|
|
|
01.11.2012, 15:08
|
#272
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от ut1wpr
|
не очень радужную картину в плане скоростных качеств этого SPI.
|
С точки зрения асмщика - под конкретный камень можно написать более шустрый asm-soft-spi?
|
|
|
|
01.11.2012, 15:16
|
#273
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
хорошо иногда выйти покурить ![Улыбка](images/smilies/icon_smile.gif)
вспомнил, что один из модулей умеет работать по SPI. Вот я два девайса (модуль RF и флешку) и повешу на него.
|
|
|
|
01.11.2012, 16:11
|
#274
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от whoim
|
ногодрыг хочу на 32мгц запустить, минимум 16 будет точно. Скорость чтения/записи особо не важна, так как будет довольно неспеша туда файлики складываться.
но, конечно, хотелось бы найти решение максимально быстрое. Возможно, с asm вставкой в плане софтового SPI.
Либа Чана - с какой страницы начать читать эту тему? ))
|
Если хочется быстро, то нужно не асм-вставками, а задействовать DMA или аппаратный spi-usart.
PS. А какой у вас МК?
|
|
|
|
01.11.2012, 16:13
|
#275
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от _Артём_
|
Если хочется быстро, то нужно не асм-вставками, а задействовать DMA или аппаратный spi-usart.
PS. А какой у вас МК?
|
выкрутился аппаратно, читайте выше ![Улыбка](images/smilies/icon_smile.gif) ну, в теории..
МК еще не приехали, буду atXmega32a4 пробовать
|
|
|
|
01.11.2012, 16:17
|
#276
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от _Артём_
|
PS. А какой у вас МК?
|
Во-во... Задавал я уже ему этот вопрос. Пока разговор абстрактный. Наоборот, возник у него вопрос:
[QUOTE]под конкретный камень можно написать более шустрый asm-soft-spi?/QUOTE]Ну что ответить? Что "конкретным камнем" может оказаться шустрый STM32? ![Улыбка](images/smilies/icon_smile.gif) Или что-то еще шустрее. На 150 МГц такта...
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 01.11.2012 в 16:22.
|
|
|
|
01.11.2012, 17:21
|
#277
|
Гражданин KAZUS.RU
Регистрация: 14.11.2008
Сообщений: 701
Сказал спасибо: 298
Сказали Спасибо 283 раз(а) в 193 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от whoim
|
хорошо иногда выйти покурить ![Улыбка](images/smilies/icon_smile.gif)
вспомнил, что один из модулей умеет работать по SPI. Вот я два девайса (модуль RF и флешку) и повешу на него.
|
Мало покурили, у ATxMega32a4 2 SPI
|
|
|
|
01.11.2012, 17:28
|
#278
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от kittec
|
Мало покурили, у ATxMega32a4 2 SPI
|
Не 2, а больше - все USART-ы могут работать в режиме SPI master, причём могут DMA задействовать.
|
|
|
|
01.11.2012, 18:42
|
#279
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от kittec
|
Мало покурили, у ATxMega32a4 2 SPI
|
нормально курил, мне нужны USART на этих пинах
Сообщение от _Артём_
|
Не 2, а больше - все USART-ы могут работать в режиме SPI master, причём могут DMA задействовать
|
да, но тем не менее мне нужны обычные USART, все 5 штук (теперь 4, перевел RF модуль на SPI к флешке). GPIO пины для CS есть в наличии )
Сообщение от ut1wpr
|
Пока разговор абстрактный. Наоборот, возник у него вопрос
|
ну извинить, вопрос был озвучен под бардак в голове ![Улыбка](images/smilies/icon_smile.gif) и был риторическим.. типа - есть ли смысл вообще копать в этом направлении?
Работа большая, со многими вещами работаю первый раз.. ждить в гости
|
|
|
|
28.11.2012, 17:30
|
#280
|
Почётный гражданин KAZUS.RU
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: SD/MMC на AVR
Ну в общем не могу записать на SD, хоть убей. Прошу подсказок.
SD - Sundisk 2gb, FAT/FAT32/exFAT - пробовал все.
К сожалению осцила нет, потыкать в ноги, но разводил все в diptrace по известным корпусам, плата автоматом трэйсилась, проверял ручками - все верно. Лишних замыканий нет, обрывов нет. Дороги на второй девайс с SPI пока отпилил.
Либа petitFS (чан). Основа взята из демок. Уничтожены функции софтового spi в асме и написаны свои..
Код:
|
#define SELECT() PORTD.OUT &= ~PIN1_bm /* CS = L */
#define DESELECT() PORTD.OUT |= PIN1_bm /* CS = H */
#define MMC_SEL !(PORTD.IN&PIN1_bm) /* CS status (true:CS == L) */
#define FORWARD(d) RS485_send_str(d) /* Data forwarding function (Console out in this example) */
void init_spi (void)
{
//set gpio
PORTD.DIR |= PIN0_bm | PIN1_bm | PIN5_bm | PIN7_bm;
// RF_CS SD_CS MOSI CLK
PORTD.DIR &= ~PIN6_bm; // ну мало ли...
//deselect all spi devices
PORTD.OUT |= PIN0_bm; //RF(H)
PORTD.OUT |= PIN1_bm; //SD(H)
//spi port_config
PR.PRPD &= ~0x08; // to get SPIC back from sleep
SPID.CTRL = SPI_ENABLE_bm | SPI_MASTER_bm | SPI_MODE_0_gc | SPI_PRESCALER_DIV128_gc;
}
void xmit_spi (uint8_t d) /* Send a uint8_t to the MMC */
{
//SELECT();
SPID.DATA = d;
while(!(SPID.STATUS&PIN7_bm));
//DESELECT();
}
uint8_t rcv_spi (void) /* Send a 0xFF to the MMC and get the received uint8_t */
{
xmit_spi(0xFF);
return SPID.DATA;
} |
dly_100us оставлена.
disk_initialize() возвращает 1 (NOINIT). Всегда...
Куда бы покопать?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:41.
|
|