nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 07:53



Reply to topic  [ 80 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
AVR+VS1002=mp3 
Author Message
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
У меня получилось получить некоторое подобие изображения :D :D :D
Как оказалось контроллер в дисплее S1D15G14. По крайней мере последовательность инициализации прокатила 8)
Вот, пока белый экран:
Image
Работает вроде по доке, потому что если врубить в настройках инверсию экран чернеет :wink:
Буду ковырять дальше

_________________
Всё что ты видишь - лживый облик.


28 Jul 2009 22:58
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Разобрался, много интересного узнал.
щас пишу функции для работы с ним - так чтобы можно было поменять дисплеи местами (от нокии и от сименса например), но при этом не нужно было переписывать всё. Меняешь заголовочный файл и всё работает ))
Вот, так примерно выглядит красный цвет:
Image

P.S. на электрониксе отписался, не устоял :lol: Именно там давным давно я пытался найти как инициализировать это дисплей :rotate:
А теперь сам сделал - даж не верится :wink:

_________________
Всё что ты видишь - лживый облик.


30 Jul 2009 18:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
А картинку вывести? ;)

_________________
:dj: https://mastodon.social/@Shaos


31 Jul 2009 14:15
Profile WWW
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Угу, скоро будет 8)
Надо ещё кое с чем поэксперементировать :D

_________________
Всё что ты видишь - лживый облик.


31 Jul 2009 14:25
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
Написал вывод текста, чтоб использовать свой готовый шрифт :kruto:
Только вот наткунлся на косяк - в режиме, который я юзаю для вывода текста оно разворачивает видеопамять на 90 градусов. получается 82 пикселя в строке, а не 101. (Щас вот думаю как можно избавиться от этого эффекта)
Пример текста:
Image

З.Ы. Вывод изображений тоже будет, надо ещё работу с файлами человеческую сделать :P

_________________
Всё что ты видишь - лживый облик.


