byRAM 24 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба Только что, adnega сказал: Т.е. против новой тини10 с одним из вариантов этой системы команд вы ничего не имеете? А это вы меня с ТС перепутали, ему надо было определиться. Я лишь только подтвердил правильность выбора PIC-кнопки. Он его сможет быстрее освоить и запрограммировать за день. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба 1 минуту назад, byRAM сказал: А это вы меня с ТС перепутали, ему надо было определиться. В таком случае прошу соряна. 1 минуту назад, byRAM сказал: Я лишь только подтвердил правильность выбора PIC-кнопки. Он его сможет быстрее освоить и запрограммировать за день. Глянул цены на эти pic. Подтверждаю, если нужен минимальный BOM, то все верно с pic. Но мне (и многим другим) проще поставить M0 или AVR, т.к. с ценой МК вообще никаких проблем нет. Я порой подумываю ESP начать задействовать как МК общего назначения (без WiFi). Из-за размера ОЗУ в основном, но останавливает отсутствие защиты прошивки и дыры в документации по некоторым вопросам. Дал бы кто описание CAN в ESP32, я бы тут же начал его применять у себя масштабно. Есть, конечно, реверс-проекты на эту тему, но хочется более-менее официально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба On 1/20/2021 at 9:49 AM, ViKo said: Или есть более современные микроконтроллеры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба Он, вроде как, 5V МК хочет. Хотя, как я понял, вопрос был решен еще странице на 2 или 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба Да, нужен 5-вольтовый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 22 января, 2021 Опубликовано 22 января, 2021 · Жалоба Способ лучше? - двигайте имена (define), а не числа. Вот они "золотые слоава" ;-) Не хочет. А они есть в виде .EQU/define. На приводившемся скриншоте? Да ну? Ну да ладно в "игнор" его. Взаимно: "...сразу - свободен" ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrBearManul 0 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба 11 часов назад, byRAM сказал: 5. AVR имели такой ужасный глюк Когда это был такой глюк, не напомните? Активно работал с этими микроконтроллерами в 2003 - 2013 годах. Активно участвовал в обсуждениях на различных форумах. А глюка такого не припоминаю. 11 часов назад, byRAM сказал: Могу только разжевать и в рот положить: Благодарю, теперь ваша мысль предельна ясна. 11 часов назад, byRAM сказал: неистовые фанаты STM32 против всех остальных недалёких Так это политика фирмы ST постаралась. Дешёвые отладочные платы (ну недавно, по крайней мере), "развитые" средства поддержки пользователя: кубы, либы. И не важно, что качества, мягко говоря, не очень высокого. Зато позволяют пользователю максимально быстро въехать в тему. Правда некоторы так и остаются на этих "либах", даже вроде бы въехав. При этом совершенно не читают документацию на сам микроконтроллер или читают её по диагонали. А зачем: в либах куча комментариев, на диске гора примеров) Я на примере одного коллеги своего рассказываю)) 11 часов назад, byRAM сказал: Это неопровержимый факт. Забавненько. Ещё раз повторяю что почти за десятилетнюю карьеру именно с AVR впервые о таком глюке слышу. Не приведёте какие-либо ссылочки на баталии тех времён именно об этом глюке? 10 часов назад, byRAM сказал: Так о том и речь, что у PIC-контроллера такой блокировки не наблюдалось от слова совсем Это некорректное сравнение. 10 часов назад, byRAM сказал: И это при том, что выставлялись без галочек. Гм ещё раз. Тоже не помню. Программировал через STK200 и STK500. Может быть на другом программаторе проявлялось ? 8 часов назад, adnega сказал: везде avr от Atmel`a. А это точно не дураки. Они же, кстати, стоят (столи?) в некоторой периферии для ПЛК от Siemens. Да и в самих модулях ввода-вывода, если не ошибаюсь, я их встречал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
byRAM 24 23 января, 2021 Опубликовано 23 января, 2021 (изменено) · Жалоба Только что, MrBearManul сказал: Когда это был такой глюк, не напомните? Активно работал с этими микроконтроллерами в 2003 - 2013 годах. Активно участвовал в обсуждениях на различных форумах. А глюка такого не припоминаю. Забавненько. Ещё раз повторяю что почти за десятилетнюю карьеру именно с AVR впервые о таком глюке слышу. Не приведёте какие-либо ссылочки на баталии тех времён именно об этом глюке? Ну вот, например, на этом форуме: Только что, MrBearManul сказал: Гм ещё раз. Тоже не помню. Программировал через STK200 и STK500. Может быть на другом программаторе проявлялось ? У меня дракон так глючил. Раза с пятого-шестого понял, как обойти, но деталей уже не помню. Давно это было, году эдак в 2008-2010. Там весь секрет был в последовательности действий при внутрисхемной прошивке/отладке. Явно не для начинающего. Только что, MrBearManul сказал: Это некорректное сравнение. В данной теме вполне корректное. ТС не имел дела ни с теми, ни с другими, поэтому напороться на самопроизвольную установку Lock я ему не желаю. У PIC-контроллеров ничего подобного никогда не было, потому что это исключено в принципе внутрисхемной отладки. Изменено 23 января, 2021 пользователем byRAM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба Кто не имел дела? Я не имел? Я программировал 8085, 8051, Atmel 8953 (что-то такое, с кучей ошибок в datasheet, с перепиской, навсегда отбившей желание связываться с Atmel), PIC10, PIC12, PIC16, STM32 всяких... "Казань брал. Шпака (AVR...) не брал." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 58 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба 16 часов назад, byRAM сказал: 1. PIC32 имеют только 30 с чем-то команд против 90 с чем-то AVR. Но бОльшая часть команд AVR - это вариации 30 с чем-то PIC-овских. Это + в счёт AVR, так как оптимальнее компиляция при написании на Си. PIC32 - это MIPS архитектура. 32-разрядные МК у Microchip. Появились лет на 15 позже AVR. Эти семейства МК находятся в разных весовых категориях, и PIC32 уместно сравнивать с Cortex-M. Откройте даташит на MIPS32 и посчитайте количество команд. Их больше сотни. Да, там есть родственные типа варианты условных переходов или AND с регистром или с константой, но тем не менее это разные опкоды - разные инструкции. 16 часов назад, byRAM сказал: 3. В то же время AVR со своей сотней не мог тягаться по математическими способностями MCS51 или Z80. AVR при той же тактовой был быстрее на порядок (сиречь в 10 раз) чем классический MSC-51. Да, Z80 был на математике побыстрее за счёт 16-разрядного ALU, но в целом тоже уступал. К тому же это микропроцессор, а не микроконтроллер, и сравнивать их бессмысленно - разные ниши. 16 часов назад, byRAM сказал: 5. AVR имели такой ужасный глюк, как самозащёлкивание при внутрисхемном программировании. Чушь. Уже сказали неоднократно. В прямых руках ничо не защёлкивалось. У AVR в ранних партиях были проблемы с сохранностью EEPROM, когда при выключении процессор уже терял способность работать правильно, но напряжения питания ещё хватало на какие-то действия - чаще всего страдала ячейка EEPROM по адресу 0. Лечилось блокировкой при снижении напряжения питания. Внешней. На эту тему была апнота. Потом и внутри добавили brown-out detector. К AVR на самом деле большинство вопросов архитектурные. Но тут уж ничего не поделать. И для своего времени они были революционными - флешовые с внутрисхемным программированием, хорошее соотношение "инструкция/такт", достаточно эффективно на них ложился С (по утверждениям Atmel это семейство специально проектировалось для эффективной реализации кодогенерации с языка С - согласовывали те или иные моменты с разработчиками компиляторов, правда вот недоработали тут), в отличие от того же PIC16 и MSC-51 (у первого из-за аппаратного стека адресов возврата глубиной 8, у второго из-за неэффективной косвенной адресации, что плохо влияет на работу со стеком). Ну, а вообще, персонаж похож на тролля - уж слишком много подобного в его постах и всё довольно толсто. Изрядно напоминает доктора - как бы не очередная инкарнация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MDD 0 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба 11 hours ago, byRAM said: А неистовых зомби-фанатиков AVR продолжает плющить и колбасить Справедливости ради "неистово колбасит" в этой теме почему-то именно Вас. Остальные более-менее беспристрастны и технически корректны. У меня об AVR остались теплые воспоминания. Устройства моей разработки выпускались тысячными тиражами. Одно выпускается мелкосерийно до сих пор. Никаких перечисленных ужасов с ними не наблюдалось. При этом против ПИКов ничего не имею. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба 20 часов назад, ViKo сказал: Сделать максимально дёшево и быстро По-видимому, просто хотят сказать, что на PIC наоборот, дорого и долго — исходя из объёмов сказанного, наверное в разы, а то и на порядки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MDD 0 23 января, 2021 Опубликовано 23 января, 2021 (изменено) · Жалоба 58 minutes ago, Plain said: По-видимому, просто хотят сказать, что на PIC наоборот, дорого и долго — исходя из объёмов сказанного, наверное в разы, а то и на порядки. Просто автор топика поначалу немного "путался в показаниях". То ему надо сильно подешевле, то оказалось что стоимость контроллера в общей смете проекта исчезающе мала. То ему "хотелось изучить что-то новое", то надо сделать очень быстро и на знакомом семействе... Это породило много ненужных советов. Изменено 23 января, 2021 пользователем MDD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 2 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба Так, мысли. Написать на Си, то что надо - задача простая, сконпелять в XC8 для пика12 и avr tiny, сделать отчет. Я сделал простой тест для XC8 и GCC на tiny13 и был несколько в недоумении от оптимизации: //xc8 C volatile uint8_t a, b, c; int main(void) { a = 1; b = 2; while(1) { c=a+b; c = c*3; c++; c=c/21; } } // результат Disassembly of section .text: 00000000 <__vectors>: 0: 0c c0 rjmp .+24 ; 0x1a <__ctors_end> 2: 5e c0 rjmp .+188 ; 0xc0 <__bad_interrupt> 4: 5d c0 rjmp .+186 ; 0xc0 <__bad_interrupt> 6: 5c c0 rjmp .+184 ; 0xc0 <__bad_interrupt> 8: 5b c0 rjmp .+182 ; 0xc0 <__bad_interrupt> a: 5a c0 rjmp .+180 ; 0xc0 <__bad_interrupt> c: 59 c0 rjmp .+178 ; 0xc0 <__bad_interrupt> e: 58 c0 rjmp .+176 ; 0xc0 <__bad_interrupt> 10: 57 c0 rjmp .+174 ; 0xc0 <__bad_interrupt> 12: 56 c0 rjmp .+172 ; 0xc0 <__bad_interrupt> 00000014 <.dinit>: 14: 00 60 ori r16, 0x00 ; 0 16: 00 63 ori r16, 0x30 ; 48 18: 80 00 .word 0x0080 ; ???? 0000001a <__ctors_end>: 1a: 11 24 eor r1, r1 1c: 1f be out 0x3f, r1 ; 63 1e: cf e9 ldi r28, 0x9F ; 159 20: cd bf out 0x3d, r28 ; 61 00000022 <__do_copy_data>: 22: e4 e1 ldi r30, 0x14 ; 20 24: f0 e0 ldi r31, 0x00 ; 0 26: 40 e0 ldi r20, 0x00 ; 0 28: 17 c0 rjmp .+46 ; 0x58 <__do_clear_bss+0x8> 2a: b5 91 lpm r27, Z+ 2c: a5 91 lpm r26, Z+ 2e: 35 91 lpm r19, Z+ 30: 25 91 lpm r18, Z+ 32: 05 91 lpm r16, Z+ 34: 07 fd sbrc r16, 7 36: 0c c0 rjmp .+24 ; 0x50 <__do_clear_bss> 38: 95 91 lpm r25, Z+ 3a: 85 91 lpm r24, Z+ 3c: ef 01 movw r28, r30 3e: f9 2f mov r31, r25 40: e8 2f mov r30, r24 42: 05 90 lpm r0, Z+ 44: 0d 92 st X+, r0 46: a2 17 cp r26, r18 48: b3 07 cpc r27, r19 4a: d9 f7 brne .-10 ; 0x42 <__DATA_REGION_LENGTH__+0x2> 4c: fe 01 movw r30, r28 4e: 04 c0 rjmp .+8 ; 0x58 <__do_clear_bss+0x8> 00000050 <__do_clear_bss>: 50: 1d 92 st X+, r1 52: a2 17 cp r26, r18 54: b3 07 cpc r27, r19 56: e1 f7 brne .-8 ; 0x50 <__do_clear_bss> 58: e9 31 cpi r30, 0x19 ; 25 5a: f4 07 cpc r31, r20 5c: 31 f7 brne .-52 ; 0x2a <__do_copy_data+0x8> 5e: 03 d0 rcall .+6 ; 0x66 <_etext> 60: 00 c0 rjmp .+0 ; 0x62 <_exit> 00000062 <_exit>: 62: f8 94 cli 00000064 <__stop_program>: 64: ff cf rjmp .-2 ; 0x64 <__stop_program> Disassembly of section .text: 000000c0 <__bad_interrupt>: c0: 9f cf rjmp .-194 ; 0x0 <__TEXT_REGION_ORIGIN__> Disassembly of section .text.startup: 00000066 <main>: volatile uint8_t a, b, c; int main(void) { a = 1; 66: 81 e0 ldi r24, 0x01 ; 1 68: 80 93 62 00 sts 0x0062, r24 ; 0x800062 <a> b = 2; 6c: 82 e0 ldi r24, 0x02 ; 2 6e: 80 93 60 00 sts 0x0060, r24 ; 0x800060 <__DATA_REGION_ORIGIN__> { c=a+b; c = c*3; c++; c=c/21; 72: 25 e1 ldi r18, 0x15 ; 21 while(1) { c=a+b; 74: 90 91 62 00 lds r25, 0x0062 ; 0x800062 <a> 78: 80 91 60 00 lds r24, 0x0060 ; 0x800060 <__DATA_REGION_ORIGIN__> 7c: 89 0f add r24, r25 7e: 80 93 61 00 sts 0x0061, r24 ; 0x800061 <c> c = c*3; 82: 80 91 61 00 lds r24, 0x0061 ; 0x800061 <c> 86: 98 2f mov r25, r24 88: 99 0f add r25, r25 8a: 89 0f add r24, r25 8c: 80 93 61 00 sts 0x0061, r24 ; 0x800061 <c> c++; 90: 80 91 61 00 lds r24, 0x0061 ; 0x800061 <c> 94: 8f 5f subi r24, 0xFF ; 255 96: 80 93 61 00 sts 0x0061, r24 ; 0x800061 <c> c=c/21; 9a: 80 91 61 00 lds r24, 0x0061 ; 0x800061 <c> 9e: 62 2f mov r22, r18 a0: 03 d0 rcall .+6 ; 0xa8 <__udivmodqi4> a2: 80 93 61 00 sts 0x0061, r24 ; 0x800061 <c> a6: e6 cf rjmp .-52 ; 0x74 <main+0xe> Disassembly of section .text.libgcc.div: 000000a8 <__udivmodqi4>: a8: 99 1b sub r25, r25 aa: 79 e0 ldi r23, 0x09 ; 9 ac: 04 c0 rjmp .+8 ; 0xb6 <__udivmodqi4_ep> 000000ae <__udivmodqi4_loop>: ae: 99 1f adc r25, r25 b0: 96 17 cp r25, r22 b2: 08 f0 brcs .+2 ; 0xb6 <__udivmodqi4_ep> b4: 96 1b sub r25, r22 000000b6 <__udivmodqi4_ep>: b6: 88 1f adc r24, r24 b8: 7a 95 dec r23 ba: c9 f7 brne .-14 ; 0xae <__udivmodqi4_loop> bc: 80 95 com r24 be: 08 95 ret Оптимизация максимальная, больше только в ПРО. Чего он постоянно сует переменные в рам а потом их высовывает оттуда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 23 января, 2021 Опубликовано 23 января, 2021 · Жалоба 13 часов назад, adnega сказал: Я порой подумываю ESP начать задействовать как МК общего назначения (без WiFi). Из-за размера ОЗУ в основном, но останавливает отсутствие защиты прошивки и дыры в документации по некоторым вопросам. Дал бы кто описание CAN в ESP32, я бы тут же начал его применять у себя масштабно. Получается - документации (официальной) на него нет? В этом случае я бы поостерёгся использовать его для более менее серьёзного проекта. Ведь кто мешает производителю завтра что-то молча "подправить" в периферии? Он же не гарантировал Вам, что по такому-то адресу будет такой-то регистр в котором будет такой-то бит. И он будет прав. А вы сядете в лужу с уже разработанным девайсом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться