Пишем лог на SD карточку

Обсуждение аппаратной части ("железо"). Discussion about hardware.

Moderator: STC

Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Пишем лог на SD карточку

Post by Qwertty »

Я бы поостерегся надеяться на библиотеку имеющую с февраля по сентябрь всего 98 загрузок с официального сайта. Одна из них моя и одна твоя :D Вообще библиотека какая то странная. 6200 байт это уже с интерфейсом к SD карте? Драйвера работы с SD в составе библиотеки нет. А там инициализация хитрая в зависимости от типа карты. Плюс чтение/запись секторов тоже место занимает.
Да и для встроенных систем там может баг на баге оказаться. Библиотека какая то недоделанная. Ну к примеру:

Code: Select all

struct SFatStat {
	unsigned initCount;
	unsigned clearCount;
	unsigned getCount[2];  // 0 = read, 1 = write
	unsigned reuseCount[2];  // 0 = read, 1 = write
	unsigned missCount[2];  // 0 = read, 1 = write
}
Структура зачетная. Поди угадай размер ее полей. Явно подразумевается 32 бита, но реально как получится. На АВР будет 16 бит. И там такого масса. Явного выделения памяти под буферы я не нашел. Правда смотрел минуту или две всего. Разочаровала, не верю я что заработает.
Зато нашел такое -
#define FF_MALLOC(aSize) malloc(aSize)
это кошмарная операция. Нет, когда проц на гигагерцы и памяти гигабайты она нормальная. А вот в М8 или М16 это далеко не так. Ну попробуешь - расскажешь о результатах. Я предполагаю их неутешительными :)
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Qwertty wrote:Я бы поостерегся надеяться на библиотеку имеющую с февраля по сентябрь всего 98 загрузок с официального сайта. Одна из них моя и одна твоя :D Вообще библиотека какая то странная. 6200 байт это уже с интерфейсом к SD карте? Драйвера работы с SD в составе библиотеки нет.
Ссылка на библиотеку.
http://www.holger-klabunde.de/avr/FATSingle34.zip
Если говорим об одном и том-же, то там есть функции открытия, чтения, записи и закрытия файла на SD и MMC.
Qwertty wrote: Библиотека какая то недоделанная. Ну к примеру:

Code: Select all

struct SFatStat {>>>>>>[/quote]

Просмотрел, struct SFatStat в данной библиотеке не нашел.
Что касается "качества" библиотеки - нужно попробовать как работает -).
Исходники были под GCC. Перевел на IAR. Пока все в лучшую сторону. Будем посмотреть, как поведет себя дальше.
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Пишем лог на SD карточку

Post by Qwertty »

О разном. :lol: Эта называется - ATMega-DOS. Я о - http://code.google.com/p/fullfat/
Искал как fullfat.
Эта лично мне тоже доверия не внушает - брошена 6 лет назад. Но может и нормальная. Если изменения в лучшую сторону, то хорошо. Но вообще там есть функции на асме в GCC варианте. IAR их просто выкинет. Да и прототипчик там чисто из GCC

Code: Select all

void init_mem(void) __attribute__((naked)) __attribute__((section (".init3")));

/* !!! never call this function !!! */
void init_mem (void)
{
   __asm volatile (
      "ldi r30, lo8 (__heap_start)"  "\n\t"
      "ldi r31, hi8 (__heap_start)"  "\n\t"
      "ldi r24, %0"                  "\n\t"
      "ldi r25, hi8 (%1)"            "\n"
      "0:"                           "\n\t"
      "st  Z+,  r24"                 "\n\t"
      "cpi r30, lo8 (%1)"            "\n\t"
      "cpc r31, r25"                 "\n\t"
      "brlo 0b"
         :
         : "i" (MASK), "i" (RAMEND+1)
   );
}
Правда неясно насколько это вообще нужно.
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Qwertty wrote:О разном. :lol: Эта называется - ATMega-DOS. Я о - http://code.google.com/p/fullfat/
Искал как fullfat.
-)
Там все на немецком. Заголовок был:
"FullFAT Single-File-System für ATMega ab 1kB RAM: "
Да, нужно было ссылку дать...-)
Qwertty wrote: Эта лично мне тоже доверия не внушает - брошена 6 лет назад. Но может и нормальная. Если изменения в лучшую сторону, то хорошо. Но вообще там есть функции на асме в GCC варианте. IAR их просто выкинет. Да и прототипчик там чисто из GCC

Code: Select all

void init_mem(void) __attribute__((naked)) __attribute__((section (".init3")));
Правда неясно насколько это вообще нужно.[/quote]
Этот - просто выкидывается -).

PS
Последнее обновление: 
24.03.2010  Bug in Fseek() beseitigt.
Хотя это не показатель.
Калашиков в 47-м сделали , до сих пор пользуются -)
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Первая версия логера успешно работает на столе, с эмулятором данных SECU. Размер файла прошивки (*.bin) 5900 байт.
Использую 1ГБ карточку. При включении питания создается новый файл, после 255 файлов имена повторяються -). Обмен на скорости 9800 Кбит/с. Пока файлы больше 2МБ не сохранял.
Питаю схему от 12В. Потребление в режиме записи лога 20-40ма. В среднем где-то 30ма.
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Пишем лог на SD карточку

Post by STC »

Отлично!
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

См. ниже-)
Last edited by serge__5518 on Sat Oct 06, 2012 5:34 pm, edited 1 time in total.
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Проверил логер на SECU. Мои поездки вылилась в два лога по мегабайту.
При внимательном рассмотрении лога, выяснил что перепутал ширину полей для knock_k и knock_retard. В итоге, knock_retard при значении равном 16.00 слегка подвинул влево всю строку -).
Это был "классический случай" отработки SECU по ДД.

Просматривая лог нашел интересный момент:
00:18:18.37, 1660,40.85, 63.85,13.95, 81.25, 0.88,0.00, 8,1,1,1,0
00:18:18.45, 1670,35.60, 73.12,14.01, 81.25, 3.29,0.00,10,1,1,1,0 - нет коррекции
00:18:18.53, 1662,24.65, 81.07,13.98, 81.25, 1.75,0.00,12,1,1,1,0
00:18:18.61, 1654,22.65, 84.97,14.03, 81.25, 0.51,0.00,13,1,1,1,0
00:18:18.69, 1667,21.05, 88.02,14.00, 81.25, 1.99,0.00,14,1,1,1,0
00:18:18.77, 1664,20.65, 89.77,14.11, 81.25, 1.18,0.00,14,1,1,1,0
00:18:18.85, 1676,20.05, 91.00,13.89, 81.25, 1.11,0.00,15,1,1,1,0
00:18:18.93, 1675,20.25, 91.30,13.95, 81.25, 1.09,0.00,15,1,1,1,0
00:18:19.01, 1682,17.00, 91.62,14.05, 81.25, 0.89,4.00,15,1,1,1,0 - коррекция
00:18:19.09, 1681,16.45, 91.82,13.95, 81.25, 0.58,3.50,15,1,1,1,0
00:18:19.17, 1684,17.00, 91.90,14.00, 81.25, 0.57,2.75,15,1,1,1,1

Наверно между 00:18:18.93 и 00:18:19.01 хорошо "звякнуло", тк есть коррекция. Хотя по времени, между ними всего два оборота коленвала. Да и давление в коллекторе практически без изменений...
А в 00:18:18.45 knock_k = 3.29V и нет коррекции - непонятно!
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
serge__5518
LQFP112 - Up with the play
Posts: 200
Joined: Sat Jun 09, 2012 11:12 am

Re: Пишем лог на SD карточку

Post by serge__5518 »

Первая реализация логера для SECU-3 на Atmega8 лежит здесь:
Схема : http://subversion.assembla.com/svn/secu ... rSD/Schema
Исходный код : http://subversion.assembla.com/svn/secu ... SD/MegaApp
Консоль настройки логера : http://subversion.assembla.com/svn/secu ... erCnsl.exe
ВАЗ 2103 , Secu-3 (m32),
ДАД GM Daewoo, ДТОЖ 23.3828,
Катушка 2111-3705010
KOT
LQFP112 - Up with the play
Posts: 188
Joined: Fri Apr 06, 2012 6:59 pm
Location: Ukrainian, Zaporozhye
Contact:

Re: Пишем лог на SD карточку

Post by KOT »

у меня консоль ругается на отсутствие библиотеки BORLNDMM.DLL

и протеус ругается на outside of ROM space загружал в него ProteusLoggerSD.d90
Post Reply