|
Помогите продумать архитектуру проекта на ARM7 |
|
|
|
Feb 7 2009, 05:14
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Господа, подскажите в какую сторону двигаться, а то я как от Иван перед камнем- направо пойдешь... налево пойдешь...
Задача следующая - необходимо с ARM7 контроллера гнать данные на DM164 (драйвер полноцветных светодиодов) со скоростью 1,5 Мбайт/сек. Само устройство - долго объяснять его принцип работы, да и заказчик пожелал особо не распространяться о деталях, в общем, представьте себе что это видеоэкран из RGB светодиодов размерами 40х240 штук. Данные должны читаться с SD карты с FAT16.
Возможно два варианта: читается блок 57600 байт (28800 по 16 бит) и гоняется 30 раз в секунду, либо непрерывно читается поток данных состоящих из блоков того же размера, 30 раз в секунду. Для првого варианта соответственно есть два подварианта - каждый раз читать его с флешки, либо один раз загнать в память, после чего циклически передавать по SPI.
Я мало разбираюсь в видеосистемах, но подозреваю что без RAM не обойтись. По крайней мере видел как люди, пытавшиеся запустить экран от мобильного телефона организовывали буфера из памяти, в одни грузили, из другого выводили, что существенно повышало быстродействие.
Учитывая вышеизложенное возможно несколько вариантов:
1. Попроще - максимально адаптировать содержимое файла, чтобы гнать из него информацию сразу на драйвер. Т.Е. карта и драйвер сидят на одном SPI, контроллер обращается к карте, инициирует чтение данных, а перед собственно чтением включает CS на драйвере и данные идут минуя контроллер. Сам контроллер конечно следит за процессом, проверят периодически состояние кнопок и пр. Но чует мое сердце, что есть подвох в этой простоте и без RAM не обойтись. С использованием RAM тоже несколько вариантов.
2. Взять контроллер потолще - с 64 кб RAM. 57600 используем под данные, остальные 6кб на посторонние нужды - за глаза. Разбить ее на блоки по 240 байт, блок передали, записали с флешки новый, читаем следующий блок и т.д. Однако в этом случае придется в два раза повысить скорость чтения данных, т.е. 3 мБайт/сек, а максимальная частота драйвера DM164 всего 25 Мгц. Не получится.
3. Взять простой контроллер и использовать внешнюю RAM. Однако мне все равно не совсем понятно, даже если организовать две страницы видеопамяти, как с ними работать - если надо передавать допусти 100 байт в секунду, то ведь их одновременно надо читать, не понадобится ли удвоение скорости чтения и передачи?
4. Взять контроллер их серии SE - там вообще мед - встроенный интерфейс под внешнюю RAM под внешнюю FLASH, в описании сказано, что скорость обмена данными благодаря этому чуть ли не в 5 раз больше. Однако нужен ли такой навороченный камень?
В общем, кто что скажет, какие во всем этом есть подводные камни, проверенные способы, может обойтись первым вариантом? Только не предлагайте ПЛИС, мне и так ARM7 с нуля осваивать.
Спасибо.
|
|
|
|
|
 |
Ответов
(1 - 73)
|
Feb 7 2009, 09:36
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Можно еще использовать DMA канал. Настраиваешь канал от SPI до регистра(буфера) откуда выводишь. При получении данных с карты они автоматом будут грузиться в буфер(регистр). Это не полное решение, конечно. Все зависит от железа. Из сообщения не ясно зачем такая скорость вывода на таком экранчике с малым разрешением...
|
|
|
|
|
Feb 7 2009, 12:28
|

Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 28-07-07
Из: Кишинев
Пользователь №: 29 434

|
Как будто препятствий не видно Один процесс последовательно вычитывает с SD карты (скорей всего по частям, ну например 1/4) буфер фрейма, а второй гонит его в SPI по DMA. для получения 30 фреймов (при 16 битах на 1 LED), по SPI нужна будет скорость 240*40*3*16*30 фреймов = 13,824 Мбит. Двух буферов иметь не надо, фактически промежуточный буфер находиться в DM164. После передачи всего фрейма защелкиваем его (т.е перегружаем в DM164 из сдвигового регистра в пар.) и пошли выводить следующий. Цитата(Зверюга @ Feb 7 2009, 07:14)  ... мне и так ARM7 с нуля осваивать. ИМХО тогда уж обратите внимание на CORTEX M3 от ST. Гораздо получше, да и перспективнее.
|
|
|
|
|
Feb 7 2009, 13:06
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Я все таки не понял про одновременность. По идее чтобы не только прочитать но и отправить нужно вдвое больше процессорного времени. В ARM7 есть многозадачность? Нельзя ли по подробней про SPI с DMA. DMA есть во всех ARM7? Цитата сдвигового регистра в пар.) Что такое "пар." ? И поподробней, что вы подразумеваете, говоря что промежуточный буфер находится в DM164? Цитата Настраиваешь канал от SPI до регистра(буфера) откуда выводишь В этом случае карта и драйвер светодиода будут сидеть на разных линиях? И еще... возможно я не совсем правильно понял принцип работы DM164 - ее можно включить в 8-битный режим? И еще... возможно я не совсем правильно понял принцип работы DM164 - ее можно включить в 8-битный режим?
|
|
|
|
|
Feb 7 2009, 15:02
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Чтобы брать непрерывно и без задержек из SD карты Кстати, забыл написать - готов заменить SD карту какой-нибудь не слишком дорогой DataFlash мегов этак на 256.
|
|
|
|
|
Feb 7 2009, 18:07
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Кстати, по поводу тех кто писал про низкую скорость - вот здесь http://kazus.ru/lenta/view/0_6566_0.html написано, что контроллеры серии SE могут передавать по SPI до 25 Мбит/сек. Прокомментируйте. Никто так и не высказался по поводу варианта "1" предложенного мной в первом посте. Сгородить что-то вроде програмного SPI, который будет обращаться к карте, давать ей команду передавать данные по линии идущей в драйвер, соответственно, управляя при этом его ногами. То есть сам SPI не будет задействован, ибо нет необходимости передавать данные в регистр, читать и изменять регистры, проверять флаги. Если уж сильно нужно будет, откажусь от FAT и придумаю что-нибудь попроще. Надеюсь вы поняли суть идеи. Лично я не вижу каких-либо препятствий.
|
|
|
|
|
Feb 7 2009, 18:15
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 7 2009, 21:07)  написано, что контроллеры серии SE могут передавать по SPI до 25 Мбит/сек. Могут, так же как S и X. Но это предел. Цитата(Зверюга @ Feb 7 2009, 21:07)  Сгородить что-то вроде програмного SPI, который будет обращаться к карте, давать ей команду передавать данные по линии идущей в драйвер, соответственно, управляя при этом его ногами. Лично я не вижу каких-либо препятствий. Будет дикий тормоз. Возьмите лучше контроллер с двумя аппаратными SPI. Еще нужно учитывать, что карта имеет свои тормоза, и читать с нее непрерывный поток без буферизации не получится.
|
|
|
|
|
Feb 7 2009, 18:36
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Будет дикий тормоз. Почему? Объясните не беря в расчет тормозов sd карты. Ох... думал-думал и неожиданно понял: а ведь мне FAT то и не нужна. Карта, куда для удобства будут записываться файлы не будет вставляться в девайс. Она будет вставляться в девайс, с которого одна и та же информация будет переписыаваться в несколько устройств и уже с них читатьсяПосему пересматриваю техзадание: - FAT не нужна. Формат придумаю сам. - рассмотрю в качестве памяти любой вариант типа DataFlash, NAND flash, который по своей сути даст наибольшее удобство и быстродействие. По поводу непрерывности. Можете ли вы выразить в секундах, тактах, в процентах от общего времени те задержки, которые будет давать DS карта? Цитата Возьмите лучше контроллер с двумя аппаратными SPI. Если я не ошибаюсь, то это X серии и все ARM9 ? Два SPI могут работать с одним и тем же потоком данных одновременно? Скорость выхода данных будет равна скорости их непрерывного поступления? Я правильно понял?
|
|
|
|
|
Feb 7 2009, 18:42
|

