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

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

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

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

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

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

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

 
Опции темы
Непрочитано 21.07.2022, 14:54  
dk_spb
Прохожий
 
Регистрация: 22.01.2010
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dk_spb на пути к лучшему
По умолчанию Проблема с FatFS в CodeVision AVR

когда-то давно я написал программку для atmega644. На текущей железке она работает (открывает файл с SD карты и отправляет его по хитрому интерфейсу). Но надо мне в интерфейсе кое-что поменять, а исходники утеряны. Пробую восстановить, но не получается открыть файл.

Для начала пробую простое: disk_read.
1) инициализирую SPI (SPCR=0x53; SPSR=0x00; )
2) делаю disk_initialize(0); - получаю OK
3) disk_read(0, buf, 1UL, 1); - получаю RES_ERROR

Пробую так:
1) инициализирую SPI (SPCR=0x53; SPSR=0x00; )
2) disk_initialize(0);
3) снова инициализирую SPI (SPCR=0x53; SPSR=0x00; )
4) disk_read(0, buf, 1UL, 1);
Так всё-работает.

Более чем странно, но дальше пробую с файлами:
1) SPI init (SPCR=0x53; SPSR=0x00; )
2) disk_initialize(0);
3) SPI init (SPCR=0x53; SPSR=0x00; )
4) disk_read(0, buf, 1UL, 1);
5) disk_read(0, buf, 100UL, 1);
6) disk_read(0, buf, 5UL, 1);
7) delay 10000 ms ; это добавил чтобы проверить что с прерываниями для disk_timerproc() всё хорошо
8 ) disk_read(0, buf, 20UL, 1);
9) f_mount(0,&fat)
10) disk_read(0, buf, 1UL, 1);
Всё работает, получаю на всё OK


Но дальше вообще чудеса, добавляю открытие файла:
1) SPI init (SPCR=0x53; SPSR=0x00; )
2) disk_initialize(0);
3) SPI init (SPCR=0x53; SPSR=0x00; )
4) disk_read(0, buf, 1UL, 1);
5) disk_read(0, buf, 100UL, 1);
6) disk_read(0, buf, 5UL, 1);
7) delay 10000 ms
8 ) disk_read(0, buf, 20UL, 1);
9) f_mount(0,&fat)
10) f_open(&file,path,FA_OPEN_EXISTING | FA_READ | FA_WRITE)
11) disk_read(0, buf, 1UL, 1);
И получаю FR_DISK_ERR на f_open() и даже RES_ERROR на disk_read после f_open

Куда копать?
Реклама:
dk_spb вне форума  
Непрочитано 21.07.2022, 16:07  
sanya
Временная регистрация
 
Регистрация: 10.11.2016
Сообщений: 57
Сказал спасибо: 6
Сказали Спасибо 18 раз(а) в 15 сообщении(ях)
sanya на пути к лучшему
По умолчанию Re: Проблема с FatFS в CodeVision AVR

Формат команды f _mount вроде другой: f_mount(&FATFS_Obj, "0", 1);
FRESULT f_mount (
FATFS* fs, /* [IN] Filesystem object */
const TCHAR* path, /* [IN] Logical drive number */
BYTE opt /* [IN] Initialization option */
);

Initialization option обычно устанавливаю в 1. Вариант монтажа. 0: Не монтирует сейчас (для монтирования при первом доступе к тому), 1: Принудительно смонтирует том, чтобы проверить, готов ли он к работе.

Последний раз редактировалось sanya; 21.07.2022 в 16:15.
sanya вне форума  
Непрочитано 21.07.2022, 16:21  
dk_spb
Прохожий
 
Регистрация: 22.01.2010
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dk_spb на пути к лучшему
По умолчанию Re: Проблема с FatFS в CodeVision AVR

Сообщение от sanya Посмотреть сообщение
Формат команды f _mount
Нет, в примерах в комплекте с CV он именно такой.
Тут же вопрос не вообще в библиотеке FatFS, а именно в том её варианта что идет к CV.
Тем более при компиляции ругани нет и возвращает оно OK
dk_spb вне форума  
Непрочитано 21.07.2022, 18:37  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Проблема с FatFS в CodeVision AVR

dk_spb, а проверить работу с задержками до и после disk_initialize ?
Аналогично с задержкой после f_mount…
Надо читать в документации на конкретную реализацию, но там ЕМНИП были синхронные и асинхронные реализации…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 21.07.2022, 20:17  
dk_spb
Прохожий
 
Регистрация: 22.01.2010
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
dk_spb на пути к лучшему
По умолчанию Re: Проблема с FatFS в CodeVision AVR

Всё, я разобрался, спасибо.
Проблема в высокой тактовой, а FatFS без доработки "не есть" выше 20Мгц
А CV и доработать нельзя вроде как. Перешел на WinAVR
dk_spb вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeVision AVR. Массивы в ассемблерной вставке sanstan Микроконтроллеры, АЦП, память и т.д 4 24.12.2010 12:31
Проблема с выводом звука с микроконтроллера AVR Yegorvin Цифровые сигнальные процессоры 12 23.03.2010 04:16
AVR IAR v4.20 проблема с отработкой условия graham Proteus, KiCAD и другие ECAD 12 05.01.2007 16:19
Проблема с UART AVR uk8amk Микроконтроллеры, АЦП, память и т.д 1 12.08.2006 16:59
Проблема деления целых чисел с заданной точностью на AVR KiberBOSS Микроконтроллеры, АЦП, память и т.д 8 16.02.2006 16:35


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


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