реклама на сайте
подробности

 
 
> Помехоустойчивость LPC2xxx, Способны ли работать без гальвпанической развязки
Karol
сообщение Dec 9 2005, 06:54
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 23-06-04
Пользователь №: 150



Есть задача переделать CAN IO модуль и сделать его с АРМом. В существующем модуле питание решено так, что внешних 24V стабилизируется без развязки на 12V, с которого питаются катушки реле, и далее стабилизируется на 5V, с которого питается логика. Сторона CAN питается через DC/DC преобразователь.

Какой опыт, способен АРМ работать в индустриальной среде без гальванической развязки ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex03
сообщение Dec 11 2005, 11:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



2 zltigo

> 3. Открываем,читаем,закрываем... А где? в отцитированном подтверждение
> Вашего утверждения:
>> порт 1 всегда с подпоркой, а порт 0 без...

Глава PIN CONFIGURATION из юзер мануала.
Таблица Pin description for нужный чип.
Далее читаем Note-сы для каждого порта. Например у меня для LPC2292/2294

Note: All Port 0 pins excluding those that can be used as A/D inputs (P0.27, P0.28, P0.29
and P0.30) are functionally 5V tolerant. If the A/D converter is not used at all, pins
associated with A/D inputs can be used as 5V tolerant digital IO pins. See "A/D Converter"
chapter for A/D input pin voltage considerations.

Note: All Port 1 pins are 5V tolerant with built-in pull-up resistor that sets input level to high
when corresponding pin is used as input.

Note: All Port 2 pins excluding those that can be used as A/D inputs (P2.30 and P2.31)
are functionally 5V tolerant. Port 2 pin configured to perform an input function will use builtin
pull-up resistor
to set the default input level to high. If the A/D converter is not used at all,
pins associated with A/D inputs can be used as 5V tolerant digital IO pins. See "A/D
Converter" chapter for A/D input pin voltage considerations.

Note: All Port 3 pins excluding those that can be used as A/D inputs (P3.28 and P3.29)
are functionally 5V tolerant. Port 3 pin configured to perform an input function will use builtin
pull-up resistor
to set the default input level to high. If the A/D converter is not used at all,
pins associated with A/D inputs can be used as 5V tolerant digital IO pins. See "A/D
Converter" chapter for A/D input pin voltage considerations.

Далее включаем дедуктивный метод Шерлока Холмса насчёт P0. smile.gif

А вот про I2C в этой же таблице:

P0.2 SCL I2C clock input/output. Open drain output (for I2C compliance).
CAP0.0 Capture input for TIMER0, channel 0.

P0.3 SDA I2C data input/output. Open drain output (for I2C compliance).
MAT0.0 Match output for TIMER0, channel 0.
EINT1 External interrupt 1 input.

Читая это любой читатель поймёт что Open drain только для I2C, ан нет!

У атмела подход к конфигурянию портов поприятней ИМХО. smile.gif

2 Muxa
> Alex03, я не вполе доволен 6N137. ограничивает скорость. интересно, какую опторазвязку
> Вы используете?

Я же написал ADuM1201, тока эт уже не опто-, но гальвано-. Работает нормально и габариты клёвые. Мы ими и SPI на ~5MHz развязывали.


2 All

Про прерывания.
Да нормальная система. Любая логика приоритетов програмно реализуется ежели надо.
Скорость реакции? А оно надо? Ну что такого вы делаете чтобы на прерывание за 1 такт реагировать надо было? Оправдывает ли это отказ от команд типа LDM произвольного числа регистров и т.д.?
Хорошо конечно когда сразу, но в большинстве случаев не критично. А там где критично надо изначально подходить к выбору чипов в системе с учётом этого.
Вот потеря прерываний, даже расписанная в еррата-х меня печалит больше! smile.gif
ИМХО.
Go to the top of the page
 
+Quote Post
spf
сообщение Dec 11 2005, 15:42
Сообщение #3


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Alex03 @ Dec 11 2005, 16:09) *
Любая логика приоритетов програмно реализуется ежели надо.
cranky.gif И нафига тогда контроллеры прерываний делают? wink.gif

Про вложенные прерывания слыхали? wink.gif

Реализуйте:
В любой момент обработки прерывания L с приоритетом LOW, если формируется запрос прерывания HIGH то перейти к обработчику H.


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Alex03
сообщение Dec 11 2005, 17:27
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(spf @ Dec 11 2005, 20:42) *
Цитата(Alex03 @ Dec 11 2005, 16:09) *
Любая логика приоритетов програмно реализуется ежели надо.

cranky.gif И нафига тогда контроллеры прерываний делают? wink.gif

Про вложенные прерывания слыхали? wink.gif

Реализуйте:
В любой момент обработки прерывания L с приоритетом LOW, если формируется запрос прерывания HIGH то перейти к обработчику H.


Легко, но не в В любой момент прерывания L, а в В любой момент обработки логики самого обработчика прерывания L.
Для этого в начало обработчика прерывания L и в его конец добавляется соответствующий код.

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


А теперь давайте про конкретности?
Сколько Вам надо прерываний в одном проекте? И сколько уровней их вложенности?
Почему нельзя обойтись без вложенности? Нужна быстрая реакция? Может стОит вынести часть обработчика в основную прогу? Т.е. в прерывании только забирать данные или наоборот запихивать их в периферию и взводить флажки?

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

ИМХО отсутствие продвинутого контроллера прерываний в LPC в частности основано на архитектуре ARM, а именно не сохранение регистров в стеке, а переключение банка регистров а вместе с ним и стека. При таком подходе для реализации изначальной вложенности в N прерываний надо соответственно N банков регистров для прерываний (которые кстати должны глядеть в N стеков в памяти, что м.б. расточительно по памяти). Фирма ARM остановилась на N=2. FIQ и IRQ.
Go to the top of the page
 
+Quote Post
spf
сообщение Dec 12 2005, 04:33
Сообщение #5


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Alex03 @ Dec 11 2005, 22:27) *
Цитата(spf @ Dec 11 2005, 20:42) *
Реализуйте:
В любой момент обработки прерывания L с приоритетом LOW, если формируется запрос прерывания HIGH то перейти к обработчику H.
Легко, но не в В любой момент прерывания L, а в В любой момент обработки логики самого обработчика прерывания L.
Для этого в начало обработчика прерывания L и в его конец добавляется соответствующий код.


ЗАДАЧА НЕ РЕШЕНА (т.к. программного решения не имеет). Поэтому и легко.

Цитата
Сколько Вам надо прерываний в одном проекте?
10
Цитата
И сколько уровней их вложенности?
5 Причем 3 под управлением OS, остальные, с более высоким приоритетом, немаскируемые для сервайсав OS.

Цитата
Почему нельзя обойтись без вложенности? Нужна быстрая реакция? Может стОит вынести часть обработчика в основную прогу? Т.е. в прерывании только забирать данные или наоборот запихивать их в периферию и взводить флажки?

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

ИМХО: Нужна стабильная, понятная и предсказуемая реакция, чем меньше она зависит от изворотливости разработчика тем лучше.
Мне гораздо удобнее управлять приоритетами чем судорожно считать сколько будет выполняться операция в прерывании (после каждой редакции кода).


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Alex03
сообщение Dec 12 2005, 08:36
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(spf @ Dec 12 2005, 09:33) *
Цитата(Alex03 @ Dec 11 2005, 22:27) *
Легко, но не в В любой момент прерывания L, а в В любой момент обработки логики самого обработчика прерывания L.
Для этого в начало обработчика прерывания L и в его конец добавляется соответствующий код.


ЗАДАЧА НЕ РЕШЕНА (т.к. программного решения не имеет). Поэтому и легко.




Ну почитайте по ссылкам например тут

или вот это keil предлагает
Цитата
// Macros for Interrupt Nesting
#define IENABLE /* Nested Interrupts Entry */ \
__asm { MRS LR, SPSR } /* Copy SPSR_irq to LR */ \
__asm { STMFD SP!, {LR} } /* Save SPSR_irq */ \
__asm { MSR CPSR_c, #0x1F } /* Enable IRQ (Sys Mode) */ \
__asm { STMFD SP!, {LR} } /* Save LR */ \

#define IDISABLE /* Nested Interrupts Exit */ \
__asm { LDMFD SP!, {LR} } /* Restore LR */ \
__asm { MSR CPSR_c, #0x92 } /* Disable IRQ (IRQ Mode) */ \
__asm { LDMFD SP!, {LR} } /* Restore SPSR_irq to LR */ \
__asm { MSR SPSR_cxsf, LR } /* Copy LR to SPSR_irq */ \


Цитата(spf @ Dec 12 2005, 09:33) *
Цитата
Сколько Вам надо прерываний в одном проекте?
10
Цитата
И сколько уровней их вложенности?
5 Причем 3 под управлением OS, остальные, с более высоким приоритетом, немаскируемые для сервайсав OS.


А реальный пример вот этого всего можно?
ИМХО при использовании ОС Вы должны "играть" по её ОС-иным правилам.
С другой стороны в ОС д.б. механизмы управления прерываниями.

Цитата(spf @ Dec 12 2005, 09:33) *
Цитата
Почему нельзя обойтись без вложенности? Нужна быстрая реакция? Может стОит вынести часть обработчика в основную прогу? Т.е. в прерывании только забирать данные или наоборот запихивать их в периферию и взводить флажки?

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


Везде надо искать компромисы smile.gif

Цитата(spf @ Dec 12 2005, 09:33) *
ИМХО: Нужна стабильная, понятная и предсказуемая реакция, чем меньше она зависит от изворотливости разработчика тем лучше.
Мне гораздо удобнее управлять приоритетами чем судорожно считать сколько будет выполняться операция в прерывании (после каждой редакции кода).


Согласен, я тоже люблю когда всё гладко и красиво да ещё есть выбор использовать или нет. Но я уже попытался объяснить, что тут играет роль не нежелание производителей делать крутой контроллер прерываний с кучей их приоритетов, а архитектуру ARM которая не позволяет этого.
Так что спор перетекает в плоскость ARM - не ARM.
К тому же реалии таковы что развитие идёт в сторону повышения тактовой частоты с вредрением длинющих конвееров, кэшов и т.п., при этом ожидать быстрой реакции (в тактах) не приходится. И выход из этой ситуации простой и постепенно реализуемый - более умная перефирия. Т.е. FIFO буферы, DMA и т.д. В моём текущем проекте на LPC2292 мне был бы нужнее SPI c возможностью посылки 8/16/24/32битных слов чем куча прерываний с приоритетами. Кстати это снизило бы кол-во прерываний от SPI в 2 раза минимум, и упростило бы сам обработчик.
Ну а ногодрыгательством и програмной реализацией неких "по праву аппаратных" протоколов може убить любую производительность.

И ИМХО дальше разговор бессмысленен т.к. видимо каждый останется при своем мнении.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Karol   Помехоустойчивость LPC2xxx   Dec 9 2005, 06:54
- - spf   Цитата(Karol @ Dec 9 2005, 11:54) Какой о...   Dec 9 2005, 11:22
- - Evgeny_CD   Тут почитайте http://www.caxapa.ru/faq/emc_immunit...   Dec 9 2005, 11:28
- - Muxa   вопрос опторазвязки никогда не стоял по ТЗ. кажетс...   Dec 10 2005, 05:54
- - zltigo   Цитата(Muxa @ Dec 10 2005, 07:54) -- баг ...   Dec 10 2005, 09:35
|- - Andy Mozzhevilov   Цитата(zltigo @ Dec 10 2005, 14:35) 3. Им...   Dec 12 2005, 06:36
- - Alex03   Конечно в первую очередь erratа, притом последний ...   Dec 10 2005, 14:36
- - zltigo   Цитата(Alex03 @ Dec 10 2005, 16:36) Про п...   Dec 10 2005, 17:24
- - Muxa   zltigo Цитата1. А подробности/ссылки на описание б...   Dec 11 2005, 04:17
- - zltigo   Цитата(Muxa @ Dec 11 2005, 06:17) zltigo ...   Dec 11 2005, 06:06
|- - spf   Цитата(zltigo @ Dec 11 2005, 11:06) Баги ...   Dec 11 2005, 08:58
|- - Muxa   Цитата(zltigo @ Dec 11 2005, 09:06) Цитат...   Dec 13 2005, 01:25
- - zltigo   Цитата(spf @ Dec 11 2005, 10:58) - Время ...   Dec 11 2005, 10:38
|- - spf   Цитата(zltigo @ Dec 11 2005, 15:38) Да я ...   Dec 11 2005, 16:13
|- - Muxa   Цитата(Alex03 @ Dec 11 2005, 14:09) 2 Mux...   Dec 13 2005, 02:20
- - zltigo   Цитата(Alex03 @ Dec 11 2005, 13:09) 2 zlt...   Dec 11 2005, 14:14
|- - Alex03   Цитата(zltigo @ Dec 11 2005, 19:14) Цитат...   Dec 11 2005, 15:21
- - zltigo   Цитата(spf @ Dec 11 2005, 18:13) MB90-е, ...   Dec 11 2005, 16:56
- - zltigo   Цитата(Andy Mozzhevilov @ Dec 12 2005, 08...   Dec 12 2005, 08:10
|- - Andy Mozzhevilov   Цитата(zltigo @ Dec 12 2005, 13:10) Цитат...   Dec 12 2005, 08:49
- - Karol   Спасибо всем за интересные заметки. Я конечно согл...   Dec 12 2005, 09:18
|- - Muxa   Цитата(Karol @ Dec 12 2005, 12:18) ... Я ...   Dec 14 2005, 01:54
|- - Andy Mozzhevilov   Цитата(Muxa @ Dec 14 2005, 06:54) Цитата(...   Dec 14 2005, 04:00
- - moonrock   А какие-такие ложные прерывания? Похоже я что-то п...   Dec 13 2005, 06:55
- - zltigo   Цитата(Muxa @ Dec 13 2005, 04:20) просто ...   Dec 13 2005, 19:04
- - Muxa   moonrock ЦитатаА какие-такие ложные прерывания? кр...   Dec 14 2005, 01:20
- - Dimmix   какой максимальный кварц можно поставить в lpc2292...   Jan 25 2012, 20:26
- - GetSmart   У меня 2294 работал с кварцем 14,7456 и внутри умн...   Jan 25 2012, 20:58
- - Dimmix   есть плата на 2292 она тоже работала с кварцем на ...   Jan 25 2012, 21:05
- - GetSmart   Так можно и кварц обвинять. Естественно нужно выпа...   Jan 25 2012, 21:10
- - Dimmix   Может лучше поставить генератор что то в плане VC...   Jan 25 2012, 21:32
- - GetSmart   XTAL1 - вход для внешнего генератора 142 пин в LQF...   Jan 25 2012, 21:43
- - Dimmix   Похоже кварц паяли чем то активным, плата вроде за...   Jan 28 2012, 20:51


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 00:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016