Частый гость
 
Группа: Свой
Сообщений: 81
Регистрация: 28-07-07
Из: Кишинев
Пользователь №: 29 434

|
Цитата(AlexandrY @ Feb 7 2009, 15:55)  Чета не увидел возможности прицепить DM164 к SPI. Нужен как минимум синхронный постоянный глобальный клок и стробирующие загрузку каждого чипа DM164 импульсы помимо битового клока и данных. Да вроде глобальный клок и не должен быть синхронным. Что касается загрузки, то после выдачи всех данных для всех DM164 выставляется общий строб загрузки (программно). Цитата сдвигового регистра в пар.) пар. = параллельный (поленился однако сразу написать) у DM164 есть сдвиговый регистр (shift reg), а в параллельный (data latch) данные попадают токо после подачи строба загрузки (LTH). Цитата DMA есть во всех ARM7? DMA есть не во всех ARM, но Вам надо тот который имеет DMA.
Сообщение отредактировал Шурила - Feb 7 2009, 18:43
|
|
|
|
|
Feb 7 2009, 18:43
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 7 2009, 21:36)  По поводу непрерывности. Можете ли вы выразить в секундах, тактах, в процентах от общего времени те задержки, которые будет давать DS карта? Параметр индивидуален для каждой карты, записан в CSD. Достаточно, чтобы создать проблемы при отсутствии буферизации. Цитата(Зверюга @ Feb 7 2009, 21:36)  Если я не ошибаюсь, то это X серии и все ARM9 ? X, ARM7. Цитата(Зверюга @ Feb 7 2009, 21:36)  Два SPI могут работать с одним и тем же потоком данных одновременно? Скорость выхода данных будет равна скорости их непрерывного поступления? Я правильно понял? Работать будут с чем скажете. По поводу скорости вопроса не понял.
|
|
|
|
|
Feb 7 2009, 19:08
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
aaarrr Цитата Работать будут с чем скажете. По поводу скорости вопроса не понял. Ну попытайтесь понять мои ламерские объяснения. Весьма условно: вот я передаю данные - скорость SPI равна CLK/2 . 16 тактов - 1 байт. А если контроллер принимает и передает информацию, то он должен за 16 тактов принять байт, записать его в свой регистр, потом за следующие 16 тактов второй SPI должен передать этот байт, в итоге 2кратное снижение скорости. Если думаешь как это сделать транзитно, то невольно приходишь к мысли, а не заменить ли контроллер проводом? Тут бит появился, там его тут же приняли. Задача контроллера только организовывать сеанс сязи и тактировать его. Какие же при этом будут тормоза? Цитата Параметр индивидуален для каждой карты, записан в CSD Можно ли из DataFlash, NAND flash по одному проводу непрерывно без тормозов считывать данные и передавать их прямо в драйвер? Контроллер будет только дергать CS и другими управляющими ножками памяти и драйвера. Что ж все упорно игнорируют и не желают комментировать этот вариант?Если я неграмотно выражаюсь, то вот как то же самое предложила сделать ваша коллега http://electronix.ru/forum/index.php?showt...st&p=506002 Обещает 10 Мбит/с для AVR. Там же мне советуют просто взять ARM и ни в чем себе не отказывать. А тут оказывается и ARM маловато.
|
|
|
|
|
Feb 7 2009, 19:47
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Идея ваша просто очень дикая. Сами SD карты и NAND флеши представляют из себя гемор высшей пробы. В SD картах в самих стоит контроллер которому пофиг че вы от него хотите, он может неожиданно тормознуть на чтении любого сектора если решит что там у него чета не в порядке. Т.е. неприятный фликер у вас на экране гарантирован хоть FAT хоть не FAT в карте будет. NAND-ы же и все что на их основе гарантированно всегда имеют битые сектора, которые имеют тенденцию размножаться. Без контроля ошибок читать из NAND-ов можно позволить только в любительских некоммерческих дивайсах. Если у вас такой, то дерзайте. Еще вижу проблему, что управление памятью на NAND и SD ведется посредством двунаправленного обмена. На передачу пакета нужно дать команду. Если предполагается делать хитрые коммутации чипселектов с целью юзать один SPI порт то надо помнить, что коммутация пинов у ARM-ов производится медленнее чем у AVR и недетерминировано. Цитата(Зверюга @ Feb 7 2009, 21:08)  Можно ли из DataFlash, NAND flash по одному проводу непрерывно без тормозов считывать данные и передавать их прямо в драйвер? Контроллер будет только дергать CS и другими управляющими ножками памяти и драйвера. Что ж все упорно игнорируют и не желают комментировать этот вариант?
|
|
|
|
|
Feb 7 2009, 20:26
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Каким же тогда образом без фликеров осуществляется ну хотя бы проигрыш МР3 шки или видеофайла с флешки? Чтение на скорости превышающей скорость проигрывания и последующая буферизация? Ладно, я тут еще немного подумал - видеофильмы крутить на экране нужды нет, будет максимум кадров 100. Что скажете насчет внешней SRAM емокстью около 5 Мбайт и достаточной скоростью и относительно невысокой ценой? Цитата Если предполагается делать хитрые коммутации чипселектов с целью юзать один SPI порт то надо помнить, что коммутация пинов у ARM-ов производится медленнее чем у AVR и недетерминировано. ну... если не обрабатывать данные, тогда и AVR справится ))) Еще одна безумная идея- может быть поставить две SRAM по 56 кбайт, в одну грузить данные - напрямую, тактирую и контроллируя процесс контроллером, либо поставить какой нибудь кастрированный AVR для загрузки из Flash в SRAM, из другой в то же время читать, контроллируя процесс тем же образом . Потом менять местами. Надежная защита от фликеров.
|
|
|
|
|
Feb 8 2009, 06:17
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата На самом деле Вам нужен не очень скоростной контроллер, но с быстрым SPI, нормальным контроллером SD и достаточно большим количеством памяти Подсказать что-нибудь можете? Быстрый SPI это сколько? А то ведь в ARM7 вроде как и на 30 МГц можно работать. Контроллер SD - помоему он только в ARM9 появляется. Цитата Можно ли из DataFlash, NAND flash по одному проводу непрерывно без тормозов А как же пост #13 Александра? Кому верить? Так и не услышал комментариевна вот это: Цитата Весьма условно: вот я передаю данные - скорость SPI равна CLK/2 . 16 тактов - 1 байт. А если контроллер принимает и передает информацию, то он должен за 16 тактов принять байт, записать его в свой регистр, потом за следующие 16 тактов второй SPI должен передать этот байт, в итоге 2кратное снижение скорости. Если думаешь как это сделать транзитно, то невольно приходишь к мысли, а не заменить ли контроллер проводом? Тут бит появился, там его тут же приняли. Задача контроллера только организовывать сеанс сязи и тактировать его. Какие же при этом будут тормоза? И если все-таки использовать SD, то какой скорости чтения с использованием FAT и SPI режима на частоте контроллера 60МГц можно добиться? Если она превышает 15 МБит/c то может действительно добавить SRAM и буферизовать? Вот нашел бенчмарк прадва для LPC - там с SD карты чуть ли не 7 Мбайт/сек читается. Как?
|
|
|
|
|
Feb 8 2009, 08:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата с SD карты чуть ли не 7 Мбайт/сек читается. Как? Вам же внятно сказали, что контроллер карты (внутри который) отдаёт данные достаточно быстро, но когда ему нужно спокойненько сообщает, что занят и продолжает заниматься своими делами. В спецификации на SD v2 (SDHC) (файл с sdcard.org Simplified_Physical_Layer_Spec.pdf) указаны размеры AU - Table 4-41: Maximum AU size, а далее в рамочке примечание и там есть - The host should use the maximum AU Size (4 MB) to determine host buffer size. Делаю вывод - обеспечение заявляемых скоростей учитывает наличие буфера у хост-контроллера. Тут тоже бенчмарки http://www.embedded-os.de/index.html?pcfat_port.htm
--------------------
aka Vit
|
|
|
|
|
Feb 8 2009, 12:08
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Вам же внятно сказали Нет, мне сказали невнятно. Ибо я спрашивал потом, какова длительность этих тормозов карты, в секундах, в тактах, в проценте процессорного времени - мне не ответили, хотя чувствуется, что люди зна.т об этом явно не из мануалов, а из собственного опыта. И самое главное - итоговая средняя скорость чтения превысит требуемые 1,5 мБайт/сек? Если да, тогда мне надо делать буфер. Опять таки, мне тут уже два раза писали про буферизацию. Что есть буферизация? Это чтение данных из карты в буфер "впрок" на более высокой скорости с последующе передачей их из буфера на номинальной скорости, пока карта тормозит? Я правильно понял? Тогда с учетом практических факторов - упомянутых "длительности тормозов карты, в секундах, в тактах, в проценте процессорного времени" каков объем буфера должен быть? На чем его организовать, может использовать внешнюю SRAM? Нельзя ли использовать 2 или 4 флешки, и читать из них данные параллельно? Типа как RAID 0? Если все предложенные мной варианты несостоятельны, то что предложили бы вы? Ведь задача решаема, и наверняка отнюдь не за счет мощного процессора, ведь как я уже понял, все упирается в недостатки карт памяти. aaarrr, вы как специалист по драйверам светодиодов, скажите, а может быть мне для моей задачи стоит ограничиться 8 битами? Я слаб в английском, так и не понял, в младшем брате DM164 - DM163 можно пользоваться только 8-битным банком, а 6-ти битный запрограммировать 1 раз и не трогать? Мне бы хотя бы в 2 раза урезать скорость данных. http://www.gaw.ru/html.cgi/txt/publ/memory/nand.htmВ описании сказано что там есть буфер.Так какого же еще буфера для этой системы надо?
|
|
|
|
|
Feb 8 2009, 20:16
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Хм, работа по исследованию характеристик скорости чтения из разных SD карт в зависимости от разных условий может оказаться дороже всего вашего проекта. Скажем было такое наблюдение: у SanDisk вариации времени чтения на файлах одинаковой длины могут достигать 30%, а у Kingston - 4% Но это как нарвешься. Чем более изношенная карта, тем сильнее вариации. Вам надо иметь как минимум 2-а буфера вмещающих целые кадры на внешней RAM А лучше делать адаптивную буфферизацию, как только фиксируется нехватка данных на вывод сразу увеличивать количество буферов. Если взять ARM с 2-я SPI и грузить экран через оба SPI, то проблем с недостаточной скоростью загрузки можно избежать. С SD картами лучше работать через специализированный 4-х битный интерфейс. Вам бы подошел STM32F103xE. Там аж 3-и SPI по 18 МГц, т.е. 54 Mbit/s в сумме . Есть интерфейсы и к SD карте и к NAND и к PSRAM Только надо проверить мультиплексирование пинов, а то не всякая конфигурация может оказаться реализуемой. Может внешняя RAM и не понадобится, у STM32 неплохая шинная матрица и потоки из NAND и SPI как бы могут пересылаться напрямую по DMA минуя шину инструкций. Цитата(Зверюга @ Feb 8 2009, 14:08)  Нет, мне сказали невнятно. Ибо я спрашивал потом, какова длительность этих тормозов карты, в секундах, в тактах, в проценте процессорного времени - мне не ответили, хотя чувствуется, что люди зна.т об этом явно не из мануалов, а из собственного опыта. И самое главное - итоговая средняя скорость чтения превысит требуемые 1,5 мБайт/сек? Если да, тогда мне надо делать буфер.
Опять таки, мне тут уже два раза писали про буферизацию. Что есть буферизация? Это чтение данных из карты в буфер "впрок" на более высокой скорости с последующе передачей их из буфера на номинальной скорости, пока карта тормозит? Я правильно понял? Тогда с учетом практических факторов - упомянутых "длительности тормозов карты, в секундах, в тактах, в проценте процессорного времени" каков объем буфера должен быть? На чем его организовать, может использовать внешнюю SRAM?
|
|
|
|
|
Feb 9 2009, 06:05
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Если взять ARM с 2-я SPI и грузить экран через оба SPI, то проблем с недостаточной скоростью загрузки можно избежать. Так ведь проблема не в скорости передачи данных из контроллера в экран, а в загрузке данных из флешки в контроллер или буфер. Собственно, грузить экран можно и дерганьем ног, а 2 SPI использовать для загрузки буферов. Вот только мне непонятна архитектура их буфера, 2х-SPI и одной sd карты. Был бы благодарен за объяснение на пальцах или в виде схемки. Цитата Вам бы подошел STM32F103xE. Там аж 3-и SPI по 18 МГц, т.е. 54 Mbit/s в сумме . Есть интерфейсы и к SD карте и к NAND и к PSRAM через efind.ru не нашел его цены. Работает ли он с SD картами в SD режиме? В принципе я готов поставить две или три NAND flash и грузить буфер из них, если это возможно. Как тогда организовать буфер? Я не имею опыта в создании таких схем. Цитата Может внешняя RAM и не понадобится, у STM32 неплохая шинная матрица и потоки из NAND и SPI как бы могут пересылаться напрямую по DMA минуя шину инструкций. Простите мне мою тупость, но я понял ситуацию так: проблема не со скоростью контроллера, а с непостоянной скоростью загрузки данных из карты. Стало быть, нужно грузить из карты в буфер SRAM, с максимальной скоростью, превышающей скорость отдачи данных из буфера. И если средняя скорость загрузки данных из карты будет выше, то все получится. Либо писать данные в две флешки и грузить из их одновременно в буфер. Нет.. я все-таки теряюсь в догадках, нужна структурная схемка того что вы предлагаете, ибо почти все что пишется можно понять двояко. Извините за назойливость.
|
|
|
|
|
Feb 9 2009, 08:51
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Зверюга @ Feb 9 2009, 09:05)  ... Извините за назойливость. Ага, именно это качество Вы демонстрируете :-) Примите как данность - с SD картой работать реально со скоростью сотни килобайт в секунду. Сравнение файловых систем где-то было в инете, но я ссылку не сохранил. По моему, где-то тут на форуме в какой-то из тем было. Поставьте внешнюю RAM, SDRAM большого объема, организуйте буфер и забудьте проблему, по сравнению со стоимостью собственно ридеборда, стоимость контроллера стремится нулю. Да и всей электроники по сравнению с механикой
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 10 2009, 08:48
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Слушай , Зверюга! Один мой товарищ делал некий девайс. В нем он выводил звук следующим образом. На DataFlash 8МБит записывал звуковой файл. Потом Давал команду на чтение по SPI и получал данные на сдвиговый регистр на выходе R2R и усилок. Говорил , что работает. Я так понял и ты хочешь что-то подобное, но с матрицей светодиодов?
|
|
|
|
|
Feb 10 2009, 09:01
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
WDT - ну я же расписал выше. Примерно то же самое, но только скорость поболее будет. Выдать 1,5 мбайт/сек наверное проблемы не будет. Проблема даже не в приеме данных, а в том что карта их не будет отдавать с постоянной скоростью, если я правильно понял форумцев. Мне упорно твердят про 2 SPI, но я только никак не могу понять, как через них можно одновременно читать, если карта одна и давать команду на чтение типа SPI_READ придется по очереди, пока один SPI байт не примет, к другому не обратиться.
Что я пока смог себе уяснить - так это то, что буфер заполняется со скоростью большей чем нужно для отдачи информации, что компенсирует провалы в чтении (при условии, что средняя скорость чтения будет выше, я уже отказался от FAT). А вот правильно ли я это понял или нет, мне не говорят. Я готов поставить несколько флешек и читать с них параллельно, до почему-то кажется, что есть более изящные способы.
Может быть проблема в том, что я сам предлагаю какие-то вариант, которые подвергаются критике? Может проще спросить, как сделать?
А заказчик, мой друг и не торопит. Как раз полгода, не менее, было оговорено.
|
|
|
|
|
Feb 10 2009, 09:22
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(Зверюга @ Feb 10 2009, 12:01)  WDT - ну я же расписал выше. Примерно то же самое, но только скорость поболее будет. Выдать 1,5 мбайт/сек наверное проблемы не будет. Проблема даже не в приеме данных, а в том что карта их не будет отдавать с постоянной скоростью, если я правильно понял форумцев. Мне упорно твердят про 2 SPI, но я только никак не могу понять, как через них можно одновременно читать, если карта одна и давать команду на чтение типа SPI_READ придется по очереди, пока один SPI байт не примет, к другому не обратиться.
Что я пока смог себе уяснить - так это то, что буфер заполняется со скоростью большей чем нужно для отдачи информации, что компенсирует провалы в чтении (при условии, что средняя скорость чтения будет выше, я уже отказался от FAT). А вот правильно ли я это понял или нет, мне не говорят. Я готов поставить несколько флешек и читать с них параллельно, до почему-то кажется, что есть более изящные способы.
Может быть проблема в том, что я сам предлагаю какие-то вариант, которые подвергаются критике? Может проще спросить, как сделать?
А заказчик, мой друг и не торопит. Как раз полгода, не менее, было оговорено. Два SPI это два аппаратных SPI... То есть даешь команду на чтение по одному SPI когда он ответит через DMA передастся автоматом в регистр второго SPI. Время и ресурсы экономятся сильно. От FAT отказываться смысла нет -- если блоки(кластеры) данных идут ПОДРЯД, то какая разница... Ты же изначально прочитываешь Главную загрузочную запись, Загрузочную запись раздела, FAT и вычисляешь где данные. Тут мне кажется никто, в том числе и я, не понимают что это за девайс:-))) Сказал бы уж что за хрень такая? Например, непонятно зачем такая скорость при выводе на такой дохленький экранчик(240 на 40)??? Для вывода видео все равно не пойдет, а для вывода информации или каких-то эффектов скорости особой не надо. Тем более ты пользуешься каким-то там драйвером.
|
|
|
|
|
Feb 10 2009, 10:23
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Скорость высокая? Так гр-н Шурила выше все расписал. Цитата по SPI нужна будет скорость 240*40*3*16*30 фреймов = 13,824 Мбит. Уже 50 минут 5 человек смотрят тему и все молчат )))
|
|
|
|
|
Feb 10 2009, 10:43
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 30-11-05
Из: Омск
Пользователь №: 11 590

|
Цитата(WDT @ Feb 10 2009, 13:22)  Тут мне кажется никто, в том числе и я, не понимают что это за девайс:-))) Сказал бы уж что за хрень такая? Что непонятного - бегущая строка
|
|
|
|
|
Feb 10 2009, 11:32
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата Уже 50 минут 5 человек смотрят тему и все молчат ))) Дык ссылал тебя на спецификацию, но, похоже, читать её не досуг. 4.13.6 Speed Class Definition находишь Class 6 на графике Figure 4-9: Three Performance Curves. IMNHO, Цитата 240*40*3*16*30 фреймов = 13,824 Мбит явно больше, чем 6 Мбит.
--------------------
aka Vit
|
|
|
|
|
Feb 10 2009, 11:49
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 10 2009, 11:31)  Да и по поводу памяти - искал информацию по микросхемам чтранные вещи - попадаются микрухи на 1Мбит стоимость по 600-800 рублей, что-то дорого, модуль DDR компьютерный на 256 МБ стоит рублей 200. Статика по определению дороже, а уж в розницу - тем более. Цитата(Зверюга @ Feb 10 2009, 12:01)  Что я пока смог себе уяснить - так это то, что буфер заполняется со скоростью большей чем нужно для отдачи информации, что компенсирует провалы в чтении (при условии, что средняя скорость чтения будет выше, я уже отказался от FAT). А вот правильно ли я это понял или нет, мне не говорят. Правильно поняли. Цитата(Зверюга @ Feb 10 2009, 11:31)  Может быть проблема в том, что я сам предлагаю какие-то вариант, которые подвергаются критике? Может проще спросить, как сделать? Рецепт: - Берем контроллер с аппаратным интерфейсом SD, одним или более SPI, внешней шиной. Добавляем к нему память по вкусу - SRAM, SDRAM etc. - Если есть несколько SPI, можно разделить экран на соответствующее количество частей. - Организуем в памяти 2 буфера размером в экран. Из одного будем разворачивать, во второй в это время загружать данные. - Пишем развертку на SPI, DMA и таймерах. - Организуем здоровый буфер для чтения SD, пишем процедуры его обслуживания. - Пишем процедуру, перебрасывающую данные в буфер экрана из буфера SD. Можно просто положить в памяти кучу буферов размером в экран и заменять указатель для развертки по таймеру, постоянно подгружая из карты данные в освободившиеся буферы.
|
|
|
|
|
Feb 10 2009, 11:53
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Организуем здоровый буфер для чтения SD, пишем процедуры его обслуживания. Но если скорость чтения 6 Мбит/сек, а нам надо 13 Мбит, то каким образом нас спасет буфер? Или же интерфейс SD в контроллере позволяет читать карту в SD режиме?
|
|
|
|
|
Feb 10 2009, 11:55
|
Участник