07 Aug 2009 14:44
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
кто нибудь сталкивался с такой странностью:
в нулевом секторе в partition record`е адрес boot сектора (DWORD, смещение от начала 1С6h) умножен на 512, тоесть например boot сектор находится в 16 секторе диска, а значение в поле 8192. Причём винда нормально читает и пишет эту флешку.
для примера первые сектора двух карточек (micro SD и micro SDHC)
http://www.nedopc.org/nedopc/upload/SD_dump.zip

_________________
Всё что ты видишь - лживый облик.


20 Oct 2009 09:56
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
По идее, элемент таблицы раздела должен быть таким:
Code:
+00h - byte признак активности раздела (80h - активен)
+01h - byte номер поверхности начала раздела
+02h - word номер цилиндра и сектора начала раздела (запакованы)
+04h - byte код типа раздела
+05h - byte номер поверхности конца раздела
+06h - word номер цилиндра и сектора конца раздела (запакованы)
+08h - dword абсолютный (логический) номер сектора начала
+0Ch - dword размер раздела в логических секторах
Для LBA режима последние dword'ы указывают на реальные сектора.

А это значит, что число должно быть прямым номером сектора (на винтах я такое и наблюдаю обычно). Как это объяснить на флешках - хз... Вот:
Code:
Offset       0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000001B0   00 00 00 00 00 2C 44 63  AB E2 AB E2 00 00 80 01   .....,Dc«в«в..€.
0000001C0   01 00 07 FE FF FF 3F 00  00 00 6B D5 7D 02 00 FE   ...юяя?...kХ}..ю
0000001D0   FF FF 07 FE FF FF AA D5  7D 02 1B 0A D4 06 00 00   яя.юяяªХ}...Ф...

На винте все в порядке. Номер сектора. А вот флешка, 16Гб, один раздел (обычная USB):
Code:
Offset       0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0000001B0   00 00 00 00 00 00 00 00  E9 96 E9 96 00 00 00 82   ........й–й–...‚
0000001C0   03 00 0B 06 E5 A1 00 20  00 00 00 A0 DE 01 00 00   ....е¡. ... Ю...

Я вообще в непонятках. Кстати, я знаю, что флешку можно форматнуть без таблицы разделов - да, прямо бутсектор в логическом секторе 0. И винда видит оба формата: с таблицей разделов и без них. Я хз как это происходит. Может, винда сначала смотрит ID бутсектора, если находит - юзает, если не находит - пытается посмотреть таблицу разделов. Если она валидна - юзает, если нет - то не юзает и выдает ошибку.


21 Oct 2009 00:46
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
ну если MBR отсутствует, это нетрудно предусмотреть, а вот неправильный адрес бут сектора... наверное придётся сделать поиск нужного блока. типа если адрес неподошёл искать бут сектор по заранее известным значениям - сигнатуре AA55 и имени системы - FAT16 или FAT32.
ещё вариант - CHS адрес, но там вообще каша какая то получается...

_________________
Всё что ты видишь - лживый облик.


21 Oct 2009 03:47
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
что то в таком духе:
Code:
   FS_err=SD_init();   //Инициализация карты
   if (FS_err!=FS_READY) {return;};   //Возникла ошибка
   FS_err=SD_setBlockSize(0x200);   //Размер блока 512 байт
   if (FS_err!=FS_READY) {return;};   //Возникла ошибка
   /*
   Читаю нулевой сектор диска. Из него добываю необходимую информацию
   */
   FS_err=SD_read(0x00000000,ReadBuff);
   if (FS_err!=FS_READY) {return;};
   if (FS_checkForBoot(ReadBuff)) {goto PBRread;};   //Если это не MBR...
   if (FS_checkSignature(ReadBuff)!=TRUE) {FS_err=FS_NTFMT; return;};
   
   //это master boot record диска
   //Смещение от начала 0x1BE
   BootDescriptor=ReadBuff[446];   //boot indicator (80h = active partition)
   
   FirstPartSector=((unsigned long int)ReadBuff[449])<<8;
   FirstPartSector+=((unsigned long int)ReadBuff[448])<<8;
   FirstPartSector+=ReadBuff[447];   //Первый сектор раздела
   
   StartHead=ReadBuff[447];
   StartSector=(ReadBuff[448]&0x3F);
   StartTrack=((((unsigned int)(ReadBuff[448]&0xC0))<<2)+ReadBuff[449]);
   
   FS_descriptor=ReadBuff[450];   //Описатель Файловой системы
   
   LastPartSector=((unsigned long int)ReadBuff[453])<<8;   //Последний сектор раздела
   LastPartSector+=((unsigned long int)ReadBuff[452])<<8;
   LastPartSector+=ReadBuff[451];

   HeadCount=ReadBuff[451]+1;
   SectorCount=(ReadBuff[452]&0x3F);
   TrackCount=((((unsigned int)(ReadBuff[452]&0xC0))<<2)+ReadBuff[453])+1;
   
   NumFirstSector=((unsigned long int)ReadBuff[457])<<8;   //sectors preceding partition
   NumFirstSector+=((unsigned long int)ReadBuff[456])<<8;
   NumFirstSector+=((unsigned long int)ReadBuff[455])<<8;
   NumFirstSector+=ReadBuff[454];
   
   NumSectOfPart=((unsigned long int)ReadBuff[461])<<8;   //Количество секторов в разделе
   NumSectOfPart+=((unsigned long int)ReadBuff[460])<<8;
   NumSectOfPart+=((unsigned long int)ReadBuff[459])<<8;
   NumSectOfPart+=ReadBuff[458];
   
   PBR=NumFirstSector*512;   //По имеющимся данным вычисляем расположение первого сектора диска.

   FS_err=SD_read(PBR, ReadBuff);
   if (FS_err!=FS_READY) {return;};
   if (FS_checkSignature(ReadBuff)!=TRUE) //Если бут сектора по указаному адресу нет, пробуем найти
      {
      for (unsigned long int j=1;j<512;j++)   //Ищем в первых 512 секторах
         {
         PBR=j*512;
         FS_err=SD_read(PBR, ReadBuff);
         if (FS_err!=FS_READY) {return;};
         if (FS_checkForBoot(ReadBuff)) {goto PBRread;};   //Если нашли
         };
      FS_err=FS_NTFMT;   //или не нашли...
      return;
      };
   PBRread:
   LCD_GotoXY(0,6);
   LCD_putstr("PBR at ",CP_DOS);
   LCD_putstr(ultoa(PBR,Digits,16),CP_DOS);
   LCD_putchar('h',CP_DOS);
   //Чтение Partition Boot Record

получаем вот такое:

карточка на 1 гиг (mini SD):
Image
на 2 гига (micro SD):
Image
и на 4 гига (micro SDHC):
Image

раздобыть бы ещё флешку <32 метров с FAT16 и что нибудь с FAT12 :)

_________________
Всё что ты видишь - лживый облик.


21 Oct 2009 07:17
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
FreemaN wrote:
раздобыть бы ещё флешку <32 метров с FAT16 и что нибудь с FAT12 :)

Есть, но там ничего интересного. К тому же, ты можешь сделать раздел на ФАТ12 и на обычной флешке...


21 Oct 2009 20:02
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
интересно в плане "а как там по умолчанию", тоже могут быть какие нибуть неточности или неизвестности.

_________________
Всё что ты видишь - лживый облик.


22 Oct 2009 03:00
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
FreemaN wrote:
интересно в плане "а как там по умолчанию", тоже могут быть какие нибуть неточности или неизвестности.

Мелкие флешки форматируются в FAT16 (16МБ которые). Думаю, просто разрабы не хотят делать поддержку почти умершего FAT12, да и по ограничению 16МБ это лимит для FAT12 ЕМНИП.


22 Oct 2009 19:58
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
про FAT12 я бы даж не задумывался, если бы у меня не было флешки на 64мб... с FAT12 - шла в комплекте с к750 8) правда она совсем не SD. Но вот, именно то что она 64мб и FAT12 меня заинтересовало.
Image
Винда в свойствах не хочет показывать тип FAT... пришлось извратиться:
Image

_________________
Всё что ты видишь - лживый облик.


23 Oct 2009 06:38
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
FreemaN wrote:
Винда в свойствах не хочет показывать тип FAT... пришлось извратиться:

Все делается намного проще (кликабельно):
Image


23 Oct 2009 07:56
Profile
Senior
User avatar

Joined: 09 Jan 2009 20:30
Posts: 124
Location: Мурманск
Reply with quote
Post 
удобно, однако

_________________
Всё что ты видишь - лживый облик.


23 Oct 2009 08:26
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 80 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.