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

 
 
 
Reply to this topicStart new topic
> UART как средство пробуждения процессора, возможна ли небольная аппаратная примочка?
sigmaN
сообщение Jul 7 2008, 22:36
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



В общем суть в том, что есть некий процессор, который должен мониторить данные, приходящие к нему по SCI(он-же UART, он-же RS-232, только у этого другие уровни сигналов кажется).
Процессор жрущий не мало питания и его нужно переводить в состояние HALT для энергосбережения.
Проблема с его пробуждением.
Требуется подать на определённую ногу сигнал низкого уровня и продержать его ~10ms до пробуждения.
Специфика данных такова, что можно пропустить первые 8-10 байтов.
Остальные нужно уже принимать.

Есть идея сделать аппаратный wakeup, который бы смог это реализовать.
Схемка должна сработать на низкий уровень старт бита и подать на ногу проца этот уровень, но с задержкой). Что и требуется для его пробуждения из спячки.
Как думаете, реально?
Скорость порта 19200.
можно снизить до 9600, но с доп. телодвижениями.

Думаю что-то вроде транзистора и конденсатора(обеспечивающего эту задержку).

Как вообще, реально всё это? Или научная фантастика smile.gif


Ой, а может это больше к аналоговой технике относится.
Господа модераторы, если я ошибся - перенесите тему. ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
arttab
сообщение Jul 7 2008, 23:30
Сообщение #2


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



например на 555 микросхеме можно сгенерить такой импульс. Посмотрите еще на тип АГ(есть их импортные аналоги).


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 8 2008, 00:06
Сообщение #3


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



плата всего устройства размером с Sony Memory Stick PRO Duo ))
Нужно что-то ооооочень компактное.
поэтому и думаю о smd транзисторе...

Кстати есть способ перед засыпанием снизить скорость порта.
т.е. кол-во битов за 10ms можно существенно снизить(в 16 раз)!
При прочих равных - времени на просыпание и на срабатывание схемы, становится больше в те самые 16 раз! Так что думаю точно всё получится.

Теперь вопрос только в схемотехнике.
Завтра подумаю как всё завернуть по проще.
Чтоб на одном-двух транзисторах.

Ну или если кто подскажет к тому времени... ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
uriy
сообщение Jul 8 2008, 04:07
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



А у процессора нет своего wakeup если пришли данные на UART?
Цитата
Кстати есть способ перед засыпанием снизить скорость порта. т.е. кол-во битов за 10ms можно существенно снизить(в 16 раз)!
У вас есть способ сделать так чтобы на другом конце UART скорость тоже менялась в нужные моменты? Иначе же данные будут искажены. Может быть вам лучше поставить RS-триггер. Например на вход R будет соединена линия UART, когда там появится нолик он сбросит триггер и на его выходе тоже будет ноль. Один из выводов процессора соединить на вход S, куда будет подаваться сигнал с проца после пробуждения. RS-триггер наверно можно найти готовый или собрать на логике. BGA корпус размером примерно 1х2 мм у TI, посмотрю что у них есть.
=============================
Вот нашел 2И-НЕ SN74LVC2G00.pdf размер 8-выводного BGA 0,95х1,95 мм или SOP корпус размерами 3,2х2,1. На мой взгляд это куда лучше чем RC-цепочка. Кстати странно что у процессора внутри нет такой защелки триггера на вход прерывания.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 8 2008, 18:44
Сообщение #5


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



На процессоре нет механизма, позволяющего реализовать это. Он когда входит в HALT, то единственное, что его может разбудить, это низкий уровень на одном из портов GPIOA или на XRS. XRS требует больее продолжительного времени, к тому-же если его передержать то будет аппаратный сброс. Поэтому его использовать не хочу.
Проц TMS320F28335.
Большое спасибо!
Идея с триггером действительно на много красивее!


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 8 2008, 21:07
Сообщение #6


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



почему-то нигде не могу найти параметры самой линии. т.е. уровни сигналов, какая нагрузочная способность выхода обычно(можно ли вешать туда ещё и триггер, какой запас будет).
Google уверенно пинает меня в сторону общих вопросов.
Нашел инфу только по RS-232 с +/-15ти вольтовыми уровнями. А это не то!

Help )))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
uriy
сообщение Jul 9 2008, 04:48
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
почему-то нигде не могу найти параметры самой линии. т.е. уровни сигналов, какая нагрузочная способность выхода обычно(можно ли вешать туда ещё и триггер, какой запас будет).
Не понял. У вас все таки что? Если вы подаете на входы проца то там должны быть уровни 0-3,3В или (0-5,0В) ваш процессор думаю скорее всего 3 вольтовый. А триггер можно подцепить без проблем, у него же большое входное сопротивление. Думаю если даже подцепить десяток другой входов триггера это никак не повлияет на линию.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 9 2008, 09:38
Сообщение #8


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Да, у меня 3.3V
Десяток-другой - это хорошо!
Просто хотел глянуть в документацию, чтоб всё по науке ))

что-то я не пойму на чём макет собрать.
У К155ЛА3 ведь может быть выход более 3.3v.
У меня на проце все входы не 5v tolerant.
Подскажите есть ли отечественная логика 3.3v или какой-нибудь другой способ.


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
uriy
сообщение Jul 9 2008, 11:30
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Дык поставьте на выходе ЛА3 резистор где нить на 1 кОм и стабилитрон на 3,3В, вот вам и будет 3 вольта на выходе. А вот логики советской на 3 вольта не знаю. Разве что 561 серию от 3 вольт питать, вроде они при таком напряжении работают, но будут ли согласованы уровни с процом, это вопрос.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 10 2008, 11:25
Сообщение #10


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



А если взять с открытым коллектором(К155ЛА18).
Высокий уровень формировать подтяжкой к +3.3 а низкий он и в африке низкий будет.
Пойдёт такая схема? ЛА18 как раз есть у меня в наличии....


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
uriy
сообщение Jul 10 2008, 14:37
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



да пойдет.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 11 2008, 13:12
Сообщение #12


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Не получается так, как я хотел.
1. Всё-таки нужно "отпустить" вывод обратно в единицу.
Поэтому триггер был выброшен и вывод проца был подключен непосредственно к RXD.
Получается start bit его к земле прижимает, а любой следующий не нулевой бит - его как-бы отпускает. Работает. Проц пробуждается по поступлению данных в порт.
2. Но сама подсистема SCI не успевает принять данные!
Ситуация у меня следующая:
в момент входящего звонка на порт приходит
RING

*ECAV: 1,6,1,,,"380508576919",145

Я расчитывал на то, что RING и часть *ECAV я просплю, а номер принять успею.
Но не тут-то было!
SCI видимо просыпается дольше проца и принять удаётся только следующий RING(а он приходит на много позднее!)

Может быть есть какие-нибудь аппаратные буферы UART?
Чтоб пока проц просыпается, данные туда сложить...... даже не знаю что и делать.
Без режима энергосбережения никак нельзя, а тут вон какая проблемка))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
uriy
сообщение Jul 11 2008, 16:12
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Все у теж же TI есть FIFO буферы может что подойдет. Правда еще нигде не видел чтобы их использовали.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jul 11 2008, 19:41
Сообщение #14


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Может кто-то встречал что-то по-компактнее? И попроще?
Может есть совсем простенькие чисто для UART?
Дело в том, что ведь эти FIFO без проца просто хлам.
Но наверное ничего такого не бывает, чтоб тупо для UART был отдельный FIFO - это кажется фантастикой))


Нашел я там чуть другой способ....в общем пошло шаманство ))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post

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

 


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


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