Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 04:29

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 19:42 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ArtemKAD писал(а):
Вах, откель такой ужас ?
Вы вероятно не поняли моей мысли. 20 корпусов на РАЗНЫХ платах соединенных ДВУМЯ проводами. Протокол обмена по проводу - асинхронный где-то на 9600...19200 (нечто смахивающее на 1-Wire, LIN, CAN...)
На каждой плате поставить мелкий стабилизатор (а-ля Lp2950) и разместить плату там, где ее исполнители (датчики), а не тянуть все провода к одной общей.

Робот размером с пылесос не настолько большой, чтобы прокладка проводов к датчикам вызывала проблемы. А вот 2-3x20 создадут приличную паутину. Конечно, если ставить задачу "взять 20 Мег и что-то на них сделать", то это решение. Но на деле будут постоянно вылезать задачи вроде "как 17-й МК может обратиться к 5-му, с учетом того, что 8-й при этом занят".
ArtemKAD писал(а):
Хищник писал(а):
Никаких ЭМИ (внутрь корпуса влезет?),

Еще как влазит. Особенно наносекундная дрянь.

При соблюдении условий эксплуатации - не лезет. Промышленно изготовленный чип всяко устойчивее к ЭМИ на порядки, чем собственноручно напаянная мешанина проводов.
ArtemKAD писал(а):
Да хоть 100 ядер. Откель эти ядра исполняемые инструкции ОДНОВРЕМЕННО выбирать будут?! у Spartan-а "на борту" (на кристале) сотня кБайт блочной памяти которую можно раздать под память программ найдется? А чем они ОДНОВРЕМЕННО управлять будут? А с каких источников (АЦП) они данные брать будут?

Для ответа на эти вопросы надо посмотреть документацию на чип и плату. 12 блоков двупортовой памяти. 3xIDC40 - вот и АЦП.
ArtemKAD писал(а):
Кроме того, 10 МК это не только 10 ядер, но и десять оперативок, десять флешей программ (сразу готовых для исполнения, а не после загрузки), десятка 2-3 таймеров (3-4 десятка аппаратных PWM-ов или таймерных событий), десяток АЦП (более 50 каналов в т.ч. дифференциальных), десяток генераторов, около 200 универсальных ног ... и прочей мелкой и не очень ерунды. И все это работает ПОЛНОСТЬЮ независимо.

Не понял насчет "после загрузки". Пара миллисекунд от включения питания - это много? Флеш и периферия - единственный аргумент, за исключением термина "ПОЛНОСТЬЮ". Если бы было полностью, ПЛИС бы, скорее всего, умерли, не родившись.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 19:48 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
nicka писал(а):
Может лучше сраазу на си писать?

Был бы универсальный транслятор... Вообще говоря, программы для софт-процессоров получаются очень компактными, потому что нет инициализации периферии и накладных расходов на подготовку к выполнению нужной команды. Не говоря уже о том, что если очень хочется написать kbhit(), то ничто не мешает назначить ассемблерной команде именно такую мнемонику.
nicka писал(а):
Дык интели действительно не свернут, но на них свет клином не сошелся. avr, pic, arm, mips тут уже поминали.

А тут нет большой разницы :) Значит, эти производители не свернут... все равно же разработчик для МК прикидывает, как именно данный МК мог бы реализовать решение (да еще на данном языке). Связка ПЛИС + Форт дает более прямой путь (нужная периферия + нужные мнемоники аппаратных команд).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 19:51 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chess писал(а):
Кто бы спорил. Считать-то надо общие затраты и не только денег но и времени, которое тоже деньги. Ситуация по затратам, как не крути, в пользу россыпи контроллеров сейчас - ПО-то есть уже.

ПО для процессоров для ПЛИС тоже есть - Embedded Development Kit, который идет в связке с Eclipse и gcc. Так что тут и AVR, и даже ARM в глубочайшем пролете. Microblaze (который можно вставить в обсуждаемый кит) вообще ядро наподобие PowerPC.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 19:54 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ArtemKAD писал(а):
Делишь 20мс на 8 = 2,5мс. Это времянка для прерывания по компаратору ICR1 (40000 при 16МГц тактовой) . Из них первые 0,8 мс на принятие решения, а че-же делать и последние 0,3 мс "запаса". Настраиваешь 1-й таймер в режим 12 (CTC по icr1) .
Импульсы будут формироваться парами по одному на PB и PC. Начало импульса на нужном канале на обеих портах формируется в прерывании ICF1 (хоть сдвигом единички прочтенной из PORTx). Длительность устанавливается в OCR1a и OCR1b. В прерываниях OCR1a и OCR1b порты PB и PC DDR-ами переводятся в 3-е состояние (т.е. если все сделать аккуратно, то не надо сохранять даже SREG) чем и обеспечивается задний фронт при сохранении в регистре порта текущего формируемого канала.

"Многа букаф" :)))))))

Что интересно, внутри там все равно некая аппаратная структура, которую дикими усилиями пытается настраивать совершенно чуждое этой структуре процессорное ядро. Так сказать, жонглируя битами прерываний. По сравнению с аппаратным ШИМ в ПЛИС, который может (аппаратно же) реализовывать еще функции плавного запуска-остановка, защиты от реверса, автоотключения по срабатыванию внешнего датчика...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 21:47 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Хищник писал(а):
16-разрядное ядро для ПЛИС напрашивается оригинальное. Да, долго, плюс надо софт. Однако под идеологию ПЛИС оно подходит наилучшим образом. Главный плюс - можно как угодно крутить архитектуру.

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 22:10 
Хищник писал(а):
Что интересно, внутри там все равно некая аппаратная структура,

Да. Эдакий крутейший ;) 16 битный таймер-счетчик с тремя регистрами сравнения и возможностью аппаратно захватывать текущее значение по событию.
Хищник писал(а):
которую дикими усилиями пытается настраивать совершенно чуждое этой структуре процессорное ядро.

А вот этого как раз нет. Настройка там состоит в указании режима работы (12) , предделителя (0) и далее только до скольки считать.
После этой настройки таймер сам по достижению события дергает ядро за прерывания и сам по достижению, заданного в одном из регистров сравнения конца, сбрасывается в "0".
Хищник писал(а):
Так сказать, жонглируя битами прерываний.

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

Хищник писал(а):
По сравнению с аппаратным ШИМ в ПЛИС, который может (аппаратно же) реализовывать еще функции плавного запуска-остановка, защиты от реверса, автоотключения по срабатыванию внешнего датчика...

Да, тот таймер этого аппаратно не умеет. Он все это и не только умеет совместно с ядром. Начиная от аппаратного формирования PWM и кончая разбором принятой приемником "колбасы" сигнала.
Причем практически прозрачно для остальной части исполняемого кода. :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 27, 2007 23:01 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ArtemKAD писал(а):
Да. Эдакий крутейший 16 битный таймер-счетчик с тремя регистрами сравнения и возможностью аппаратно захватывать текущее значение по событию.

"И зачем нам в зоопарке все эти навороты?"
ArtemKAD писал(а):
А вот этого как раз нет. Настройка там состоит в указании режима работы (12) , предделителя (0) и далее только до скольки считать.
После этой настройки таймер сам по достижению события дергает ядро за прерывания и сам по достижению, заданного в одном из регистров сравнения конца, сбрасывается в "0".

А можно никого ни за что не дергать, а просто формировать ШИМ? 20 каналов, собственно, ерунда, я делал и 64 на одном чипе. Вот они никого не дергали, и делали именно ШИМ, а не просто таймер с прерыванием.
ArtemKAD писал(а):
Да, тот таймер этого аппаратно не умеет. Он все это и не только умеет совместно с ядром. Начиная от аппаратного формирования PWM и кончая разбором принятой приемником "колбасы" сигнала.

В итоге пришли к тому, что 20 меговских ядер на самом деле занимаются преимущественно беготней между своей периферией и попытками отвечать на дерганья с разных сторон. Тогда как периферия, описанная самостоятельно, делает именно то, что просят, и именно так, как просят.
Наблюдение за МК-проектами дало интересную картину. Перед началом работ (особенно когда речь идет о зарплате и получении заказа) почему-то все выглядит прекрасно - выбранный МК все может, периферия богатейшая, возможности подтверждены огромным сообществом разработчиков, компиляторы генерируют оптимальный летающий и компактный код. В середине оказывается, что программирование - ответственное и сложное занятие, программисты тоже люди, а периферия кривая И именно поэтому оно работает плохо. :) Конкретно по ШИМу это часто выливается в то, что силовые ключи начинают гореть, а программист потом хватается за голову и объясняет, где именно в инициализации он поставил неправильный бит, а где перепутал порядок проверки. Кроме того, тестовые примеры работают нормально, а при доводке софта (и введении в него дополнительных ресурсоемких алгоритмов) ядро перестает успевать дернуть таймер с приемлемым временем реакции на событие.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 01:25 
Хищник писал(а):
А можно никого ни за что не дергать, а просто формировать ШИМ?

Можно. Вот только ШИМ-ы разные бывают. В частности именно этот таймер позволяет сделать два полностью аппаратных ШИМа для 6-ти разновидностей. Ну а если надо больше или нечто хитрое, то приходится пользоваться ресурсами ядра используя таймер как генератор временных событий.
Хищник писал(а):
В итоге пришли к тому, что 20 меговских ядер на самом деле занимаются преимущественно беготней между своей периферией и попытками отвечать на дерганья с разных сторон.

А собственно Spartan занимается не тем-же? ;)

Хищник писал(а):
Наблюдение за МК-проектами дало интересную картину. Перед началом работ (особенно когда речь идет о зарплате и получении заказа) почему-то все выглядит прекрасно - выбранный МК все может, периферия богатейшая, возможности подтверждены огромным сообществом разработчиков, компиляторы генерируют оптимальный летающий и компактный код. В середине оказывается, что программирование - ответственное и сложное занятие, программисты тоже люди, а периферия кривая И именно поэтому оно работает плохо.

Странно... А у меня до сих пор за пределы двух мег88 (2х8кБ) никак вылезти не могу. А 90% проектов вообще на Мегах48-х... Причем все ЛЕТАЕТ почти всегда на 1МГц...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 01:50 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ArtemKAD писал(а):
А собственно Spartan занимается не тем-же?

ПЛИС, как правило, этим не занимаются, поскольку описание периферии на HDL позволяет внести туда такие особенности, которые обеспечат максимально автономную работу, и в большинстве случаев можно вообще туда лишний раз не обращаться. ШИМ для ПЛИС - это обычно регистр, в котором лежит число "коэффициент заполнения такой-то". В более интересных случаях туда кладется "выйди на такой-то код", причем модуль может делать это плавно, с аккуратной сменой знака при реверсе, с самостоятельным отслеживанием внешних аварийных датчиков и т.п. Для домашней разработки это кроме прочего экономит деньги на закупку силовых транзисторов взамен выбитых.

ArtemKAD писал(а):
Странно... А у меня до сих пор за пределы двух мег88 (2х8кБ) никак вылезти не могу. А 90% проектов вообще на Мегах48-х... Причем все ЛЕТАЕТ почти всегда на 1МГц...


Это никак не показатель. Задачи бывают разные. И если уж человек завел разговор о том, что кит уже куплен и надо бы его использовать, какой смысл убеждать выбросить имеющуюся плату и сходить за горстью МК? Разумеется, можно оставаться в рамках Мег.. хоть в рамках PICов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 03:32 
Хищник писал(а):
ШИМ для ПЛИС - это обычно регистр, в котором лежит число "коэффициент заполнения такой-то".

ШИМ для AVR - это обычных три регистра, в первом лежит "коэффициент заполнения такой-то", во втором лежит "частота повторения такая-то" и в третьем - "тип ШИМа такой-то" . А еще иногда добавляют регистр в котором лежит "защитный интервал такой-то" ;) .

Хищник писал(а):
ПЛИС, как правило, этим не занимаются,

А чем они занимаются? Подсчетом числа сферических коней в вакууме? Или все-же теми-же реакциями на внешние события и управление своей (хоть и узкоспециализированной) переферией? Т.е. так-же "на самом деле занимается преимущественно беготней между своей периферией и попытками отвечать на дерганья с разных сторон".
Разница лишь в том, что в ПЛИС переферию можно заточить под задачу. Но все равно затачивать можно не до бесконечности.

ArtemKAD писал(а):
Для домашней разработки это кроме прочего экономит деньги на закупку силовых транзисторов взамен выбитых.


Не съэкономит :( . Выбить транзисторы вполне можно и с полностью правильно работающим ШИМом. Например завалив фронты или банальнейше "не туда" подключив или оставив "вис" на одном из плеч.

Хищник писал(а):
И если уж человек завел разговор о том, что кит уже куплен и надо бы его использовать, какой смысл убеждать выбросить имеющуюся плату и сходить за горстью МК?

Бо ему этой платы будет мало ;) . В лучшем случае она вся уйдет на обработку изображения. В хучшем - еще и не хватит...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 09:56 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
гляньте в сторону seaforth-24A, весьма достойное решение для данной задачи, имхо


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 10:12 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
chu писал(а):
гляньте в сторону seaforth-24A, весьма достойное решение для данной задачи, имхо


Пока не доступны платы разработки:)

Встретилось упоминание SEAFORTH24 в Anatoly Levenchuk's Journal
http://ailev.livejournal.com/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 10:44 
Не в сети
Аватара пользователя

Зарегистрирован: Вс мар 04, 2007 08:02
Сообщения: 229
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
http://ko.itc.ua/node/30623 компьютерное обозрение №22 (590) от 12 июня


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 13:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ArtemKAD писал(а):
А чем они занимаются? Подсчетом числа сферических коней в вакууме? Или все-же теми-же реакциями на внешние события и управление своей (хоть и узкоспециализированной) переферией? Т.е. так-же "на самом деле занимается преимущественно беготней между своей периферией и попытками отвечать на дерганья с разных сторон".
Разница лишь в том, что в ПЛИС переферию можно заточить под задачу. Но все равно затачивать можно не до бесконечности.

Вот только не надо обсуждать вкус устриц с теми, кто их ел ;)
ArtemKAD писал(а):
Не съэкономит . Выбить транзисторы вполне можно и с полностью правильно работающим ШИМом. Например завалив фронты или банальнейше "не туда" подключив или оставив "вис" на одном из плеч.

А еще можно устроить к.з. Вопрос в том, что личной мой опыт выпуска изделий с силовыми элементами показывает, что МК выбивают ключи из-за ошибок в программе, а ПЛИС - не выбивают. Потому что программы, которая может подать что-то не то, в ПЛИС просто нет, есть модуль на vhdl, переносимый между всеми проектами и всеми семействами. А в МК постоянно получается "ой, да тут же надо было вот сюда единичку, а вот тут проверки местами поменять", причем проявляется не сразу.
ArtemKAD писал(а):
Бо ему этой платы будет мало . В лучшем случае она вся уйдет на обработку изображения. В хучшем - еще и не хватит...

Вот когда не хватит - тогда будем смотреть дальше. А иначе сейчас еще пикоманы набегут, насоветуют PIC123FFF456, причем обязательно с буквой "зю"...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 28, 2007 13:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
chu писал(а):
гляньте в сторону seaforth-24A, весьма достойное решение для данной задачи, имхо

Отстойное, я бы сказал... Во-первых, надо сразу вчитаться в постановку задачи - у человека есть конкретная плата, купленная за свои деньги. Во-вторых, центральный пункт работ - конфигурирование ПЛИС. Флагманское решение для нее - Microblaze, программируемый на Си. Форт-процессоры и Форт могут появиться как вспомогательное решение, и бежать покупать несуществующий пока в реальности процессор в BGA-корпусе для домашнего проекта.... Тем более что существенной выгоды для решаемой задачи здесь нет.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB