- Выбор кристала. Спрошу и я. Сейчас используем atmega8. Cкpипaч(420 знак., 23.08.2020 17:42, ARM, полностью)
- ATSAMC21J18A Кортекс м0 питание от 2.7 до 5.5 В. Всё остальное
много лучше меги8. 32к ОЗУ, 256к флешь. Куча ништяков. - max(02.09.2020 20:20)
- Никто не назвал PIC24. Плохой компилятор у микрочипа и отвратная
IDE, но с этим можно смириться (отлаживать в старом мплабе, писать
код в виме -- как-то так). 12-бит АЦП есть, внутрисхемная отладка
есть, нужно покупать только шайбу (pickit дешевле), оперативки
маловато и больше не будет (32кБайт -- максимум). ИДЕ покупать не
надо, внутренняя структура простая и надёжная (читается общий PDF и
специфичное для перифирии приложение), никаких кубов и т.п. нет.
Что с отдельной fk0(5150 знак., 01.09.2020 23:09, ссылка)
- Про компилятор MSP vs PIC24. В свое время TI выпустил апнот со
«сравнением» разных платформ «Competitive benchmarking”. Сравнение
было весьма специфическое (в выборе компилятора для конкурентных
платформ). Тогда (ок 7 лет назад), перепроверял их результаты для
PIC24 /С30 и результаты по плотности кода были в целом лучше чем
для MSP430 (TI для pic-ов использовал IAR и получал выигрыш для
своей платформы в разы)) - Илья(02.09.2020 18:36)
- Но по блату Микрочип поставляет правильным пацанам ПИК24 с 96
килограммами ОЗУ, ещё и с цветосинтезатором (LUT, если по ихнему) - Kpoк(02.09.2020 10:40)
- Не совсем так про ARM. Если 512КБ флеша достаточно (и 160КБ ОЗУ) и
корпуса QFN32 и LQFP48 подходят, то цена у M481/2/3/4/5/7
(Cortex-M4, Nuvoton) зависит в основном от наличия периферии, а не
от об'ема флеш. M481LIDAE, например, в корпусе LQFP48 стоит всего
2,3$. - Guest(02.09.2020 00:07,
)
- Спасибо, годный обзор. Только забыл упомянуть 70-MIPS dsPIC33E с
52K RAM и 100-MIPS двухъядерные dsPIC33CH с 48K RAM. Есть и
5-вольтовое подсемейство (dsPIC33EV), у всех приличные АЦП (12 бит,
до 3.5 MSPS), а у MC еще и шикарные гигагерцевые PWM - MBedder(01.09.2020 23:39)
- Ну народ STM теперь любит, а конвертор 5 -> 3.3 и в sot23
найти не сложно. Среды бесплатные, ЦАП, АЦП - 12 бит. Куча статей в
Компеле про периферию и другие фичи. Одна беда, что в stm32g4 все
так усложнили, что крышу может сорвать. - Visitor(01.09.2020 20:42)
- Мне нравится PIC18F Q43 Илья(65 знак., 24.08.2020 10:46, ссылка, ссылка)
- Чтобы не зависеть от производителей - переезжай на Cortex-M0 -A23,
сначала придётся потрахаться зато практически швобода - General(24.08.2020 10:44)
- ATMEGA DA Series Илья(523 знак., 24.08.2020 10:40, ссылка)
- Что интересно, никто не предложил PIC. Microchip стоит напрячься. - Evgeny_CD(23.08.2020 23:00)
- Renesas RL78 - Evgeny_CD(23.08.2020 20:35, ссылка, ссылка)
- STM8 - 5В, но 10 бит АЦП. STM8L - 12 бит, но 3В. ИДЕ - бесплатная
от STM. EEPROM есть. ОЗУ в среднем больше. Внутрисхемная отладка
есть. По документации конечно проигрывает Атмелу, но разобраться
можно. А в общем, по моему мнению, STM8L на сегодня выигрывает по
качество/цена среди всех 8-битников. PS Скорость и кол-во входов
АЦП гораздо выше, чем в AVR. Как бонус - есть ЦАП. argus98(85 знак., 23.08.2020 19:39, ссылка)
- TI MSP432P401 lloyd(424 знак., 23.08.2020 18:14)
- Чего сразу лесом? В IAR поддержка этого семейства тоже есть. - AlexG(23.08.2020 20:17)
- Спасибо. Нужно изучить внимательнее. - Cкpипaч(23.08.2020 18:26)
- Общий недостаток изделий от TI - сделали чип и бросили. Т.е.
семейство у них никак не получается. Примерно то же самое было с
TIVA, хотя она выдержала две модификации TM4C123 и TM4C129. А я
такого не люблю, мне нравится, когда происходит постоянное
вылизывание и модернизация ранее выпущенных изделий в духе Atmel и
ST, когда ерраты со временем исправляются (в смысле, что у
следующих девайсов тех же ошибок уже не будет), растут рабочие
частоты, память, совершенствуется Kceния(68 знак., 23.08.2020 19:44)
- >с TIVA lloyd(568 знак., 23.08.2020 20:28)
- А вы верите в то, что можно написать компилятор версии 1.00,
протестировать, работу принять, а потом команду разработчиков
разогнать - мол, свое дело сделали, больше нам не нужны? Так вот
контроллер намного сложнее компилятора, а потому, если он так и
остается навсегда первой версией, то никому такая поделка не нужна.
А со Stellaris'ом вы абсолютно правы - TI купила Luminary Micro,
переписала Stellaris'ы на себя, выпустила одну модификацию
(фактически только FPU добавила) и Kceния(81 знак., 23.08.2020 20:54)
- TI как бы довольно серьезная фирма, просто ARM Cortex-M-ы - не их
основное направление. Родное детище MSP430 довольно долго и
плодотворно развивается. Беспроводные SimpleLink'и (CC2650/2652),
куда, по всей вероятности, перегнали команду из Stellaris, тоже, в
принципе, неплохо поживают. Думаю со временем мы увидим интересные
камушки и от TI. И опять же, я не вижу смысла привязываться только
к ST, только к NXP или еще к кому-то. Указанный выше в ветке проц я
для своих нужд lloyd(250 знак., 23.08.2020 21:01)
- +100500 - когда-то надеялся на развитие этого семейства (432). В
результате получилось не то, не сё и полный застой. Забил... - argus98(23.08.2020 20:10)
- LGT8F328D AlexG(3 знак., 23.08.2020 18:07, ссылка)
- На новую AVR-ку AVR128DA48 взгляните. У нее не только 12-разрядный
АЦП, но есть еще и ЦАП (этот уже 10-рвзрядный). На ней уже
демо-плата есть в продаже (USB-отладчик интегрирован), примерно за
$10 за эту плату, но можно сыскать и дешевле. Она только на рисунке
выглядит такой большой, а на самом деле она очень маленькая. Бывают
еще AVR128DA с большим числом ног, но для них нет демо-плат. Цена
на чип, полагаю, не будет высокой, т.к. в соревновании с STM32
задирать высоко Kceния(95 знак., 23.08.2020 18:06, ссылка, картинка)
- ...preliminary? На самом деле, хочется что-то из мейнстрим. Не факт
что DA им станет. Сами-то вы как к нему дышите? - Cкpипaч(23.08.2020 18:30)
- ...preliminary. Это у Microchip всегда так. Когда запускают MCU в
релиз, то даташиты имеют статус "preliminary". Вычитывают очепятки,
уточнение электрических параметров (типовые/max/min - это же
статистика, набирают статистику, Big-Data )). Примерно через 0.5-1
год статус даташита меняют. Илья(97 знак., 24.08.2020 12:49)
- Preliminary иногда многие годы в даташитах висит, иногда до самого
конца выпуска. - AlexG(23.08.2020 20:41)
- Я считаю, что AVR DA, DB будут жить долго и счастливо. В этих чипа
есть все, что надо 8 битнику, и 16к ОЗУ! - Evgeny_CD(23.08.2020 19:05)
- Я лишь с тем расчетом совет давала, что вы ATMega8 прежде юзали.
Вот и подумала, что AVR128DA48 было бы наиболее близким к тому
решением. Кроме того, это уже собственная разработка Microchip, от
производства которой он вряд ли откажется. Мейнстримом это,
конечно, не станет, по в семействе AVR выглядит солидно. А если вам
мейнстрим нужен, то добро пожаловать на STM32 :). - Kceния(23.08.2020 19:01)
- ну и до кучи раскошелится на программатор , хотя это скорее всего
даже полезно! - Aleksey_75(23.08.2020 18:08)
- atmega328 остается только проблема с ацп (а может и не проблема). - kaf1(23.08.2020 17:55)
- Nuvoton пошерстить каталог. Там много хорошего CM0, CM4 - Evgeny_CD(23.08.2020 17:50)
- AVR DA :) - Evgeny_CD(23.08.2020 17:47)
- Не подскажет ли кто, как на новом CubeMX (версии 6.0+,
STM32Cube_FW_H7_V1.8.0) правильно заполнить бланк на однопоточный
ADC для STM32H743? Проблема в том, что Examples там остались
старые, тогда как в заполняемой структуре появились отличия (одни
поля пропали + появились новые). Кроме того, в Examples, как и в
примерах в интернете, всюду сканирующий режим по двум или более
каналам, тогда как мне нужен самый простой вариант - чтобы
единственный канал ADC заполнил Kceния(3039 знак., 30.08.2020 13:39, ARM, полностью)
- Пятница же. Сколько лет наблюдаю за дискуссиями здесь, но так и не
понял, что лучше Кортекс или Дюрекс? - Kpoк(21.08.2020 17:27, ARM, полностью)
- Кто тут говорил, что копеешный китайский STLink, перешитый в J-Link
штатной сеггеровской утилитой, не вполне полноценный? Вот
какртинка, утверждающая обратное... Подключил через к JFlash
посредством Remote Server cortex M4 (nrf52832). Скорость работы
сами видите. Ну и надо с помощью DASM-овской примочки подсунуть
лицензии, чтобы задействовать все фишки... Гyдвин(1 знак., 17.08.2020 14:38 - 14:50, ARM, картинка, полностью)
- А может кто сказать скока в граммах тока кушает STM32 в ресете ?
чтот не нахожу совсем... Есть желание прибить соседний (не мой)
проц чтоб жить не мешал, благо его
яйца ресет в моих руках )) - Aleksey_75(24.07.2020 21:22, ARM, полностью)
- Процессор STM32F746IET6. Отлаживаю IAR + STLink(в режиме SWD). Sl(1501 знак., 13.08.2020 17:34, ARM, полностью)
- CubeMX_IDE + Segger J-Link V11 + отладочный вывод в RTT, такая
проблема: после прошивки программа не стартует. при открытом окне
J-Link RTT Viewer появляются первые строки с отладочного вывода
(прога 2-3 раза в секунду выводит ~10..15 символов, что довольно
медленно, должно все успевать, контроллер на 180 МГц успешно
заведен), и после первых нескольких строк программа замирает
(Halt?). Открываю окно J-Link Commander, подключаюсь по SWD, делаю
команду "g" - типа GO, NAUT(310 знак., 06.08.2020 22:12, ARM)
- кто может подсказать по связке server-client (telnet) OpenOCD. backa(456 знак., 05.08.2020 20:07, ARM, полностью)
- IMHO наличие каши в голове, к тому же такую программу проще писать
на expect. - fk0(06.08.2020 01:19)
- Как можно прочесть данные (пакет TCP, вроде), если он ещё не
пришёл? Нужно не готовность к отправке данных у сервера спрашивать,
а наличие данных от сервера у клиента проверять. Серверу дали
команду по telnet. И спрашивай его, не спрашивай - всё одно, пока
соединение TCP не разорвано, ответ клиенту отправит. А уж когда
клиент делает своё чтение серверу без разницы, лишь бы не раньше,
чем доставка пакета-ответа имела место. Nikolay_Po(83 знак., 06.08.2020 01:09)
- Каким образом указать линкеру воткнуть функции из Test.h(hpp) файла
в нужную область памяти? gcc. И чтобы отладка работала. Сейчас
делаю через атрибут, но это нужно пройти по каждой
вызываемой-подвызываемой функции и проставить этот атрибут. - Constantin24(03.08.2020 11:55, ARM, полностью)
- Вышла "юбилейная" версия STM32CubeMX 6.0.0 - Kceния(27.07.2020 20:03, ARM, ссылка, полностью)
- Хочу калибровочные значения записать во Flash. STM32F746, IAR 8.11.
Как выделить место во Flash, что бы транслятор это понимал и не
пытался на этой странице памяти разместить часть программы или
другие константы. Хотелось бы это сделать не трогая установки в
Project и не изменяя *.icf. - Sl(31.07.2020 19:16, ARM, полностью)
- В Keil v5 наткнулся на грабли: Какого-то хрена компилятор вызывает
не ту функцию, что требуется (похоже втуливает что то с
выравниванием 4). В результате hard fault... Как лечить? Гyдвин(616 знак., 23.07.2020 15:52, ARM, полностью)
- Короче... Особо буйные могут успокоиться, хлебнуть галоперидольчику
и скинуть смирительную рубаху. Бага нет! "Нестандартный язык" от
ARM все предусмотрел еще в 4 версии. Просто для v5 похоже сменились
"умолчания" для ключа компилятора "--pointer_alignment=xxx". Ну или
можно описать структуру вот так: Гyдвин(3109 знак., 25.07.2020 20:08)
- У вас на плате никаких передатчиков нету? С GSM модемом на борту и
процем STM32L151 тоже на hard fault нарвались, и плата в 4 слоя
была хорошо экранирована внутренними слоями, пока антенну на 90
градусов не развернул, hard fault не проходил. Программисты в шоке. - Visitor(25.07.2020 16:32)
- Короче, все печально. Поспрашивал коллегу, который занимается
частью проекта, в котором остались упакованные структуры. В IAR
точно также. Это не ошибка. Это сознательная диверсия. Некуда
ехать, приехали. - VLLV(24.07.2020 12:44)
- Функция memcpy не должна требовать выравнивания. Не морочь мозги,
покажи исходник на C. - fk0(23.07.2020 17:20)
- Хм... Дело обстоит еще интереснее - если прошагать отладчиком в
окне дизассемблера, эта __aeabi_memcpy4() отрабатывает без
hardfault. LPC1768 есличо... - Гyдвин(23.07.2020 16:03)
- IH.conag и buffer имеют тип char? - BlackMorda(23.07.2020 16:06)
- ВОТ!!! Гyдвин(1055 знак., 23.07.2020 19:10)
- Лично я не догоняю смысл одновременного использования #pragma
pack(1) и __align(4) применительно к struct {} Zoro(615 знак., 25.07.2020 16:19)
- ВОТ: SciFi(352 знак., 24.07.2020 10:28, ссылка)
- Aioeeeaaoiioaaie ieeooaaiieeo iaaiie! fk0(2534 знак., 23.07.2020 21:52, ссылка)
- в man memcpy написано что она принимает аргументы типа void* 3m(875 знак., 24.07.2020 08:41)
- А теперь представь, что "проверка адреса" выехала в compile time
(чтоб как раз не тратить на неё время, о чём ты пишешь) и всё
становится логично. Адреса в момент компиляции может и неизвестны,
но их атрибуты (выравнивание) берутся из типов и известны. - fk0(24.07.2020 11:32)
- C " ВСЕГДА" не согласен (от того и пострадамши :) Выравниваю для
контроллеров, в которых это требуется - для того же MSP430. Для
ARM7TDMI тоже бы учел. Но тут, млять, Cortex M3, аффтары которого с
момента появления били себя пяткой в грудь, что поддерживается
побайтный доступ, и x86 c Паскалем на другом конце. И до каких то
пор это было без извратов - есть стандарт для memcpy() и приведения
указателей. В том же Keil v5, если использовать библиотеку
"microLIB", все пучком - Гyдвин(27 знак., 24.07.2020 09:01)
- Это особенность ARM-архитектуры. При чтении/записи 32х-разрядного
числа игнорируются младшие два бита адреса. Архитектура x86 без
проблем может читать/писать по любому адресу. - Ale3000(24.07.2020 08:35)
- Все-таки остается одна неясность: il-2(361 знак., 24.07.2020 08:00 - 08:05)
- Речи правильные толкаешь :) Но компилятор, которому явно привели
тип указателя, но он "вызывает оптимизированную функцию которая
быстро копирует 32-битными словами" не имеет права на жизнь ;) - Гyдвин(23.07.2020 22:13)
- Почему "явное приведение типа указателя" считается каким-то
значимым аргументом? Всё равно перед вызовом memcpy эти указатели
неявно приведутся к void*. С тем же успехом можно в спортлото
написать. - SciFi(24.07.2020 09:57)
- gcc "чудный и замечательный" компилятор Zoro(183 знак., 24.07.2020 00:39)
- Проблема в том, что у тебя в программе _нет_ такого типа (U32, но
только "упакованный"). Если его руками создать, как в примере по
ссылке (внутри IY) -- то оно даже будет как надо работать.
Упакованные структуры это очень неполноценное и нестандартная
надстройка над C/C++. Не продуманная. Костыль. Её неспроста нет в
стандарте. Она "недоделанная" и не совсместима с моделью памяти и
системой типов C/C++. Стандартными (для C++, не для C) средствами
можно изголиться и сделать fk0(552 знак., 23.07.2020 22:28)
- Нет уж... Тысячи строк кода, драйверы, куски стороннего кода (та же
FatFs) и пр. как то не способствуют выворачиванию всего наизнанку.
А по этому топику: Cortex M3 (LPC17) имеет аппаратную побайтную
адресацию, посему фтопку компилер, взомнивший себя шибко
грамотным... Более ранняя версия работала "как в мудрых книгах
написано" - привели указатель к void* или char*, вызывается
предсказуемая библиотечная функция побайтного копирования (и все
остальные из string.h). И Гyдвин(118 знак., 23.07.2020 23:39)
- Говнокода. И не такие уж и тысячи. Практически всё что завелось не
на x86 такого говнокода не содержит. Потому, что и MIPS, и ARM --
это аппаратное исключение при невыравненном обращении и дальше либо
фиксация ошибки, либо программная эмуляция команды с невыравненным
чтением-записью (очень не быстро...) И даже на современном x86
словить исключение при невыравненном обращении -- запросто
(векторные инструкции). Ещё раз, повторю, упакованные структуры --
НЕ СТАНДАРТНАЯ ХЕРНЯ. fk0(3121 знак., 24.07.2020 01:19, ссылка)
- Все же тут похоже на глюк компилятора. PACKED это такой же
модификатор структуры как volatile или const которые должны
распространяться на все члены структуры. Соответственно, когда
делается &a.b на выходе должен получаться указатель с
соответствующим модификатором. А тут модификатор PACKED потерялся,
остальное последствия. Но я не большой знаток. - AlexBi(24.07.2020 09:53)
- А какой тип будут иметь по-твоему тогда члены структуры? Если в
структуры положить структуры и их тоже сделать packed -- получится.
А если в структуре уже лежит обычный int? Явно ж записано, что
такое-то поле -- int и с ним могут что-то делать и нельзя неявно
подменить тип -- работать перестанет (программист может начать
где-то сравнивать типы, например). Сама идея упакованных структур
-- не продуманная, в ней есть логические противоречия. - fk0(24.07.2020 11:46)
- В данном случае члены структуры должны становиться packed. А как,
по-твоему, работает (должно работать) volatile структура? Будут ее
члены каждый раз перечитываться? Указатель на члена структуры будет
volatile? AlexBi(405 знак., 24.07.2020 13:50)
- С чего ты решил, что они кому-то что-то должны? Где это написано?
Тип поля, если это не вновь определяемая на месте структура, уже
определён ранее и измениться никак не может (иначе это другой,
новый тип должен быть). А выравнивание и размер -- это атрибуты,
свойства, типа. Поэтому если ты в упакованную структуру положишь
ранее определённый тип, то он сохранит свои свойства. Структура
останется с "дырками" для выравнивания, обычный int сохранится с
alignas(4). Что мы и fk0(263 знак., 24.07.2020 14:34, ссылка)
- В студии не хватает кода. Там запросто может быть два определения
структуры -- с packed и без. - SciFi(24.07.2020 09:59)
- Вот суть: Гyдвин(1541 знак., 24.07.2020 10:24)
- тут знаю одно - атрибуты packed и volatile при пропускании через
формальные параметры функции завсегда теряются, но по ходу успевают
цепляться яйцами:) Vit(147 знак., 23.07.2020 22:12)
- Да и ты сделал #pragma pack, но нихера не вернул обратно (через
pragma push/pop -- смотри у меня пример по ссылке). В итоге у тебя
вся программа "упакованная" и глючная. Хуже того, в зависимости от
порядка включения хедеров одни и те же структуры в разных модулях
могли оказаться упакованные или нет. Кровь, кешки, фарш! - fk0(23.07.2020 21:55)
- Нужно весь тип структуры смотреть - пакед, не пакед, что впереди,
размерность. - VLLV(23.07.2020 16:29)
- есть утилита для jlink, которая сохраняет принятые данные SWO в
файл? - Constantin24(21.07.2020 20:26, ARM, полностью)
- По поводу грабель компиляторов: il-2(453 знак., 24.07.2020 14:56, ARM, полностью)
- А может кто делал, реальную подстройку битрейда по sync в LINBUS??
поделитесь опытом ! - Aleksey_75(21.07.2020 19:18, ARM)