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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> По поводу таймеров в LPC2106, ...или может быть взять другой контроллер?
Slonic
сообщение Nov 23 2007, 08:57
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Создаю плату ну очень маленького размера. Требованию к контроллеру: достаточное быстродействие для ввода 16-разрядных данных с АЦП на частоте в 1Мгц и минимум 16кБ памяти для буферов, все это должно быть в небольшом корпусе максимум QFP/QFN48.

Из того, что выпускается сегодня (AVR32 и STM32 пока не рассматриваем), насколько я понял, подходит только LPC2106. Сейчас прикидываю подойдет ли он по всем параметрам. И вот вопрос. Нужно создать тактовые сигналы такого вида см. рисунок. Что-то не очень соображу, можно ли сделать это одним таймером? Похоже, что нет, но вдруг я чего недосмотрел? Просто второй таймер нужен для других целей...

И еще вопрос: пробовал ли кто-нибудь заставить загрузчик работать по RS-485 (полудуплекс)?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
etoja
сообщение Nov 23 2007, 09:06
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



АЦП у него 10-битный, быстродействие 420 тысяч выборок в секунду. Два канала АЦП можно квантовать синхронно.
Можешь взять процессор LPC2103 - четыре таймера, правда ОЗУ 8Кбайт.

Загрузчик по RS485 работать не сможет, так как кроме двух сигналов данных нужны ещё два сигнала сопровождения.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 23 2007, 09:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Slonic @ Nov 23 2007, 11:57) *
Создаю плату ну очень маленького размера. Требованию к контроллеру: достаточное быстродействие для ввода 16-разрядных данных с АЦП на частоте в 1Мгц и минимум 16кБ памяти для буферов, все это должно быть в небольшом корпусе максимум QFP/QFN48.

LPC2106 здесь, по-моему, не лучший вариант - у него очень медленная работа с GPIO.
Go to the top of the page
 
+Quote Post
alexander55
сообщение Nov 23 2007, 09:19
Сообщение #4


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(Slonic @ Nov 23 2007, 11:57) *

Судя по осцилограмме, частоту 4 мГц (выход 1) делайте на таймере с выходом наружу.
По прерыванию от таймера считайте их и уже на выходах (как GPIO) формируйте выходы 2 и 3.
По другому с одним таймером не сделать.

Цитата(Slonic @ Nov 23 2007, 11:57) *
И еще вопрос: пробовал ли кто-нибудь заставить загрузчик работать по RS-485 (полудуплекс)?

Этот вопрос меня тоже интересует. smile.gif
На первый взгляд, если сделать конверторы без внешнего управления направлением передачи можно (если в программа загрузки не использует дуплекс). А использует, скажем, Flash Magic дуплекс не в курсе (как написана на предмет разнесения передачи и приема). sad.gif
Go to the top of the page
 
+Quote Post
Slonic
сообщение Nov 23 2007, 09:28
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Цитата(alexander55 @ Nov 23 2007, 12:19) *
Судя по осцилограмме, частоту 4 мГц (выход 1) делайте на таймере с выходом наружу.
По прерыванию от таймера считайте их и уже на выходах (как GPIO) формируйте выходы 2 и 3.


Клоки нужны для внешнего АЦП, поэтому джиттер весьма существенен, а на ГПИО, похоже, все будет не слишком стабильно.

Цитата
LPC2106 здесь, по-моему, не лучший вариант - у него очень медленная работа с GPIO


А какой вариант будет лучше? Может, я просмотрел какой-нибудь контроллер с описанными выше параметрами? Память 8К никак не подойдет, минимум 16 нужно.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 23 2007, 09:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(alexander55 @ Nov 23 2007, 12:19) *
Судя по осцилограмме, частоту 4 мГц (выход 1) делайте на таймере с выходом наружу.
По прерыванию от таймера считайте их и уже на выходах (как GPIO) формируйте выходы 2 и 3.
По другому с одним таймером не сделать.

Если там действительно 4МГц, то по прерыванию работать не получится. Такие вещи железом нужно делать.

Цитата(Slonic @ Nov 23 2007, 12:28) *
А какой вариант будет лучше? Может, я просмотрел какой-нибудь контроллер с описанными выше параметрами? Память 8К никак не подойдет, минимум 16 нужно.

Какой у Вас АЦП, какие частоты у тактовых сигналов?
Go to the top of the page
 
+Quote Post
alexander55
сообщение Nov 23 2007, 10:02
Сообщение #7


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Цитата(aaarrr @ Nov 23 2007, 12:50) *
Если там действительно 4МГц, то по прерыванию работать не получится. Такие вещи железом нужно делать.

Железом (ПЛИС или на россыпи), конечно, лучше. Да с и джиттером проблем не будет.
Go to the top of the page
 
+Quote Post
ValeraK
сообщение Nov 23 2007, 10:12
Сообщение #8


Частый гость
**

Группа: Новичок
Сообщений: 164
Регистрация: 11-01-05
Из: Россия, Снежинск
Пользователь №: 1 900



Цитата(Slonic @ Nov 23 2007, 13:57) *
Создаю плату ну очень маленького размера. Требованию к контроллеру: достаточное быстродействие для ввода 16-разрядных данных с АЦП на частоте в 1Мгц и минимум 16кБ памяти для буферов, все это должно быть в небольшом корпусе максимум QFP/QFN48.


На контроллеры с ARM ядром от Texas Instruments смотрели? у них с таймерами и корпусом проблем нет.
Go to the top of the page
 
+Quote Post
Slonic
сообщение Nov 23 2007, 10:34
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Цитата(ValeraK @ Nov 23 2007, 13:12) *
На контроллеры с ARM ядром от Texas Instruments смотрели? у них с таймерами и корпусом проблем нет.


Самый маленький корпус у TMS470 - 80 ног, если я конечно ничего не пропустил.

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

Сообщение отредактировал Slonic - Nov 23 2007, 10:36
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 23 2007, 10:36
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Slonic @ Nov 23 2007, 10:57) *
(AVR32 и STM32 пока не рассматриваем)
Возможно зря вы так про STM32. В серии 103 есть и с 20К ОЗУ в QFN36, и таймеров достаточно, и вашу времянку (как я понял, бегло просмотрев документацию) он может легко реализовать на одном таймере, и само ядро как бы является развитием, т.е. улучшением ARM7.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Slonic
сообщение Nov 23 2007, 10:39
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Цитата(Сергей Борщ @ Nov 23 2007, 13:36) *
Возможно зря вы так про STM32. Они есть и с 16К памяти, и таймеров достаточно, и вашу времянку (как я понял, бегло просмотрев документацию) он может легко реализовать на одном таймере, и само ядро как бы является развитием, т.е. улучшением ARM7.


Сергей,

я ни в коем случае не хотел обидеть сам кристалл (также как и AVR32). Проблема в том, что в нужном корпусе он будет доступен неизвестно когда, а хочется в ближайшие пару месяцев уже смастерить что-нибудь работающее. У Атмела тоже готовится подходящий мне по всем параметрам контроллер, но доступен он будет в виде образцов начиная с лета следующего года...

Сообщение отредактировал Slonic - Nov 23 2007, 10:41
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 23 2007, 11:13
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Slonic @ Nov 23 2007, 12:39) *
я ни в коем случае не хотел обидеть сам кристалл
Какие обиды, о чем вы biggrin.gif ? Просто у некоторых людей психологическая боязнь новых кристаллов. Рад, что это не ваш случай.
Цитата(Slonic @ Nov 23 2007, 12:39) *
Проблема в том, что в нужном корпусе он будет доступен неизвестно когда, а хочется в ближайшие пару месяцев уже смастерить что-нибудь работающее.
Образцы STM32 уже доступны через дистрибуторов, на последнем семинаре раздавали STM32circle, в нем стоит STM32F103RBT6 в QFP64. Т.е. для макета живой кристалл найти можно. Насчет недоступности (пока) QFN48 я не подумал, каюсь. Хотя... В первом посте вы озвучивали корпус QFP48, они уже есть:
STM32F103C8T6, 48-LQFP, RAM Size 20K x 8 Quantity Available 263
И других в QFP48 в Digikey уже много


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 23 2007, 12:27
Сообщение #13


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Такие синхросигналы в принципе можно сделать на LPC2106. Причём аппаратно. Сигналы 2 и 3 можно сделать на выходах PWMx. Они имеют один период, но сдвинуты по фазе. Сигнал 1 можно сделать на выводе MATx.x. Небольшая сложность будет в том, что бы запустить таймер с правильным сдвигом относительно шима. Это можно написать на асме с временным запретом прерываний, или даже ещё до первого разрешения прерываний.

ЗЫ. Может быть всё можно сделать ещё проще. Это я ещё не начинал детально проробатывать варианты.

Цитата(Slonic)
И еще вопрос: пробовал ли кто-нибудь заставить загрузчик работать по RS-485 (полудуплекс)?
Думаю, тоже без проблем. Если передающая сторона сама будет управлять направлением передачи в нужные моменты времени. ISP (BootLoader) работает с полудуплексе.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Slonic
сообщение Nov 23 2007, 12:38
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Цитата(GetSmart @ Nov 23 2007, 15:27) *
Такие синхросигналы в принципе можно сделать на LPC2106. Причём аппаратно. Сигналы 2 и 3 можно сделать на выходах PWMx. Они имеют один период, но сдвинуты по фазе. Сигнал 1 можно сделать на выводе MATx.x. Небольшая сложность будет в том, что бы запустить таймер с правильным сдвигом относительно шима. Это можно написать на асме с временным запретом прерываний, или даже ещё до первого разрешения прерываний.

ЗЫ. Может быть всё можно сделать ещё проще. Это я ещё не начинал детально проробатывать варианты.

Думаю, тоже без проблем. Если передающая сторона сама будет управлять направлением передачи в нужные моменты времени. ISP (BootLoader) работает с полудуплексе.

Getsmart, спасибо. Правильно ли я понимаю, что ШИМ и таймер это разные вещи или же это одно и то же? т.е. может ли на входе ШИМа устанавливаться другое значение предделителя по сравнению с таймером? Если да, то тогда все действительно получится, с синхронизацией можно что-нибудь придумать.

Сергей Борщ: я сам немного в этих корпусах запутался wink.gif У них есть совсем волшебный вариант - QFN36, вот он как раз еще не готов. А вот QFP48 действительно уже доступен и ко мне на плату в принципе должен поместиться. Я заказал образцы через сайт, вдруг получится?!
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 23 2007, 12:49
Сообщение #15


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



В серии LPC2106 два независимых таймера и независимый шим. Все с независимыми предделителями. Для этой задачи, кажется, они все похожи и можно то же сделать на двух таймерах, а шим оставить для других целей.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

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

 


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


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