|
По поводу таймеров в LPC2106, ...или может быть взять другой контроллер? |
|
|
|
Nov 23 2007, 08:57
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174

|
Создаю плату ну очень маленького размера. Требованию к контроллеру: достаточное быстродействие для ввода 16-разрядных данных с АЦП на частоте в 1Мгц и минимум 16кБ памяти для буферов, все это должно быть в небольшом корпусе максимум QFP/QFN48. Из того, что выпускается сегодня (AVR32 и STM32 пока не рассматриваем), насколько я понял, подходит только LPC2106. Сейчас прикидываю подойдет ли он по всем параметрам. И вот вопрос. Нужно создать тактовые сигналы такого вида см. рисунок. Что-то не очень соображу, можно ли сделать это одним таймером? Похоже, что нет, но вдруг я чего недосмотрел? Просто второй таймер нужен для других целей... И еще вопрос: пробовал ли кто-нибудь заставить загрузчик работать по RS-485 (полудуплекс)?
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 23 2007, 09:19
|
Бывалый
    
Группа: Свой
Сообщений: 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 (полудуплекс)? Этот вопрос меня тоже интересует.  На первый взгляд, если сделать конверторы без внешнего управления направлением передачи можно (если в программа загрузки не использует дуплекс). А использует, скажем, Flash Magic дуплекс не в курсе (как написана на предмет разнесения передачи и приема).
|
|
|
|
|
Nov 23 2007, 09:28
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174

|
Цитата(alexander55 @ Nov 23 2007, 12:19)  Судя по осцилограмме, частоту 4 мГц (выход 1) делайте на таймере с выходом наружу. По прерыванию от таймера считайте их и уже на выходах (как GPIO) формируйте выходы 2 и 3. Клоки нужны для внешнего АЦП, поэтому джиттер весьма существенен, а на ГПИО, похоже, все будет не слишком стабильно. Цитата LPC2106 здесь, по-моему, не лучший вариант - у него очень медленная работа с GPIO А какой вариант будет лучше? Может, я просмотрел какой-нибудь контроллер с описанными выше параметрами? Память 8К никак не подойдет, минимум 16 нужно.
|
|
|
|
|
Nov 23 2007, 09:50
|
Гуру
     
Группа: Свой
Сообщений: 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 нужно. Какой у Вас АЦП, какие частоты у тактовых сигналов?
|
|
|
|
|
Nov 23 2007, 10:12
|

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

|
Цитата(Slonic @ Nov 23 2007, 13:57)  Создаю плату ну очень маленького размера. Требованию к контроллеру: достаточное быстродействие для ввода 16-разрядных данных с АЦП на частоте в 1Мгц и минимум 16кБ памяти для буферов, все это должно быть в небольшом корпусе максимум QFP/QFN48. На контроллеры с ARM ядром от Texas Instruments смотрели? у них с таймерами и корпусом проблем нет.
|
|
|
|
|
Nov 23 2007, 10:34
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Nov 23 2007, 10:39
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174

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

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

|
Цитата(Slonic @ Nov 23 2007, 12:39)  я ни в коем случае не хотел обидеть сам кристалл Какие обиды, о чем вы  ? Просто у некоторых людей психологическая боязнь новых кристаллов. Рад, что это не ваш случай. Цитата(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)
|
|
|
|
|
Nov 23 2007, 12:27
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Такие синхросигналы в принципе можно сделать на LPC2106. Причём аппаратно. Сигналы 2 и 3 можно сделать на выходах PWMx. Они имеют один период, но сдвинуты по фазе. Сигнал 1 можно сделать на выводе MATx.x. Небольшая сложность будет в том, что бы запустить таймер с правильным сдвигом относительно шима. Это можно написать на асме с временным запретом прерываний, или даже ещё до первого разрешения прерываний. ЗЫ. Может быть всё можно сделать ещё проще. Это я ещё не начинал детально проробатывать варианты. Цитата(Slonic) И еще вопрос: пробовал ли кто-нибудь заставить загрузчик работать по RS-485 (полудуплекс)? Думаю, тоже без проблем. Если передающая сторона сама будет управлять направлением передачи в нужные моменты времени. ISP (BootLoader) работает с полудуплексе.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 23 2007, 12:38
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174

|
Цитата(GetSmart @ Nov 23 2007, 15:27)  Такие синхросигналы в принципе можно сделать на LPC2106. Причём аппаратно. Сигналы 2 и 3 можно сделать на выходах PWMx. Они имеют один период, но сдвинуты по фазе. Сигнал 1 можно сделать на выводе MATx.x. Небольшая сложность будет в том, что бы запустить таймер с правильным сдвигом относительно шима. Это можно написать на асме с временным запретом прерываний, или даже ещё до первого разрешения прерываний.
ЗЫ. Может быть всё можно сделать ещё проще. Это я ещё не начинал детально проробатывать варианты.
Думаю, тоже без проблем. Если передающая сторона сама будет управлять направлением передачи в нужные моменты времени. ISP (BootLoader) работает с полудуплексе. Getsmart, спасибо. Правильно ли я понимаю, что ШИМ и таймер это разные вещи или же это одно и то же? т.е. может ли на входе ШИМа устанавливаться другое значение предделителя по сравнению с таймером? Если да, то тогда все действительно получится, с синхронизацией можно что-нибудь придумать. Сергей Борщ: я сам немного в этих корпусах запутался  У них есть совсем волшебный вариант - QFN36, вот он как раз еще не готов. А вот QFP48 действительно уже доступен и ко мне на плату в принципе должен поместиться. Я заказал образцы через сайт, вдруг получится?!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|