Часовой пояс: UTC + 3 часа




Куратор(ы):   zauropod   



Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 399 • Страница 12 из 20<  1 ... 9  10  11  12  13  14  15 ... 20  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Первое знакомство с микроконтроллерами Atmel, STM и другими.

Первый рассказ
Предэксплуатационный ремонт отладчика Atmel AVR Dragon
Цветное изображение на монохромном LCD
Конвертер растровой графики для монохромного LCD (128х64)
Дизеринг для монохромных LCD и конвертер растровых изображений
ZP-STM32 и беспроводной последовательный порт
Куда уходят миллисекунды? Способ повышения FPS
Open Logic Sniffer в действии
AVR XMEGA – разгон, вольтмод и производительность SDRAM


Последний раз редактировалось zauropod 15.12.2010 0:33, всего редактировалось 6 раз(а).


Партнер
 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
neo333 писал(а):
Выходит, сколько нибудь приличный видео-контроллер из STM32 не сделать

Что-то ты очень много хочешь от STM32... Вроде на базе CortexM4F пока только у NXP LPC43xx есть поддержка RGB панели. Сегодня еще и Infineon разродилась своим CortexM4F, я пока еще не смотрел, как у него.
Если у чипа только FSMC, то нужен контроллер.

neo333 писал(а):
Что за контроллер Epson? Посмотрел на сайте Epson, там не нашел чипов с поддержкой VGA и HDMI


Тута они.
Можно купить на маузере.
Я и не говорил, что те чипы с поддержкой VGA и HDMI. Для поддержки D-Sub у меня ЦАП от Cadeka 3404, под HDMI стандартная TPF410 (ее надо будет еддидить по I2C).


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
zauropod писал(а):
на Mouser прилетели первые XMEGA c USB

Увидел там ATxmega256A3BU решил заказать вместе с STM32F4DISCOVERY.
Но чето не разберусь с доставкой. Еще из-за бугра ничего не таскал.
120/50$ что то многовато, если есть другие варианты подскажи плиз.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
max0000000 писал(а):
Еще из-за бугра ничего не таскал

Бугор у каждого свой. Для конкретного бугра:
http://eu.mouser.com/EstimateShipping/EstimateShipping.aspx
Для Европы при заказе от 75 евро (это для Старой Европы, 150 - для новой) Fedex бесплатный. Россия под бесплатную раздачу не попадает, зато для нее UPS дешевле, чем для новой Европы.
Не надо забывать, что каталожный ценник показан без ндс (хотя это смотря куда тащить).

Если деревня назначения более-менее крупная, наверняка в ней есть конторки, которые аккумулируют заказы и за долю малую (20-30% от каталога) работают с мелкими заказиками и рассылают в мелкие деревни, поискать их надо для своего региона.


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
Нашел STM32F4DISCOVERY и ATxmega256A3BU в Москве по 818р и 654р соответственно
на http://www.electronshik.ru/. Только на xmegу сроки поставки уточняют, а DISCOVERY
как я понял есть на складе.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Потратил три недели на изучение формата JPEG. Как-то давно запало в памяти высказывание (ЕМНИП независимой группы jpeg), что-то типа "Если вы считаете, что разобрались с пониманием формата JPEG, это означает, что вы еще далеки от настоящего понимания его возможностей". В общих чертах теоретию JPEG я понимал, но вот в детали не вникал. С появлением в моем хозяйстве STM32F4 возможность декодирования этого формата уже не представляется бессмыссленной затеей. Разумеется, речь идет не о работе в среде готовых OC, для которых уже существуют отлаженные библиотеки.

Странно, что в открытом доступе JPEG-декодера для работы с армами без ОС не нашлось, может, просто плохо искал. Платных - навалом, включая и для Cortex-M3. Поэтому скачал рекомендации T.81 комитета CCITT (что в просторечье есть стандарт JPEG) и на C# написал декодер базового режима по принципу "что вижу, о том пою". Скорость декодирования (PC Core2, 2.66) в один поток (а алгоритм можно хорошо распараллелить) 500 тысяч пикселов (24 bpp) в секунду, с учетом конвертации в формат BMP, медленно, конечно, но работает. Понимается большинство файлов, но попадаются, которые не дешифрируются, вероятно, сделанные в каких-то продвинутых редакторах. Так как планировалось портирование на embedded, то до начала непосредственно данных изображения(т.е. кодов Хаффмана), необходимо получить сегмент SOF с данными о размере файла и т.д., хотя стандарт разрешает размещать его и после, что для PC фиолетово, так как буфер может быть любого размера. Для MCU была поставлена задача обойтись наименьшим размером памяти, поэтому такие файлы не декодируются (пока, так как технически это можно решить). Кроме того, не дешифрируются (пока) файлы с использованием DRI (у меня всего один такой файл нашелся). С другой стороны, пересохранение капризных файлов через Paint.Net делает все файлы читаемыми.

Порт на STM32F4 пока делался безотносительно к типу процессора и DSP, т.е. код будет работать и на AVR. Требуется всего примерно 3 килобайта RAM в пике (плюс-минус пара сотен байт в зависимости от размера таблиц, память выделяется динамически). Плюс буфер для файловой системы. Для FATFS и STM32F4 размер буфера абсолютно не критичен для быстродействия, выше 512 байт скорость IO не растет. Идет подкачка в буфер по мере надобности, а для чтения из памяти буфер не нужен. То есть, фактически возможно декодирование на MCU c RAM в 4КБ.

Сейчас сделаю перерыв на изготовление печатных плат, а то уже почти полгода как застрял, а после причешу код и подключу к процессу декодирования CCM и DSP.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Никак не могу заставить себя заняться нудятиной по трассировке плат :)
Попробовал SIMD инструкции Cortex-M4 на своем STM32F4 JPEG Decoder. Получение компоненты Y, Cr или Cb теперь стало выглядеть более элегантно. Обратное косинусное преобразование, дезигзагирование, центровка и проверка насыщения сводятся теперь к очень простому виду, вот как сейчас у меня выглядит функция получения в массив 8х8 (outArray) итоговой компоненты:

Код:
void GetDecodedComponent(int16_t * inArray, uint8_t * outArray)
{
    uint8_t i,j=64;
    int s;
    uint32_t* ptr = (uint32_t*)idct_coef;
    uint32_t* ptr_in = (uint32_t*)inArray;

    for (; j; j--)
    {
       s = 0; i=32;
       ptr_in = (uint32_t*)inArray;

        for (; i; i--)
        {
      s+=__SMUAD (*ptr++, *ptr_in++);
        }
        *outArray++ = __USAT16(128 + (s>>IDCT_SCALE),8);
    }
}


Встроенный в CMSIS враппер __SMUAD(...) выполнят попарное умножение и сложение двух половин от 4-х байтного uint (половины трактуются как знаковые short), что требует выполнение только 32-х таких инструкций вместо 64-х при (при соответствующих пойнтерах на шорт у входного массива (64 int) и массива коэффициентов(4K int))

Код:
s+= *ptr++**ptr_in++;


И хотя последний вариант в ассемблерных кодах немножечко короче, за счет уменьшения общего числа операций небольшой, но выигрыш. Можно, конечно, заинлайнить и внутренний цикл развернуть, но это не сильно ускорит. __USAT16 отлично подходит для контроля попадания в беззнаковый байт у шорта.

Оптимизированный вариант уже подойдет и для видеодекодера.

Сейчас пока не могу придумать, как лучше оптимизировать табличные поиски, ничего умного пока в голову не лезет.
Визуально полноэкранное 320х240 декодирование и вывод по SPI на LCD стандартных jpeg-файлов (качество 30-50, размер около 10 КБ) с SD карты пока проигрывает в скорости чтению и выводу на экран стандартных 24bpp bmp-файлов порядка 30-40% (что вполне естетственно, bmp декодер почти ничего и не декодирует, правда и размер у bmp-файла 225 КБ).

По большому счету, на этом можно с JPEG и остановиться. Может, PNG попробую, хотя там в 4КБ RAM не уложиться, надо минимум 40КБ.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Можно посмотреть, как работает декодер:
http://youtu.be/s_BYZHn4_bQ

Все картинки - формата JPEG, за исключением собора, он для сравнения в bmp. Все файлы на SPI SD карте, за исключением гусеницы - она во флэш-памяти МК. IO буфер для работы с FATFS - 512 байт
STM32F4 работает на частоте 216 МГц, дисплей 320x240.
DMA в примере не используется (а это серьезно увеличит скорость), при декодировании BMP буфер вывода на LCD размером в одну строку, у JPEG - 16 строк.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Попробовал у декодера основную таблицу коэффициентов (4К) перенести из флэш в CCM. Это дает прирост всего примерно в 2%, так как данные во флэше линейно расположены и шина 128 бит, что обеспечивает 0WS, хотя и пара процентов тоже на дороге не валяются. Хотя если перенести стек в CCM, то быстрее становится уже на 25%. Но все равно я на чистом С больше не вижу вариантов, как декодировать быстрее, чем за полсекунды на разрешении 240х320 точек, при последовательном алгоритме. По мелочи можно много улучшить, например, самый оптимальный вариант приведенной выше функции GetDecodedComponent выглядит так:

Код:
void DecodeComponent(int16_t * inArray, uint8_t * outArray)
{
    uint8_t i,j=64;
    int s;

    uint32_t* ptr = (uint32_t*)&idct_coef;
    uint32_t* ptr_in = (uint32_t*)inArray;

    for (; j; j--)
    {
       s = 0; i=4;
       ptr_in = (uint32_t*)inArray;

        for (; i; i--)
        {
            s+=__SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++)+
            __SMUAD (*ptr_in++, *ptr++);
        }
        *outArray++ = __USAT16(128 + (s>>16),8);
    }
}


Причем, если разворачивать внутренний цикл с другими параметрами (скажем, 2 раза по 16, или 8 раз по 4), то будет медленнее. Нужно переходить на ассемблер и разворачивать структуры в CCM, ширее использовать DSP-инструкции. А то уж как-то радикально быстрее бенчмарки других DSP-процессоров (в т.ч. виртуальных) на сопоставимых частотах.

Но можно взять и готовый аппаратный jpeg кодек, я добил сегодня маузеровцев, а то они его выставили как FCBGA-161, да еще при переписке настаивали, что он именно такой, хотя по даташиту обозначение было, как у QFP. Теперь они признались, что не правы были. FCBGA-161 на двухслойке тяжело исполнить (надо делать меньшие площадки под шарики и проводники 0.1мм). Поэтому все ближе час, когда я наконец-то займусь бордой под STM32F4. К тому же как раз получил для нее PSRAMки 128 Mbit, 104 MHz (но в рандомном асинхроне 70нс, а страничный доступ 20нс). А то я платы без элементной базы на руках не делаю.
Поэтому уже скопилась куча разных МК, которые так навсегда и останутся в коробке :).


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Сегодня вышла новая версия AVR Studio 5.1. Странно, что она ставится не как апгрейд, а только отдельно, параллельно могут работать обе версии.
Новый тулчейн, добавлена возможность работы на плюсах и импорт С++ проектов из AVR32, фиксинг багов, поддержка новых МК и т.д.
В списке поддерживаемых процессоров можно увидеть ряд еще неанонсированных, вроде XMEGA128A1U. Странно, что Atmega8 не попал в список поддерживаемых отладчиком Dragon (вероятно, описка). Но по-прежнему дракону не дали самые маленькие шестиногие Tiny, хотя ISP их и программирует. Ну да не очень то и хотелось, разве что для прикола, а можно и свой прогер написать, если заняться нечем.

Жаль, под арм они свой дармовой тулчейн не делают.


 

Junior
Статус: Не в сети
Регистрация: 22.02.2012
neo333 писал(а):

...Да, и пока запустил отладку в симуляторе - чуть не забросил Кейла, без магических настроек ini-файла под STM32F407VG, отладчик сыпал ошибки - день убил на выяснение, что не так...

Та же проблема :cry: . Будь добр подскажи настройки ini-файла.


 

Junior
Статус: Не в сети
Регистрация: 01.01.2012
metrorik писал(а):
Будь добр подскажи настройки ini-файла.

Попробуй такой вариант:

Код:
/******************************************************************************/
/* RAM.ini: RAM Initialization File                                           */
/******************************************************************************/


FUNC void Setup (void) {
  SP = _RDWORD(0x08000000);          // Setup Stack Pointer
  PC = _RDWORD(0x08000004);          // Setup Program Counter
  _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table Offset Register
  xPSR = 0x01000000;             //   Set flag "T"
}


load %L incremental
//MAP 0x40000000, 0x40023400 read write     // Peripferial

MAP 0x08000000, 0x080FFFFF EXEC read     // fash
MAP 0x20000000, 0x2001FFFF READ WRITE  // allow R/W access to IO space

MAP 0x40000000, 0xBFFFFFFF read write     // Peripferial



Setup();                             // Setup for Running

/* g, main */


 

Junior
Статус: Не в сети
Регистрация: 03.02.2011
Добрый день!

2 zauropod

Решился тут на покупку Open Logic Sniffer после прочтения вашей статьи, 50 баксов вроде сумма не ахти какая. Пару дней назад получил его в руки и что то он у меня странно себя ведет, то работает без проблем, то вдруг сам отключается потом снова появляется в системе, но программа его уже не видит, пока либо компьютер не перезапустишь либо раз двадцать сброс на плате не нажмешь и клиент столько же не перезапустишь... Хотел было прошивку обновить, но прошивальщик плату не видит, не читает и не пишет, хотя пид и вид вроде правильные.

Ваш как работает, это просто мне удачный экземпляр попался)?


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
avco
Вообще-то глюки случаются, но не так, чтобы уж совсем невозможно работать.
Проблема с драйверами и видимостью может зависить и от ОС/компа/подсоединения. Попробуйте подключть к другому USB-разъему на матери, кабель покороче, если не поможет, то проверить его с отдельным питанием.

Я прошивку не менял, клиент от http://www.lxtreme.nl/ols/. Глюков в клиенте тоже хватает, но автор на мыло отвечает, у него есть и родмап по проекту.
В январе вышла новая версия 0.95, но я пока ее не смотрел.


 

Junior
Статус: Не в сети
Регистрация: 03.02.2011
Пробовал с разными компьютерами, у меня их много), кабели тоже разные были, история одна и та же. Работать можно, но в какое то время может произойти "затык". Самое неинтересное, что он никак до поры до времени не виден, и если стоит триггер то непонятно, то ли события нет, то ли сниффер "ушел". Выяснить это получается только если попытаться его перезапустить, или просто сбросить - тогда вылазит окно с ошибкой.
Попробую ваш клиент, у меня сейчас Jawis-OLS...


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
SiLabs (нравится мне эта компания своими мелкими чипами - радио, датчики, вч и т.д.) сегодня анонсировала свои 80 МГц Cortex-M3 серии Precision32. Позиционирует их как самые энергоэффективные, из интересного - для USB FS не требуется кварц, шесть сильноточных выходов (300мА), 16 тачсенсорных каналов, плюс стандартный набор интерфейсов. И бесплатная эклипсная среда разработки (похоже, адаптированная кодередовская), с широким набором визуального программирования. Емнип, Cyan со своими МК был в этом одним из первых. Решил скачать и посмотреть, инсталлятор странный, восемь шагов, но для перехода к следующему нужно щелкать кнопку. Дальше 7 шага (создание ссылок) установка не пошла, к восьмому шагу так и не перешло. :(


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Сегодня анонсирован Raspberry B - 700Мгц ARM11 компьютер размером с визитку по цене Arduino (35$), 256МБ памяти, SD, HDMI, RCA-выход видео, USB, в комплекте донгл на беспроводную клаву и мышь и сама мышь, кажет Full HD видео. Оф сайт говорит, что наплыв такой, что он загибается, равно как и сайты распространителей (Farnell). Я на Farnell успел посмотреть, появятся они в течние месяца. Не знаю, по этой ли причине, но его сайт уже встал. На самом деле, классная штучка, обязательно куплю при случае.


 

Member
Статус: Не в сети
Регистрация: 26.01.2011
zauropod писал(а):
Сегодня анонсирован Raspberry B - 700Мгц ARM11 компьютер размером с визитку по цене Arduino (35$)

Спосибо за инфу. А то тут друган прикупил ноут с intel core i5 за 27р. так тормоза еще круче стали.
Если с доставкой проблем не будет, то тож освою до 60$, чтоб отомстить.
А с одной ATxmega256A3BU меня кинули с растройства и STM32F4DISCOVERY заказывать не стал.


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
Цитирую сам себя от 18.02:
zauropod писал(а):
Жаль, под арм они свой дармовой тулчейн не делают.

Не прошло и двух недель, как таки сделали!

Вышла бета версия Atmel Studio 6.0, которая содержит все то, что уже было в AVR Studio 5.1 и плюс добавлены все атмеловские ARM из серии Cortex, включая последние Cortex-M4. Интеграция плавная, все в одном флаконе. Правда, пока еще симулятор под ARM не сделан, но это вопрос времени. Естественно, для армов нужен дебаггер SAM-ICE, но их есть у меня.
Порадовали атмеловцы. Хотя последние кортексы у них побледнее, чем у конкурентов, но полноценная бесплатная среда разработки - это просто здорово.

К слову, CooCox объявила, что поддержка STM32F4 появится в середине текущего месяца. Я пока их тулчейн вообще не щупал, будем посмотреть, что это за зверь.


 

Member
Статус: Не в сети
Регистрация: 23.05.2010
Спасибо за интересный дневник. Видимо в связи с переездом на новый дизайн персональных страниц перестали работать ссылки на ваши статьи. Не могли бы направить в новое русло? Очень бы хотелось их почитать. :-)


 

Куратор темы
Статус: Не в сети
Регистрация: 16.11.2006
Откуда: Всегда!
maxxTech
В связи с переездом на новый формат ПС:
1) напрочь исчезло ощущение уютного места (ПС), где хотелось бы иногда бывать и что-то там из своих материалов размещать
2) у меня пропал доступ к своей странице, а многие материалы есть только там, так как конечная верстка и многочисленные правки делались непосредственно на ПС

В принципе, я уже больше года плачу за хостинг (без ограничений на число доменов, трафик и т.д), но пока так руки и не дошли :), хотя фтп для размещения своих писулек не требует особых затрат.

"Радостные" новости от Atollic - версия Lite для STM32 прекращает существование, вводится 3.0 Lite for ARM для всех ARM, с ограничением по коду в 32К.
Прощай, Atollic! Хотя, если смотреть по уже давно исчезнувшему Lite for AT91SAM3, который по-прежнему работает, уже установленные версии продолжат работу, но не будет обновлений.

Кстати, у Atollic обнаружилась еще одна неприятнось - впервые за пару лет пропадал инет, так он в оффлайне не работает! За нами следят! :) Хотя и не только они...

Тем не менее моя гора рождает очередную мышь - почти завершил разводку своей платы на STM32F4. На плату будут установлены SRAM (с расширением до 64MB, хотя это экономический нонсенс), NAND 16Gb, Ethernet, Wi-Fi, ZigBee, 2 слота под микро SD, слот под камеру и сенсоры, RS-232, IRDA, FM радио, стереокодек I2S+аналоговые входы, HS USB OTG, FS USB OTG и т.д. Стоит видеоконтроллер с 16MB видеопамяти, видео DAC c выходом на RGB D-Sub и компонентное видео), предусмотрена установка сменных плат под различные разъемы LCD-панелей, HDMI encoder etc.

Надеюсь, в конце этого - начале следующего месяца платы будут уже на руках.


Показать сообщения за:  Поле сортировки  
Форум закрыт Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 399 • Страница 12 из 20<  1 ... 9  10  11  12  13  14  15 ... 20  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan