Перейти к содержанию
    

Не совсем понимаю как CMSIS раздувает код. Я оттуда пользуюсь определениями, и, на мой взгляд, удобно. Библиотеки тоже не все свои пишу. То что вызывается единожды - типа инициализации PLL, кое-какие настройки часов ещё мелочь, я оставил. Ту переферию, что используется во всём проекте, а не только при инициализации - полностью переписал. Тем более, что жизнь заставляет. Всё равно стандартными библиотеками пользоваться невозможно. Даже если плюнуть на то, что они избыточны и раздуты.

Во вторых сложно говорить о "раздувании кода", когда минимум на кристалле 512к. Его ещё заполнить надо... ))

Некоторые вещи понравились у NXP. Вполне их можно оттуда и перетянуть. С другой стороны есть очень сильные стороны у STM.

1. Упоминалось уже - совместимость по ногам. + конструктор который они предлагают. Очень удобная фича. Достаточно сказать, что как правило развития у NXP просто нет. Применили 1764 - ну 1765 можно поставить. И то ... Применил я stm32f103 (в 100 ножном)- могу поставить и 207 и 405, и 100 и f0 из последних. Да там есть некоторые вопросы по периферии, но почти все решаемы. Это десятки кристаллов с разной периферией и разными объёмами FLASH/RAM. Ну очень удобно. Так в текущем проекте я применил 407. Отлаживаю. В последствии думаю выпустить урезанную версию прибора без Ethernet на 103. Задействованы почти все ноги, а всего то придётся только один SPI программный сделать и как-то выкрутится с выходом калибратора часов. 207 так вообще один к одному. Результирующий проект перекомпилю, если всё OK, то на нём и выпускаться будет полная версия.

1.1. Хорошо продуманная совместимость по периферии... Мне понравилось больше чем в NXP. Особенно в старших моделях. Там на одну ногу до 7 ф-ций альтернативных выкатывается. Почти любой вариант раскладки прокатывает. Очень большое количество периферии куча таймеров USART и прочее. И очень хорошо совмещаются друг с другом. При грамотном написании библиотек - просто молодцы.

2. С периферией всё в принципе не плохо. Слегка ADC перекручен. А так всё неплохо. I2C запустили и в мастере и в слэйве. Да есть там некоторые нюансы. Например мультимастер неотключаемый. То есть если SLAVE не обработает подтверждение, то мастер отвалится без спроса - потеря шины. Ну и немного они намутили в SLAVE. Короче надо вводить мультимастер и всё работает.

Зато есть бонус. ST по крайней мере принимает критику и пытается улучшать и развивать периферию. Например RTC в 103 так убого сделаны ... И вот в 20x/40x - вполне прилично. А с учётом хранения данных от часов - ещё и пендаль для NXP. В NXP 4 регистра... Чаще всего этого мало. В ST их помоему 11 (по памяти не помню) + в старших камнях кусок ОЗУ. В NXP тоже есть такие камни, но это некоторые камни, а здесь все старшие ... Разница однако ... А посмотрите какой убогий CAN у NXP. И они его благополучно перетащили на CM3. Я специально смотрел. Например SAE J1939 аппаратно невозможно. Нужна маска, а у них коридор. A ST позволяет и так и так. Единственное, что конечно является бестселером это контроллер TFT. Здесь 2478/1788/1850 рулят. Альтернативы у ST нет.

3. Ну и цена - достовабельность не последние вещи. Понравилось мне и качество/ надёжность/ устойчивось. Пусть и субъективно, но всё таки осталось хорошее ощущение ... Нет непоняток... Хорошо отлаживается ...

---

Короче посовокупности мне больше stm нравится.

KINETIS хорош безусловно. Понравилась аппаратная обработка сенсорных кнопок, АЦП/ ЦАП ... Но всётаки дорог ... Да и семейство пока ещё .... Короче немного задержались они с выходом ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Применил я stm32f103 (в 100 ножном)- могу поставить и 207 и 405, и 100 и f0 из последних...

Тут Вы слегка погорячились, 100-ножечных f0 пока нет и не предвидятся, но основная мысль понятна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например SAE J1939 аппаратно невозможно. Нужна маска, а у них коридор.

То есть в автомобильные приложения не годится?

О какой конкретно серии речь? CAN вреде разный на разных семействах?

 

Нужна маска, а у них коридор.

А все сообщения не получится обрабатываться на предмет их совпадения с небольшим списком интересующих?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

развития у NXP просто нет. Применили 1764 - ну 1765 можно поставить

ИМХО, не все там так гладко. По софту с LPC1768 на LPC1788 переходится довольно коряво. Куча мелких не бросающихся в глаза изменений. Регистры потасовали, GPIO настраивается по-другому, тактирование другое и еще всякое. При переходе 1768->1788 разочаровался - ожидался мгновенный запуск, а пришлось таки повозиться.

У ST32F2xx однозначно лучше Ethernet контроллер (тут в этой ветке про это писал уже, на сегодня плюшки все опробованы практически - реально вкусные). А вот USB device у STM32F2xx довольно самобытные. Первый раз такое вижу - все принимаемые пакеты валят в одно FIFO, с вытекающими последствиями, когда надо выполнить SET FEATURE STALL например (и есть у меня некоторое подозрение что в ST-шной библиотеке код написан для этой функции не очень верно). Прикручивал USB-device Intel/Samsung/Atmel/Freescale/NXP - везде конечные точки отдельные, со своими независимыми FIFO. Про хост вообще молчу - тоже самобытное извращение вместо стандартных OHCI/EHCI. Там вообще, похоже USB куплен у Синопсиса в виде IP-модуля и прикручен с далеко не косметическими швами (модуль походу 64-битным выглядит). Документация тоже явно патчилась с готовой - много незаимплеменченого выкинуто, но пара непонятных/нерабочих битов в документации осталась. Еще SPI у STM32 помедленнее - без DMA (не подходит DMA - надо в потоке принятые данные анализировать) тормозит, не получается без пропусков его загрузить в режиме поллинга. У LPC там FIFO было встроенное в SSP, шустро работало - пока анализируем очередной байт, SPI работает параллельно.

KINETIS хорош безусловно.

Сейчас Атмел еще "поднимает голову". Из Cortex-M3 у них SAM3X интересный - SDRAM контроллер, Ethernet (старый, правда, без плюшек), USB HS (трансивер на борту). Но традиционно - питание наружу торчит в двух уровнях (оно с SAM7 все так тянется - цоколевка такая же у новых серий). Еще пугают новым комбайном - SAM4E - где будет "все-все-все". Поживем - увидим.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

+1 в пользу KINETIS - хороший набор периферии при малопотребляющем ядре M0, много режимов сна с огромными возможностями по выхода.

 

-1 против STM32 - кто пользуется CMSIS

 

Freescale делает свои камни на М4 и все-таки вы имели ввиду SPL.

Последний конечно не везде радует, но инициилизацией обойтись можно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.1. Хорошо продуманная совместимость по периферии... Мне понравилось больше чем в NXP. Особенно в старших моделях. Там на одну ногу до 7 ф-ций альтернативных выкатывается. Почти любой вариант раскладки прокатывает.

Вот что-то не получается "прочувствовать", скорее - наоборот, так "продумано", что постоянно не хватает нескольких нужных ног, думал в 100+ корпусах попустит - куда там! Все те же грабли, главным образом из-за того, что стратегически важный АЦП висит на не менее стратегических по функциям пинах. Беда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот что-то не получается "прочувствовать", скорее - наоборот, так "продумано", что постоянно не хватает нескольких нужных ног, думал в 100+ корпусах попустит - куда там! Все те же грабли, главным образом из-за того, что стратегически важный АЦП висит на не менее стратегических по функциям пинах. Беда...

Может все дело в прокладке, а не в руле?

Атмел последнее время все чаще стал мелькать перед глазами. Правда после смены SAM7 на LPC2x нет веры в него, что касается армов конечно...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может все дело в прокладке, а не в руле?

Глубокомысленно.. Не подскажете, где разрулить MII + ADC 16 каналов из обозначенных 24? 144 ноги не помогают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажете, где разрулить MII + ADC 16 каналов из обозначенных 24? 144 ноги не помогают.

Всегда хочется чего-то большего. Если Ethernet включаешь или контролер SDRAM (LCD), то отрубается куча ног. Конечно не есть хорошо, но как без этого? Этож не система на кристалле. :rolleyes: Мыж в сравнении. У NXP при таком раскладе тоже всё не лучшим образом абстоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всегда хочется чего-то большего. Если Ethernet включаешь или контролер SDRAM (LCD), то отрубается куча ног. Конечно не есть хорошо, но как без этого? Этож не система на кристалле. :rolleyes: Мыж в сравнении. У NXP при таком раскладе тоже всё не лучшим образом абстоит.

 

Все это так, но если ST сделали по мультиплексору 16:1 на ножках, что им стоило сделать это на всех I/O ?

Оно же места в кристалле много не занимает, а у них на куч ножек и половины нет!

Конечно это еще надо оттрассировать в кристалле, но неужели это сложнее ядра, FPU/MPU/DSP и всей периферии?

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

Ну ладно еще, когда речь идет о многоногих интерфйсах типа MII, ULPI, LCD/ExtMem, но например - внешнее тактирование I2S сразу отменяет 4-х битный режим SDIO, потому что вход тактовой только один, и совмещен с D1 SDIO, ни тому ни тому альтернативы нет, и таких примеров много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понимаю как CMSIS раздувает код
не только, даже у stdlib ужасный код. Посмотрите на листинг memset/memcpy и т.д. - каждая функция под несколько сотен байт. Для чипа с 512К Flash может и приемлемо, но для STM32F100C4 пришлось переписать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не только, даже у stdlib ужасный код. Посмотрите на листинг memset/memcpy и т.д. - каждая функция под несколько сотен байт.

Он не ужасный - приличная (с учетом взаимного выравнивания источника и приемника, и с использованием копирования блоками) memcpy()

не может быть крошечной.

 

Для чипа с 512К Flash может и приемлемо, но для STM32F100C4 пришлось переписать.

Ну если размер кода совсем критичен, то такой вариант вполне возможен.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Он не ужасный - приличная (с учетом взаимного выравнивания источника и приемника, и с использованием копирования блоками) memcpy() не может быть крошечной.

+1. У кейла на этот случай есть опция microlib. Может быть, ничего переписывать тогда и не пришлось бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все это так, но если ST сделали по мультиплексору 16:1 на ножках, что им стоило сделать это на всех I/O ?

Это уже находится в области маркетологии энд-юзера. Они ж не могут составить карту IO так, чтобы угробить выпуск камней в каком-либо корпусе, уронив на них спрос целесообразностью применения?

А что реально бесит - на порт А и В ложится весь функционал, - но это понятно, линейка растет от мелконогих корпусов, но ремап можно было бы и нарастить, для более равномерного распределения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возвращаясь к основному вопросу - LPC(17 и 18-серии) или STM32(Х серии)?

Выбираем под новый проект проц., хотел бы спросить:

1. какой максимальной скорости по SPI могут достигать аппоненты (60Мгц-SPI CLK)?

2. По итогам выбора п.1. - Насколько просто/сложно будет реализовать поддержку USB (HOST), у кого больше ресурсов для этого?

 

P.S. Может кто слышал про 18Х серию NXP с 1МБ флешкой на борту - когда предположительно появятся?

 

Прошу помощи, заранее благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...