реклама на сайте
подробности

 
 
87 страниц V  « < 34 35 36 37 38 > »   
Reply to this topicStart new topic
> AVR и Siemens M55
Andrew_KMR
сообщение Jan 23 2008, 18:02
Сообщение #526


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 11-12-07
Из: г.Кемерово
Пользователь №: 33 175



Доброго здоровья всем!

**** У меня вопрос немного не по теме, может кто работал с Multi Media Card (MMC) ****

Не могу разобраться с адресацией, подскажите плиз!
Выдал команду CMD17 для чтения блока данных, далее следует 32 бита адреса, а
в чем указать его, в блоках (по 512 байт) или в байтах от общего объема карты?
И где там младший, а где старший байт адреса?

help.gif
Go to the top of the page
 
+Quote Post
yarunt
сообщение Jan 23 2008, 20:18
Сообщение #527


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(Andrew_KMR @ Jan 23 2008, 21:02) *
Доброго здоровья всем!

**** У меня вопрос немного не по теме, может кто работал с Multi Media Card (MMC) ****

Не могу разобраться с адресацией, подскажите плиз!
Выдал команду CMD17 для чтения блока данных, далее следует 32 бита адреса, а
в чем указать его, в блоках (по 512 байт) или в байтах от общего объема карты?
И где там младший, а где старший байт адреса?

help.gif

Значит сразу надо перейти на секторную работу с карточкой,и сектора умножать на 512.Пролучившийся результат вставлять в 32 битный регистр,с право младший бит.После
прочитать 512 байт увеличить сектор на один и умножить на 512 ,вставить и снова считать и тд.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
Andrew_KMR
сообщение Jan 24 2008, 04:25
Сообщение #528


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 11-12-07
Из: г.Кемерово
Пользователь №: 33 175



Цитата(yarunt @ Jan 23 2008, 23:18) *

Спасибо за ответ! a14.gif

А если я в четырех байтах адреса просто буду плюсовать по 512 тоже самое получится?
Вот не знаю как реализовать арифметику...
два регистра сложить могу, а тут их три!
Ведь младший насколько я понял всегда будет = 0
-------------------------------------------------
; Константа 0x0200 -> 512 Dec
; 0x00 уходит в самый младший байт адреса
; 0x02 плюсуем к младшему байту адреса
ldi temp,0x02
add Low_byte,temp
clr temp
adc Medium_byte,temp
-------------------------------------------------
Два регистра складываю с констанотой

Сообщение отредактировал Andrew_KMR - Jan 24 2008, 04:26
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Jan 24 2008, 07:03
Сообщение #529


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



я делал вычисление адреса так...
zh:zl - номер сектора на ММС

r16,r17,r18,r19 - адрес
clr r19 - так как кратно 512 - то всегда будет = 0
mov r18,zl
mov r17,zh ;т.е. мы сдвинули уже на 8 т.е. умножили на 256
clr r16
lsl r18 - сдвигом умножаем еще на 2 (256*2)
rol r17
rol r16
получаем в итоге адрес кратный 512.. а работаю с секторами от 1 до N

yarunt: у меня 0х00 0х00 восстанавливает экран... т.е. была картинка, дали 0х00 0х40 - все стало черным, даем 0х00 0х00 - опять та же картинка на экране

Сообщение отредактировал Cyber_RAT - Jan 24 2008, 07:05
Go to the top of the page
 
+Quote Post
yarunt
сообщение Jan 24 2008, 07:13
Сообщение #530


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(Andrew_KMR @ Jan 24 2008, 08:25) *
Спасибо за ответ! a14.gif

А если я в четырех байтах адреса просто буду плюсовать по 512 тоже самое получится?
Вот не знаю как реализовать арифметику...
два регистра сложить могу, а тут их три!
Ведь младший насколько я понял всегда будет = 0
-------------------------------------------------
; Константа 0x0200 -> 512 Dec
; 0x00 уходит в самый младший байт адреса
; 0x02 плюсуем к младшему байту адреса
ldi temp,0x02
add Low_byte,temp
clr temp
adc Medium_byte,temp
-------------------------------------------------
Два регистра складываю с констанотой

Точно, только забыл надо перед каждым прочтением сектора 17 команду повторять.
Умножить можно так или 9 раз сдвинуть регистр в лево ,или переставлять 3в4,2в3,1в2,1затереть и раз сдвинуть в лево регистр
Плюсовать ло 512байт нет смысла ,когда работеш с большими масивами

Сообщение отредактировал yarunt - Jan 24 2008, 07:23


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
zaw
сообщение Jan 24 2008, 18:15
Сообщение #531





Группа: Участник
Сообщений: 11
Регистрация: 16-06-06
Из: г. Тула
Пользователь №: 18 121



Цитата(Stalker27 @ Jan 23 2008, 12:14) *
А под какой контроллер?

LS020B8 - То что написано на приклеенной к дисплею бумажке!


--------------------
С уважением, А. Зуйков
Go to the top of the page
 
+Quote Post
Andrew_KMR
сообщение Jan 25 2008, 10:26
Сообщение #532


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 11-12-07
Из: г.Кемерово
Пользователь №: 33 175



Спасибо!
С адресацией разобрался!
Толь вот еще есть Erase Group и Write Protect Group, смутно понимаю
для чего они и можно ли писать и читать по их адресам или это служебная область?
Еще интересно, кто как высчитывает размер карты и оставшееся свободное место?
Про регистр CSD знаю, он у меня почему-то читается в 18 байт, а не в 16...
Может у кого есть более подробное описание к MMC или SD картам?
Или ссылки какие...
Премного благодарен за ответы!
smile.gif

Сообщение отредактировал Andrew_KMR - Jan 25 2008, 10:29
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jan 25 2008, 10:54
Сообщение #533


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Andrew_KMR @ Jan 25 2008, 13:26) *
Спасибо!
С адресацией разобрался!
Толь вот еще есть Erase Group и Write Protect Group, смутно понимаю
для чего они и можно ли писать и читать по их адресам или это служебная область?
Еще интересно, кто как высчитывает размер карты и оставшееся свободное место?
Про регистр CSD знаю, он у меня почему-то читается в 18 байт, а не в 16...
Может у кого есть более подробное описание к MMC или SD картам?
Или ссылки какие...
Премного благодарен за ответы!
smile.gif

Работа с MMC|SD описана у elm-chan. Там же есть файловая система, простая быстрая и непрожорливая. Без файловой системы карточка это большая свалка битов/байтов/килобайтов...
http://elm-chan.org/fsw/ff/00index_e.html
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Jan 30 2008, 13:35
Сообщение #534


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



смотрю библиотеки выложенные в форуме и во многих написано такое (в процедуре стирания экрана):
Код
ldi     r24,0x09
    rcall   lcd_wrcmd
    ldi     r24,0x84
    rcall   lcd_wrcmd
    
    ldi     r24,0x0B
    rcall   lcd_wrcmd
    ldi     r24,0xB0
    rcall   lcd_wrcmd
    
//передаём 0xFF  0xB6B1 раз(если кол-во раз равно 0xB580,как по Using_the_Siemens_S65.pdf,экран заполняется не полностью??)

однако почему-то выводя фонт 8 на 14 задают х=7 а у=13 а тут задают 132 и 176... 07.gif
Экран очищается полностью - просто нужно 131 и 175 задавать и не слать несколько лишних сот байт. (что тоже занимает пусть немного, но времени при стирании экрана).
p.s. может кто подскажет какой-нибудь заоптимизированный на скокрость алгоритм софтварного SPI ? help.gif
Go to the top of the page
 
+Quote Post
Зверюга
сообщение Feb 3 2008, 13:26
Сообщение #535


Местный
***

Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563



Господа, а как насчет FPS?
Я пока никаких сложных картинок не выводил на дисплей, а FPS измерял очищая экран. У меня получилось 10.

Работаю с ATmega32 на частоте 16 МГц, SPI настроен так:

SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
SPSR = (1<<SPI2X);

Причем, когда убираю флаг двойной скорости SPI и когда ставлю его, скорость не меняется. Может что-то с SPI намудрено?

Кто до скольки разгонял?
Go to the top of the page
 
+Quote Post
Andrew_KMR
сообщение Feb 3 2008, 22:30
Сообщение #536


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 11-12-07
Из: г.Кемерово
Пользователь №: 33 175



Возникла идея!
Если нет осцилографа, а нужно посмотреть обмен данными по SPI, использовать MMC
как промежуточный буфер. Ведь скорость у MMC до 25МГц! smile.gif
Выдаем команду на запись блока и переключаем карту на изучаемое устройство, после
записи 512 байт увидим занятость карты после чего прочтем данные.
Правда паузы между посылками не увидим...
Как думаете, прокатит такой вариант, скажем для изучения нового дисплея?
Чтобы хоть инициализацию выловить.
Go to the top of the page
 
+Quote Post
InvisibleFed
сообщение Feb 4 2008, 00:22
Сообщение #537


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Вопрос по LCD (хоть и не сименс). Заметил, что многие современные телефоны то Nokia имеют LCD с почти одинаковым интерфейсом (не SPI). Причем это не зависит от разрешения и количества цветов. Вот, например.
Дана распиновка, а описание интерфейса я так и не нашел. Точно такой же интерфейс используется в более современных N71, N73, N93 с 240x320 TFT, и еще в куче нокий. Что за зверь? С чем его едят? Найти доку на оглашенный там Epson тоже не удалось.
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Feb 4 2008, 12:18
Сообщение #538


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



Судя по картинке обыкновенный паралельный интерфейс (8 линий данных, выбор команда/данные, сброс, чтение/запись и тд), а вот что там за команды должны бегать - знает производитель этого контроллера и спецы из НОКИЯ (и делиться обычно никто не хочет этой информацией).
Поэтому либо искать по инету - может где найдется даташит, или цеплять снифер на дисплей в телефоне и разбираться.

Сообщение отредактировал Cyber_RAT - Feb 4 2008, 12:18
Go to the top of the page
 
+Quote Post
InvisibleFed
сообщение Feb 4 2008, 12:27
Сообщение #539


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Хорошо, коды команд я допустим не знаю, но сам принцип обмена? когда подавать команды, когда данные? Пример есть может от известного LCD?
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение Feb 5 2008, 06:35
Сообщение #540


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



Об этом и написано в даташите на этот контроллер... а если не важно для какого LCD посмотрите на сайте МЭЛТ-а у них примеры инициализации и работы с их ЖКИ есть прямо на сайте.
вот например ЖКИ 128х64 точки
http://www.gaw.ru/html.cgi/txt/lcd/lcm/mel...f/MT-12864J.htm
Go to the top of the page
 
+Quote Post

87 страниц V  « < 34 35 36 37 38 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st August 2025 - 21:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01483 секунд с 7
ELECTRONIX ©2004-2016