Группа: Новичок
Сообщений: 57
Регистрация: 7-11-06
Пользователь №: 22 054

|
Цитата явно больше, чем 6 Мбит. Только в спеке указаны не мегабиты, а мегаБАЙТЫ, на сколько я помню НеSDHC обычная карта microSD Toshiba 2GB, которая устанавливается в мои девайсы в тесте выдаёт 19,5МБайт/с чтение, 10,5МБайт/с запись. Максимальная скорость на записи, естественно, развивается при работе с большими блоками, при чтении - аналогично, но со своими особенностями (см. спеку).
|
|
|
|
|
Feb 10 2009, 12:21
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата НеSDHC обычная карта microSD Toshiba 2GB, которая устанавливается в мои девайсы в тесте выдаёт 19,5МБайт/с чтение, 10,5МБайт/с запись. Каким образом устроен обмен данными в Вашем девайсе? 2 Буфера размером в экран и огромный буфер для SD локализуются в одной микросхеме? Цитата Добавляем к нему память по вкусу - SRAM, SDRAM etc Плюсы и минусы предложенных вариантов?. порылся в efind.ru - половина предложений это планки, я так понял, вставляющиеся в слоты компьютера. В остальных случаях непонятно - каков их обхем и организация. Вы бы не могли привести пример доступных SDRAM с ценой и объемом. Если есть возможность достать недорогую микру на 16-32 МБ, я же видеофильмы не собираюсь крутить, мне кадров 500 хватит за глаза. Загружу весь файл и буду до бесконечности читать его из микросхемы.
|
|
|
|
|
Feb 10 2009, 12:26
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 10 2009, 15:21)  Плюсы и минусы предложенных вариантов?. SRAM - просто и дорого, малый объем (но Вам все равно хватит). SDRAM - нужен контроллер. Цитата(Зверюга @ Feb 10 2009, 15:21)  Вы бы не могли привести пример доступных SDRAM с ценой и объемом. Если есть возможность достать недорогую микру на 16-32 МБ, Например, K4S561632 - 32МБайт.
|
|
|
|
|
Feb 10 2009, 14:37
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата Только я нить потерял, автор пишет про многие мегабайты скорости передачи, а размер буфера не пишет, может он хочет неповторяющееся видео гонять бесконечно? Тогда конечно, требуемый размер буфера стремится к бесконечности. Неповторяющееся видео конечно хорошо, но необязательно. В любом случае, даже если анимация будет гоняться через SDRAM, то хотелось бы сократить время ее загрузки с карты.
|
|
|
|
|
Feb 10 2009, 14:42
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 10 2009, 17:37)  В любом случае, даже если анимация будет гоняться через SDRAM, то хотелось бы сократить время ее загрузки с карты. - возьмите контроллер с железным SD. - возьмите быструю SD-карту. - загружайте данные с использованием DMA и команды READ_MULTIPLE_BLOCK. Все, быстрее не будет.
|
|
|
|
|
Feb 10 2009, 14:44
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата А в еще боьлшее число не встроен. Впрочем, это сокращает возможность выбора, что в данном конкретном случае скорее плюс Как раз встроен в SE серию от Атмел. Контроллера SD там нет, если я не ошибаюсь, но зато с SPI и DMA будет 20 Мбит/сек. ПОскольку в свете изменившегос ТЗ, непрерывность загрузки с карты не нужна, то эти 20 мБит/сек, пусть и с провалами устроят. Потихоньку ситуация начинает проясняться, спасибо за советы. Хотя... непрерывное видео было бы конечно не плохо, так сказать для универсальности.
|
|
|
|
|
Feb 10 2009, 14:58
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата возьмите контроллер с железным SD. - возьмите быструю SD-карту. - загружайте данные с использованием DMA и команды READ_MULTIPLE_BLOCK. Спасибо. Погуглить, в каких контроллерах такая начинка есть я могу. ОДнако хотелось бы услышать ваши рекомендации. Все таки желательно чтобы контроллер был распространен, без геморроя в освоении, чтобы информации и примеров по нему в сети было достаточно. А то привык я к ATMEL... Цитата возьмите контроллер с железным SD. - возьмите быструю SD-карту. - загружайте данные с использованием DMA и команды READ_MULTIPLE_BLOCK. А если сделать так, то какую скорость следует ожидать?
|
|
|
|
|
Feb 10 2009, 15:07
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 10 2009, 17:58)  Все таки желательно чтобы контроллер был распространен, без геморроя в освоении, чтобы информации и примеров по нему в сети было достаточно. А то привык я к ATMEL... Я бы, возможно, взял какой-нибудь из ARM9 от того же Атмела. Но назвать это простым решением не могу. Цитата(Зверюга @ Feb 10 2009, 17:58)  А если сделать так, то какую скорость следует ожидать? Предельную для карты. Точной цифры никто не даст, так как все они разные.
|
|
|
|
|
Feb 10 2009, 15:19
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Зверюга @ Feb 10 2009, 18:58)  А если сделать так, то какую скорость следует ожидать? У нас порт efsl на ARM7 через интерфейс SD без DMA дает около 100 килобайт в секунду на коротких файлах. На половине имеющейся SDRAM можно расположить 50 кадров мультфильма разрешения VGA (на 2 секунды). Так что для непрерывного видео требуется другой подход. И он реализован в дешевых китайских видеоплэйерах - с использованием винчестера. Кстати, может лучше сделать адаптер сигналов TFT дисплея в сигналы ридеборда на какой-нить PGA и использовать готовый прибор?
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 10 2009, 18:28
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Чего-то не нашел даташит на этот драйвер DM164...
|
|
|
|
|
Feb 10 2009, 18:47
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Я тут о чем подумал, Зверюга... У меня посветка на RGB диодах в девайсе. Так вот -- диоды через ШИМ работают эффективно только в нижней трети заполнения. То есть если добавлять заполнение ШИМа от нуля, то они сначала быстро становятся яркими, а потом яркость почти не изменяется. Так может не имеет смысла так много разрядов на цвет держать? Может быть вообще достаточно 7-ми цветов +белый? Тогда и памяти на борту хватит и не надо заморачиваться со скоростями. Ну например 240*40*(4бит цветности). Еще можно использовать палитру. То есть , в память на место пикселя записывать указатель на цвет в палитре. Тогда получится 240*40*8бит(256 цветов). Я думаю больше и не надо. А то поставил себе какую-то сверх задачу...
|
|
|
|
|
Feb 10 2009, 19:45
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Цитата(WDT @ Feb 10 2009, 21:28)  Чего-то не нашел даташит на этот драйвер DM164... вот http://www.e-neon.ru/catalog/id/3291275#3291275WDTДа я давно думал, как бы перевести драйвер в 8-битный режим. Да вот беда не переводится. МОжно конечно писать 8-ми битный файл, а "левые" биты сочинять на ходу - но на сколько при этом увеличится процессорное время... Впрочем это надо обдумать. 8 бит - 16 000 000 цветов - за глаза, плюс, при таком маленьком разрешении эти полутона просто не будут востребованы. Я понимаю, если на 1600 точек растянуть от 000000 до 0000FF, а на 240... В тоже время выигрыш всего в два раза. То есть если не изобретать, даже с 8 битами не успеем. А если изобретем, то и 16 потянем. WDTДа я давно думал, как бы перевести драйвер в 8-битный режим. Да вот беда не переводится. МОжно конечно писать 8-ми битный файл, а "левые" биты сочинять на ходу - но на сколько при этом увеличится процессорное время... Впрочем это надо обдумать. 8 бит - 16 000 000 цветов - за глаза, плюс, при таком маленьком разрешении эти полутона просто не будут востребованы. Я понимаю, если на 1600 точек растянуть от 000000 до 0000FF, а на 240... В тоже время выигрыш всего в два раза. То есть если не изобретать, даже с 8 битами не успеем. А если изобретем, то и 16 потянем. Хм.... я тут прикинул - а ведь ничего переводить не надо - просто в драйвер посылать первые 8 бит, остальные 8 тактов пусть драйвер думает, что ему шлют информацию, а информация будет - нули. ПРи этом цвет будет тот же, правда урезаный до 8 бит. То есть 50% времени мы занимаемся благими делами. Итак, ТЗ снова меняется. Надо всего 650 кбайт/сек.
|
|
|
|
|
Feb 11 2009, 01:55
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(WDT @ Feb 10 2009, 23:47)  Так вот -- диоды через ШИМ работают эффективно только в нижней трети заполнения. То есть если добавлять заполнение ШИМа от нуля, то они сначала быстро становятся яркими, а потом яркость почти не изменяется. Это видимый эффект. Интенсивность свечения СИД прямо пропорциональна среднему току, протекающему через него. А вот у человеческого глаза логарифмическая чувствительность к яркости объекта, что следует учитывать при регулировке.
|
|
|
|
|
Feb 11 2009, 03:57
|
Местный
  
Группа: Свой
Сообщений: 413
Регистрация: 15-12-06
Пользователь №: 23 563

|
Качественного видео не надо. В лучшем случае картинка как в анимированном баннере. С резкими переходами цвета, оляпистая. Цитата Господа, а может стоит подумать об упаковке кадров каким нибудь методом класса LZ (не LZW)? Все хорошо, но обычно архивация преназначена для уменьшения общего объема хранения данных. А представьте себе картинку такого пискельного состава, который сжимается плохо. Будут неприятные сюрпирзы. Особенно если в момент чтения такого кадра карта затормозит. Если я не прав, поправьте меня.
|
|
|
|
|
Feb 11 2009, 05:48
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(aaarrr @ Feb 11 2009, 00:07)  8 бит - это очень мало, особенно для видео (не знаю, что у Вас). Для получения более-менее качественной картинки нужно вводить гамма-коррекцию и использовать минимум 10 бит ШИМ. Да какое видео на такой разрешаловке... А насчет восьми бит -- на светодиодах больше и не получишь. Вот взяли допустим 10 бит шим -- 1024 единицы. Изменение яркости на 10 единиц вряд ли отличишь. Так зачем такой ШИМ? Я ж писал выше--характеристика яркости светодиодов нехорошая и по цветам отличается сильно(я так понял это о гамма коррекции?). Есть небольшой примерчик. Насчет градаций. У меня есть индикатор OLED 256x64 16 GrayScale. У него на пиксел идет 4 бита. Преобразуешь bmp в LCD Icon Color и выводишь. Совсем неплохо смотрится с 16-ю градациями. Посмотрел драйвер 164. Это ж сколько надо таких драйверов, офигеть просто... Нафиг такая штука нужна. Надо другой драйвер искать. Например драйвер индикатора какого-то. Цитата(rezident @ Feb 11 2009, 04:55)  Это видимый эффект. Интенсивность свечения СИД прямо пропорциональна среднему току, протекающему через него. А вот у человеческого глаза логарифмическая чувствительность к яркости объекта, что следует учитывать при регулировке. Вы все правильно сказали. Только еще есть вольтамперная характеристика и она не линейная. То есть при изменении напряжения ток меняется НЕЛИНЕЙНО... Поэтому и яркость будет нелинейная. Поправьте , если я ошибаюсь... + к этому еще и восприятие глаза, в том числе и к разным спектрам излучения. Дело в том , что это все уже давно проверено. Я частенько использую RGB подсветку и добиться на этой подсветке нормальных цветов надо попотеть. Я тоже поначалу начал делать кучу цветов, а потом скатился на 32 всего.
Сообщение отредактировал WDT - Feb 11 2009, 05:53
|
|
|
|
|
Feb 11 2009, 07:15
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(Dog Pawlowa @ Feb 11 2009, 09:49)  Пример не совсем тот, драйвера не те, но нафиг говорить "нафиг"
Пример не совсем тот? Насколько соответствует конструкция на фото "техзаданию" Зверюги? Может у Вас там матрица из одноцветных диодов с общей регулировкой яркости? Так ведь это на 51-м делается спокойно. Хотя если сканировать матрицу, то получится следующее. На 8 горизонтальных линий один драйвер. То есть получается 5 драйверов на 40линий. На каждом выходе драйверов тогда надо еще приделать что-то мощное, поскольку выход 90мА всего. Вертикальных линий 240 -- 48 шт. сдвиговых регистров с транзистором на выходе(это навскидку) . Во получается конструкция... А тут еще неясная "ситуевина" со скоростью вывода. Возможно и другое решение есть. Да еще и проблемы с питанием будут -- блок питания довольно мощный надо.
Сообщение отредактировал WDT - Feb 11 2009, 07:17
|
|
|
|
|
Feb 11 2009, 07:52
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(WDT @ Feb 11 2009, 11:15)  Может у Вас там матрица из одноцветных диодов с общей регулировкой яркости? Так ведь это на 51-м делается спокойно. Ага, еще можно тумблером. Включил-выключил. Тут о видео что-то говорили, не так ли? Скорость смены картинок, объем информации, проч... Да, это одноцветное табло, и контроллер у него на 51. С маааленькой такой FPGA Табло не мое, естественно.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 11 2009, 08:24
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(Dog Pawlowa @ Feb 11 2009, 10:52)  Ага, еще можно тумблером. Включил-выключил. Тут о видео что-то говорили, не так ли? Скорость смены картинок, объем информации, проч... Да, это одноцветное табло, и контроллер у него на 51. С маааленькой такой FPGA Табло не мое, естественно. Так вот эта одноцветность и влияет... А насчет FPGA -- так это ж дело вкуса :-))) Какая скорость смены картинки у Вашего табло? Какой размер? Может в Вашей панели аппаратный контроллер с кучей памяти. Данных-то нет... У нас в электронном магазине висит бегущая строка -- на меге с 595-ми регистрами. Тож хорошо крутит.:-))) Возьмите панел Зверюги(уж больно нравится мне имя)))). Если нет цветов. 240х40. С одной стороны ШИМ. При вертикальном сканировании 240 раз за 1/30 сек (один кадр). У нас же 30 кадров в сек? Время потратишь примерно 138 мкс. Может еще на чего немного уйдет, но вполне достаточно для нешибко быстрого проца. А у Вас еще и панель небось поменьше?
Сообщение отредактировал WDT - Feb 11 2009, 08:25
|
|
|
|
|
Feb 11 2009, 08:38
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(WDT @ Feb 11 2009, 11:24)  Может в Вашей панели аппаратный контроллер с кучей памяти. Данных-то нет... Объясняю еще раз. В панели драйверы светодиодов, включенные последовательно, и собственно светодиоды. Фото выложено. Больше там ничего нет. Контроллер имеет память, и средства доступа к ней помимо процессора. В моем примере - 51+SRAM+FPGA, у автора темы - ARM7 + SDRAM + встроенный в ARM DMA как средство доступа к памяти помимо процессора. По моему убеждению, это современный уровень проектирования табло. Все эти динамические индикации, отдельные панели с микроконтроллерами - любительщина. На абсолютную правоту не претендую. Спор продолжать не хотелось бы, поскольку он отошел от темы применения ARM.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 11 2009, 09:03
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(Dog Pawlowa @ Feb 11 2009, 11:38)  Объясняю еще раз. В панели драйверы светодиодов, включенные последовательно, и собственно светодиоды. Фото выложено. Больше там ничего нет. Контроллер имеет память, и средства доступа к ней помимо процессора. В моем примере - 51+SRAM+FPGA, у автора темы - ARM7 + SDRAM + встроенный в ARM DMA как средство доступа к памяти помимо процессора.
По моему убеждению, это современный уровень проектирования табло. Все эти динамические индикации, отдельные панели с микроконтроллерами - любительщина. На абсолютную правоту не претендую. Спор продолжать не хотелось бы, поскольку он отошел от темы применения ARM. Да я ж и не спорю... Всякий человек может иметь свое мнение насчет современного уровня и любительщины.
|
|
|
|
|
Feb 11 2009, 11:32
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(WDT @ Feb 11 2009, 08:48)  А насчет восьми бит -- на светодиодах больше и не получишь. Вот взяли допустим 10 бит шим -- 1024 единицы. Изменение яркости на 10 единиц вряд ли отличишь. Так зачем такой ШИМ? С десятибитным ШИМ'ом изменение даже на одну единицу внизу диапазона очень хорошо заметно. Цитата(WDT @ Feb 11 2009, 08:48)  Есть небольшой примерчик. Насчет градаций. У меня есть индикатор OLED 256x64 16 GrayScale. У него на пиксел идет 4 бита. Преобразуешь bmp в LCD Icon Color и выводишь. Совсем неплохо смотрится с 16-ю градациями. Неплохо - понятие весьма расплывчатое и субъективное, не находите? Цитата(WDT @ Feb 11 2009, 08:48)  Вы все правильно сказали. Только еще есть вольтамперная характеристика и она не линейная. То есть при изменении напряжения ток меняется НЕЛИНЕЙНО... Поэтому и яркость будет нелинейная. Драйвер является источником тока.
|
|
|
|
|
Feb 11 2009, 13:19
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(aaarrr @ Feb 11 2009, 14:32)  Неплохо - понятие весьма расплывчатое и субъективное, не находите? Драйвер является источником тока. Неплохо -- это значит максимально возможно для такого индикатора. Субъективно. Еще -- неплохо значит и не хорошо.:-))) Как-нибудь сфотографирую и пришлю. Действительно, гуру...
|
|
|
|
|
Feb 12 2009, 09:50
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(Зверюга @ Feb 12 2009, 12:24)  Скажите, а разве нельзя сделать реализацию SD программно, если аппаратной нет в контроллере? Кстати, перерыл весь интернет- ничего путного не нашел про SD режим. Можно. http://www.piclist.ru/S-MMC-SD-Cards-RUS/S...-Cards-RUS.html
|
|
|
|
|
Feb 12 2009, 10:42
|

Местный
  
Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719

|
Цитата(Зверюга @ Feb 12 2009, 12:24)  Скажите, а разве нельзя сделать реализацию SD программно, если аппаратной нет в контроллере? Кстати, перерыл весь интернет- ничего путного не нашел про SD режим. Для чтения делается достаточно просто. Для записи надо считать CRC, а это накладно. Ищи "Simplified_Physical_Layer_Spec.pdf"
|
|
|
|
|
Feb 12 2009, 11:11
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Зверюга @ Feb 12 2009, 12:24)  Скажите, а разве нельзя сделать реализацию SD программно, если аппаратной нет в контроллере? Можно, но это будет медленнее аппаратного SPI. Для чтения четырех бит потребуется один раз прочитать порт и дважды записать, что на SAM7 даст 4+3+3=10 тактов на 4 бита, а на самом деле еще больше, так как данные нужно перепаковать и положить в память. Ну, и с CRC все не так просто, как уже заметили.
|
|
|
|
|
Feb 13 2009, 05:35
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 30-01-09
Пользователь №: 44 166

|
Цитата(KAlex @ Feb 12 2009, 13:42)  Для чтения делается достаточно просто. Для записи надо считать CRC, а это накладно. Ищи "Simplified_Physical_Layer_Spec.pdf" Я наверное чего-то недопонимаю... Я записываю на карточку 1 Гиг без всякого расчета CRC. Просто вставляю 0xFF после команды записи. src_mmc[0]=0х58; src_mmc[1]=(BYTE)(Addr>>24); src_mmc[2]=(BYTE)(Addr>>16); src_mmc[3]=(BYTE)(Addr>>8); src_mmc[4]=(BYTE)(Addr&0xFF); src_mmc[5]=0xFF; SSP0Send(src_mmc,6); //Подтверждение SSP0Receive(Buff_com0,2); Buff_com0[0]=0xFF; Buff_com0[1]=0xFF; Buff_com0[2]=0xFE; SSP0Send(Buff_com0,3); for(i=0;i<BUFSIZE0;i+=FIFOSIZE) { SSP0Send(buf,FIFOSIZE); buf+= FIFOSIZE; } и т.д. Может я где-то ошибаюсь??? Корявенько немного, но все пишется как надо...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|