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

Помогите выбрать - PIC или AVR или ARM


Рекомендуемые сообщения

Потому что матлаб производит вычисления в числах с плавающей запятой.

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

И все-таки такие участки лучше делать сразу на ассемблере, а не надеятся на оптимизатор компилятора.

Хранить можно и во внешней ОЗУ в режиме прямого доступа к памяти. Хочешь-не-хочешь, а всеравно прийдется познакомится с этой технологией.

хранение всего кадра необходимо потому что всю информацию даже о первом столбце камера выдаст только по окончании кадра (в последней строке). хотя конечно озадачили. я просто еще не окончательно ознакомился с документацией на камеру, но дело в том, что разница времени между длительностью кадра(при 30 fps) и расчетной скоростью выдачи кадра камерой отличается помоему в 20 раз(я проводил приблизительный расчет), так что где то время для подсчетов остается, может и хватит. Подскажите тогда какую нибудь внешнюю ОЗУ 32, 64 кБ чтоб я хоть знал куда копать. Хотя последняя прочитанная информация склоняет меня больше к AT91SAM7S128 (32кБ SRAM и цена ~9 USD)ну или AT91SAM7S256 (64кБ SRAM и цена ~12 USD), но второй ценой не очень радует

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Вот прикинул.

Нахождение строки с самой большой суммой. Сами данные не сохраняем.

Данные приходят на порт "С"

Синхронизируем их запись по внешнему прерыванию.

Вот такой, обработчик внешнего прерывания получился

Номер самой большой строки будет в переменной "max_number_line", надо еще добавить, что бы по окончанию выставлялся флаг, при правильном подходе еще два такта контроллера.

#define MAX_COUNT_LINE 160
#define MAX_COUNT_ITEM_LINE 120

__no_init __regvar unsigned char count_item_line @15; 
__no_init __regvar unsigned char count_line @14;
__no_init __regvar unsigned char number_line @13;
__no_init __regvar unsigned char max_number_line @12;
__no_init __regvar unsigned int sum_current_item_line @10;
__no_init __regvar unsigned int old_sum_item_line @8;


__interrupt void SynchronizationLine()
{
sum_current_item_line = sum_current_item_line + PORTC;

count_item_line--;
if(count_item_line == 0)
	{
		if(sum_current_item_line > old_sum_item_line)
			{
 				old_sum_item_line = sum_current_item_line;
 				number_line = count_line;
			}
			sum_current_item_line = 0;
			count_item_line = MAX_COUNT_ITEM_LINE;
	}

	count_line--;
	if(count_line == 0)
		{
 			count_line = MAX_COUNT_LINE;
 			max_number_line = number_line;
 			number_line = 0;
		}

}

Теперь о времени выполнения:

В симуляторе AVR Studio была выставлена частота тактирования 16 мГц

При подсчете суммы в строке, время выполнения прерывания 2.31 us (микросекунда)

При переходе на другой кадр 3 us

Вот ассемблерный листинг, оптимизация компилятора по скорости включена на максимум

3:   	__interrupt void SynchronizationLine()
14:   	{
+00000046:   932A    	ST    	-Y,R18 		Store indirect and predecrement
+00000047:   931A    	ST    	-Y,R17 		Store indirect and predecrement
+00000048:   930A    	ST    	-Y,R16 		Store indirect and predecrement
+00000049:   B72F    	IN    	R18,0x3F   	In from I/O location
15:   		sum_current_item_line = sum_current_item_line + PORTC;
+0000004A:   B305    	IN    	R16,0x15   	In from I/O location
+0000004B:   E010    	LDI   	R17,0x00   	Load immediate
+0000004C:   0EA0    	ADD   	R10,R16    	Add without carry
+0000004D:   1EB1    	ADC   	R11,R17    	Add with carry
17:   		count_item_line--;
+0000004E:   94FA    	DEC   	R15        	Decrement
18:   		if(count_item_line == 0)
+0000004F:   F449    	BRNE  	PC+0x0A    	Branch if not equal
20:   				if(sum_current_item_line > old_sum_item_line)
+00000050:   148A    	CP    	R8,R10 		Compare
+00000051:   049B    	CPC   	R9,R11 		Compare with carry
+00000052:   F410    	BRCC  	PC+0x03    	Branch if carry cleared
22:       					old_sum_item_line = sum_current_item_line;
+00000053:   0145    	MOVW  	R8,R10 		Copy register pair
23:       					number_line = count_item_line;
+00000054:   24DD    	CLR   	R13        	Clear Register
25:   					sum_current_item_line = 0;
+00000055:   24AA    	CLR   	R10        	Clear Register
+00000056:   24BB    	CLR   	R11        	Clear Register
26:   					count_item_line = MAX_COUNT_ITEM_LINE;
+00000057:   24FF    	CLR   	R15        	Clear Register
+00000058:   94F3    	INC   	R15        	Increment
29:   			count_line--;
+00000059:   94EA    	DEC   	R14        	Decrement
30:   			if(count_line == 0)
+0000005A:   20EE    	TST   	R14        	Test for Zero or Minus
+0000005B:   F421    	BRNE  	PC+0x05    	Branch if not equal
32:   					count_line = MAX_COUNT_LINE;
+0000005C:   24EE    	CLR   	R14        	Clear Register
+0000005D:   94E3    	INC   	R14        	Increment
33:   					max_number_line = number_line;
+0000005E:   2CCD    	MOV   	R12,R13    	Copy register
34:   					number_line = 0;
+0000005F:   24DD    	CLR   	R13        	Clear Register
37:   	}
+00000060:   BF2F    	OUT   	0x3F,R18   	Out to I/O location
+00000061:   9109    	LD    	R16,Y+ 		Load indirect and postincrement
+00000062:   9119    	LD    	R17,Y+ 		Load indirect and postincrement
+00000063:   9129    	LD    	R18,Y+ 		Load indirect and postincrement
+00000064:   9518    	RETI   

Код написал только для того что бы Вы могли прикинуть, хватит времени на обработку ядром AVR и СИ для решение этой задачи.

Исправил строчку number_line = count_item_line; на number_line = count_line;

P.S.

Такие вещи надо делать только на ассемблере, если начнешь делать на Си - результат трудно будет предсказать, может и 40Мгц не хватить.

На чистом асме конечно можно еще лучше написать, но что результат не предсказуем при использовании СИ Вы зря.

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

за материальный, либо моральный ущерб причиненный данным сообщением напрямую или косвенно.

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Хранить кадр в таком случае нет необходимости, просто на лету можно суммировать: каждый из 160 элементов в ячейку суммы строки,

и каждый из 160 элементов строки суммировать в ячейки суммы столбцов. итого получится за кадр 120 ячеек с суммами строк и 160 с суммами столбцов. а далее уже понятно - пройтись и выбрать максимальное значение, запомнить номер строки/столбца.

Учение - изучение правил. Опыт - изучение исключений.

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

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Хотя последняя прочитанная информация склоняет меня больше к AT91SAM7S128 (32кБ SRAM и цена ~9 USD)ну или AT91SAM7S256 (64кБ SRAM и цена ~12 USD), но второй ценой не очень радует

9 и 12 уе, не большая разница в цене, берите с большей памятью, если планируется серия, перейти на младший камень всегда успеете, а для экспериментов удобней с большей памятью.

Теперь о выборе:

С приколами архитектуры ARM7, Вы похоже не знакомы.

Акцентирую несколько нужных, Вам для выбора, моментов.

1. То что чипы на архитектуре ARM работают на высоких частотах, не предусматривает, что порты I/O работают также быстро. Внимательно смотрите в мануале на сколько быстро в конкретном чипе возможен обмен данными на внешних портах.

2. Старайтесь для экспериментов брать чипы с большем ОЗУ, так как время выполнения программы зависит из какой памяти она выполняется.

Для начало думаю хватит.

Изменено пользователем rtfcnf

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

за материальный, либо моральный ущерб причиненный данным сообщением напрямую или косвенно.

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Всем огромное спасибо за советы и ответы. Будем писать, пробовать. Думал сначала выбрать контроллер а потом уж углублятся в подробности их совместной работы с камерой. А прийдется наоборот :(

Хранить кадр в таком случае нет необходимости, просто на лету можно суммировать: каждый из 160 элементов в ячейку суммы строки,

и каждый из 160 элементов строки суммировать в ячейки суммы столбцов. итого получится за кадр 120 ячеек с суммами строк и 160 с суммами столбцов. а далее уже понятно - пройтись и выбрать максимальное значение, запомнить номер строки/столбца.

Я думал о подобном алгоритме, но если камера выдает пиксели с тактовой частотой процесора то получается не будет времени суммировать. Короче буду углублятся в даташит камеры...

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

  • 1 месяц спустя...

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Всем привет, ребята, все же какой контролер выбрать? Pic или avr? Конкренто мне для начала нужно в устройство, предствляющее собой автомабильный тахометр(конечная цель не он). Есть схема и прошивка для спидометра на pic16f84a.

Вообще с чем проще работать с пик или авр?

Посмотрел цены в интернет магазаине, пик контролеры дешевле, неподскажите аналог pic16f84a из avr что бы более коректно сравнить цены?

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

ATTINY2313, но лучше сразу брать ATMEGA8 в дип корпусе - цена не так уж высока, зато ресурсов несравнимо больше, есть где фантазии разгуляться.

Вообще считается что ATMEL контроллеры более серьезные, они раньше начали развиваться. Зато среди MICROCHIP встречаются контроллеры со сверхмалым потреблением - 5мкА и меньше в спящим режиме.

Чисто мое ИМХО - микрочиповские контроллеры неудобны тем что в процессе написания программы необходимо переключать банки регистров... лишняя трата программной памяти.

Зато в Атмеловских контрллерах есть возможность адресации к программной памяти для извлечения констант, строковых переменных и т.п.

Учение - изучение правил. Опыт - изучение исключений.

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

ATTINY2313, но лучше сразу брать ATMEGA8 в дип корпусе - цена не так уж высока, зато ресурсов несравнимо больше, есть где фантазии разгуляться.

Вообще считается что ATMEL контроллеры более серьезные, они раньше начали развиваться. Зато среди MICROCHIP встречаются контроллеры со сверхмалым потреблением - 5мкА и меньше в спящим режиме.

Чисто мое ИМХО - микрочиповские контроллеры неудобны тем что в процессе написания программы необходимо переключать банки регистров... лишняя трата программной памяти.

Зато в Атмеловских контрллерах есть возможность адресации к программной памяти для извлечения констант, строковых переменных и т.п.

если так то и по цене атмеловские дешевле, 120р против 190. Разница не большая но есть :) значит переключаюсь на авр

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

Выбирать действительно есть из чего, смотря для каких целей. Довольно удобны и адаптативны Pic. Но у них одна команда выполняется за четыре такта генератора. Этот нюанс нужно учитывать при разработке высокоскоростных устройств.

Слава антисионистам Владимиру Путину и Владимиру Квачкову!

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

  • 5 месяцев спустя...
Зато среди MICROCHIP встречаются контроллеры со сверхмалым потреблением - 5мкА и меньше в спящим режиме.

ATtiny13 (с первой страницы даташита):

– Active Mode:
• 1 MHz, 1.8V: 240μA
– Power-down Mode:
• < 0.1μA at 1.8V

В спящем режиме ATtiny13 атмеловцы даже не смогли померить ток потребления.

ATmega8 (аналогично):

• Power Consumption at 4 Mhz, 3V, 25°C
– Active: 3.6 mA
– Idle Mode: 1.0 mA
– Power-down Mode: 0.5 μA

А ведь последняя едва ли самая популярная в радиолюбительстве.

С PIC'ами дела не имел, но где-то слышал, что у них есть внутренний удвоитель (или еще какой множитель) частоты.

С другой стороны, во многих устройствах контроллер - наименее прожорливый элемент.

Изменено пользователем COKPOWEHEU

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Это не значит что они не смогли померять, скорей всего это лишь значит что разброс был большой и гарантировать точную цифру невозможно.

Учение - изучение правил. Опыт - изучение исключений.

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

Да догадываюсь. Яж не в упрек никому. Да и 0,1мкА достаточно мало, чтобы в большинстве схем вообще о нем не думать. А если есть стационарное питание то и 20мА это не много.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

  • 1 месяц спустя...

Помогите выбрать мк с : 2 spi портами, 2-мя обычными параллельными портами, 8-ми канальным АЦП ( точность не требуется, для оцифровки сигнала от 0В до 5В), таймером (желательно 16-битным), возможностью подвести 2 внешних прерывания по уровню сигнала, и вн. памятью (флеш,еепром, лишь бы перепрограммируемой и энергонезависимой) + сторожевой таймер.

Устал искать, либо spi порты завязаны на параллельных (выбор режима в регистрах), либо куча лишних ацп и 55 таймеров.

С портами важно - будут 4 устройства, которые должны будут подключены к разным портам, иначе морока с программированием большая слишком будет.

Да и ацп часто делают, как параллельный порт (т.е снова выбор режима, либо в/в, либо ацп), это удобно, но тогда снова не хватает портов(

Изменено пользователем Araxnid
Ссылка на комментарий
Поделиться на другие сайты

Возьми тогда контроллер в 100-выводном корпусе, там портов хватит... ATMEGA64x например.

Кстати, морока с переключением режимов не самое сложное... есть же расширители портов на SPI - одна микросхема и готов дополнительный двунаправленный порт на 8 бит, с выходом сигнала прерывания.

Учение - изучение правил. Опыт - изучение исключений.

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

Или если позволяет скорость - программный SPI

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Даже если не позволяет... Послать программный SS ведомому можно всегда. Можно обратиться к ATXmega64(128,192,256) А3.

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Народ, помогите с таким вопросом. Хотелось бы выбрать PICовский чип для поэкспериментировать. Имел знакомство с 16C52 и 16F877, но они стояли в стенде и имели предпрошитую программу, в связи с чем имелся ряд косяков (типа неотключающегося wdt у 16F877). Выбирая для себя по инет-магазинам потерялся в многообразии. Хочу проверенную модель с ЦАП, АЦП 3-5 таймеров, не менее 5 портов, частота большой роли не играет, естественно бюджетный вариант и не помешало бы с внешним прерыванием. Буду рад любым советам.

Может кто подскажет, где можно посмотреть расшифровки имени чипа.

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

с ЦАП-ом чипов очень мало, и они жутко дорогие. Дешевле подключать внешний ЦАП по I2C.

А сами расшифровки лучше искать на сайте самого микрочипа! Даже русское их представительство есть, вроде как microchip.ru а на сайте microchip.com можно найти сравнительную табличку микроконтроллеров конкретного семейства. По ней и подбирать.

Учение - изучение правил. Опыт - изучение исключений.

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

  • 4 месяца спустя...

Ну и в зависимости от задачи ЦАП можно организовать на ШИМ. Этот модуль присутствует в МК.

Раз производительность большой роли не играет, то можно глянуть всё тот же 877 или 874 (отличие только в памяти): как и заказывали 5 портов, 3 таймера, ШИМ, АЦП и 14 источников прерывания

В поисках работы..

Looking for job

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

  • 10 месяцев спустя...

Почему большинство (если не все) схем радиоуправляемых устройств собирают на PIC микроконтроллерах? Говорят, что аналогичные устройства возможно собирать и на AVR (но я таких схем пока не встречал)

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

Большинство радиоуправляемых устройств собирают на специализированных микросхемах, универсальный контроллер можно использовать например для фильтрации помех или расширения управления, тогда к высокочастотному модулю можно подключить любой. С другой стороны в линейке AVR вроде есть контроллеры с соответствующим модулем, но тут не уверен, не интересовался, википедия говорит про серии ATAхxxx, ATAMxxx.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Потому что PIC-контроллеры одни из самых ранних, радиолюбители их освоили и пошло поехало. Сами знаете как сарафанное радио работает. Пока контроллеров хватает для целей передачи команд по радио - их будут использовать, но к примеру AVR для тех же целей могут использовать более низкие частоты или реализовать более помехоустойчивые алгоритмы, но пока простому рядовому любителю этого не надо - будут править старые разработки, с чего все начиналось - а там сплошные первенцы PIC... Этот маховик еще долго будет останавливаться, инерция слишком большая.

Учение - изучение правил. Опыт - изучение исключений.

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

Останавливаться? Насколько я знаю сейчас активно развиваются ARM в связке со всеми беспроводными технологиями и, с другой стороны, сами по себе дешевеют, пусть и более простые. Так что AVR вряд ли будут популярны в этой области.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

Думаешь, из-за развития ARM-ов люди все еще будут использовать PIC-и?

Не думаю что ARM-ы будут сильно популярны, особенно со встроенными радиочастотными трактами - слишком сложны в освоении, изготовлении и имеют высокую стоимость.

Учение - изучение правил. Опыт - изучение исключений.

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

Супер-навороченные, конечно, не будут популярны, но по функциональности, скорости работы и цене ARM вроде как обходят как минимум AVR (про PIC ничего сказать не могу потому что не знаю их). Может со временем станут популярным радиолюбительским контроллером.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

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

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

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