микропотребляющий микроконтроллер :)

HZ> Еще есть msp430-gcc. Тоже, по отзывам, достойная вещь, но подробнее не HZ> скажу.

А как насчёт самодельных программаторов (на любителя) и под *nix ?

Reply to
Kirill Frolov
Loading thread data ...

Fri, 07 Nov 2003 20:15:15 +0300 Kirill Frolov wrote to Harry Zhurov:

HZ>> Еще есть msp430-gcc. Тоже, по отзывам, достойная вещь, но подробнее не HZ>> скажу.

KF> А как насчёт самодельных программаторов (на любителя) и под *nix ?

Если речь про адаптер, то он очень простой и одинаковый для всех. А если про софт, то это у *nix'оидов и нужно спрашивать. Есть ресурсы соответствующие, на sourceforge в том числе. Народ работает, значит все есть.

Reply to
Harry Zhurov

Hемедленно нажми на RESET, Harry Zhurov!

On Sat, 08 Nov 03 07:00:42 +0300, Harry Zhurov wrote: HZ>>> Еще есть msp430-gcc. Тоже, по отзывам, достойная вещь, но подробнее HZ>>> не HZ>>> скажу. KF>> А как насчёт самодельных программаторов (на любителя) и под *nix ? HZ> Если речь про адаптер, то он очень простой и одинаковый для всех.

slaa096b_page6.pdf Downloads/slau026.pdf slau048d.pdf

Что-то они не очень одинаковые. И slaa096 с сайта TI убран уже. Так какой хоть адаптер самый правильный?

Hа сайте телесистем вычитал про *закрытый* протокол обмена по JTAG. Получается нужно обязательно использовать один из фирменных программаторов с фирменной же программой под него. Или "bootstrap" загрузчик, который работает как попало. Я не совсем ещё разобрался. :-/

Reply to
Kirill Frolov

Sun, 09 Nov 2003 03:55:26 +0300 Kirill Frolov wrote to Harry Zhurov:

KF>>> А как насчёт самодельных программаторов (на любителя) и под *nix ? HZ>> Если речь про адаптер, то он очень простой и одинаковый для всех.

KF> slaa096b_page6.pdf KF> Downloads/slau026.pdf KF> slau048d.pdf

KF> Что-то они не очень одинаковые. И slaa096 с сайта TI убран уже. KF> Так какой хоть адаптер самый правильный?

Я по этим sla** не ориентируюсь, т.ч. сказать конкретно не могу. Но в данном случае это и не важно - ядро адаптера там должно быть одинаковым. Ядро - это 74HC244, обвешанная резисторами, да стабилизатор на 3 В (запитывается он от LPT 5-ю вольтами, и питает 244-ю, которая должна выдавать на 430-й трехвольтовые уровни, т.к. последний не держит 5 вольт). Фирменные адаптеры содержат кучу всякого лишнего, оно на фиг не нужно. На

formatting link
лежала схема упрощенного адаптера. В общем, важно, чтобы до 430-го дошли сигналы JTAG (TMS, TCK, TDI, TDO) и Reset. Этого достаточно. Остальное опциональные фичи. В общем, есть pdf'ник с упрощенной схемой (как раз, afair, с сахары), которая нуждается в одной доработке: там резисторы в цепях от 244-й до 430-го стоят 1К, а по фирменной схеме там должны быть 330. Так вот, правильное значение все же

330 - с 1К работает неустойчиво, капризно. Зачем заменили, не знаю, нужно ставить 330. Если pdf'ник этот не найдешь, обращайся мылом (адрес в подписи).

KF> Hа сайте телесистем вычитал про *закрытый* протокол обмена по JTAG.

Он уже давно открытый и лежит на сайте ТИ.

KF> Получается нужно обязательно использовать один из фирменных KF> программаторов с фирменной же программой под него. Или "bootstrap" KF> загрузчик,

Нет, не получается - берешь, делаешь адаптер стоимостью 50 рублей и софт, например, от ИАР, который позволяет и программировать кристалл через упомянутый адаптер, и отлаживать программу (скомпиленную ИАРом же, ессно). Можешь написать свой софт для зашивки - протокол открыт.

KF> который работает как попало.

Он работает не как попало, а как положено. Просто это другой способ лазить в потроха МК.

KF> Я не совсем ещё разобрался. :-/

Да, ты еще не совсем разобрался.

Reply to
Harry Zhurov

Hi!

In a message of 09 Nov 03 Kirill Frolov wrote to Harry Zhurov:

KF> Hа сайте телесистем вычитал про *закрытый* протокол обмена по JTAG. KF> Получается нужно обязательно использовать один из фирменных KF> программаторов с фирменной же программой под него. Или "bootstrap" KF> загрузчик, который работает как попало. Я не совсем ещё разобрался. :-/

JTAG уже открыли. Ищи у девиц программатор для msp430 на самом же msp430. Прилагается сорец на сях, который написан довольно грамотно - легко портируется.

Bye...

Reply to
Vadik Akimoff

What do you think about sharp blades, Vadik?

[Answer on] [Vadik Akimoff wrote to Kirill Frolov at [09 Nov 03 12:50]]:

KF>> Hа сайте телесистем вычитал про *закрытый* протокол обмена по KF>> JTAG. Получается нужно обязательно использовать один из фирменных KF>> программаторов с фирменной же программой под него. Или KF>> "bootstrap" загрузчик, который работает как попало. Я не совсем KF>> ещё разобрался. :-/ VA> JTAG уже открыли. Ищи у девиц программатор для msp430 на самом же VA> msp430. Прилагается сорец на сях, который написан довольно грамотно - VA> легко портируется. УВЫ

TI opened the flash read and write functions of their JTAG interface about a year ago. This is the information Chris based his Python JTAG programmer on. The debug capabilities of the interface have not been opened.

Так что, не совсем верно говорить, что JTAG открыли :((

Remember, pain is part of pleasure, Vadik. ... Истин сизые гвозди - в сырые доски серых дождей...

Reply to
Lev Serebryakov

AK> Я по этим sla** не ориентируюсь, т.ч. сказать конкретно не могу. Hо в AK> данном случае это и не важно - ядро адаптера там должно быть одинаковым. AK> Ядро - AK> это 74HC244, обвешанная резисторами, да стабилизатор на 3 В (запитывается AK> он от AK> LPT 5-ю вольтами, и питает 244-ю, которая должна выдавать на 430-й AK> трехвольтовые уровни, т.к. последний не держит 5 вольт). Фирменные AK> адаптеры AK> содержат кучу всякого лишнего, оно на фиг не нужно. Hа

formatting link
AK> лежала AK> схема упрощенного адаптера. В общем, важно, чтобы до 430-го дошли сигналы AK> JTAG AK> (TMS, TCK, TDI, TDO) и Reset. Этого достаточно. Остальное опциональные AK> фичи. В AK> общем, есть pdf'ник с упрощенной схемой (как раз, afair, с сахары), AK> которая AK> нуждается в одной доработке: там резисторы в цепях от 244-й до 430-го AK> стоят 1К, AK> а по фирменной схеме там должны быть 330. Так вот, правильное значение все AK> же AK> 330 - с 1К работает неустойчиво, капризно. Зачем заменили, не знаю, нужно AK> ставить 330. Если pdf'ник этот не найдешь, обращайся мылом (адрес в AK> подписи).

Hа сахаре pdf-ник есть, но он вроде как фирменный, а не упрощённый (резисторы по 330 ом) Hазывается fetsch1X.pdf (X=1..4):

191417 fetsch12.pdf.1 35593 fetsch11.pdf

Если это не упрощённый, заюючь, пожалуйста, по адресу snipped-for-privacy@svs.ru.

KF>> Получается нужно обязательно использовать один из фирменных KF>> программаторов с фирменной же программой под него. Или "bootstrap" KF>> загрузчик, AK> Hет, не получается - берешь, делаешь адаптер стоимостью 50 рублей и AK> софт, AK> например, от ИАР, который позволяет и программировать кристалл через AK> упомянутый AK> адаптер, и отлаживать программу (скомпиленную ИАРом же, ессно). Можешь AK> написать AK> свой софт для зашивки - протокол открыт.

Упомянутый выше адаптер, как я понял, это "FET" ?

А через BSL чем плохо? Схему BSL смотрел, заменить бы импорт на советские аналоги, не знаю какие... :-/

Reply to
Kirill Frolov

KF>> Hа сайте телесистем вычитал про *закрытый* протокол обмена по JTAG. KF>> Получается нужно обязательно использовать один из фирменных VA> JTAG уже открыли. Ищи у девиц программатор для msp430 на самом же msp430.

Девицы -- это analog devices? Причём тут оно? :-/ Hа mpsgcc.sourceforge.net не эта-ли схема для gdb прилагается?

Reply to
Kirill Frolov

Hi, Kirill!

Kirill Frolov wrote in a message to Harry Zhurov:

KF> Или "bootstrap" KF> загрузчик, который работает как попало. Я не совсем ещё разобрался.

BSL - работает, как описано. Пример программы для PC с сайта TI - рабочий. Я сам его пересобирал (поправив под немного другое железо) - проблем не было. Компилятор пользовал MSVC6. Единственный недостаток у BSL - он слишком медленный, работает на 9600, так что перешивка F149 несколько утомляет. Решается написанием своего BSL (+программы для PC), работающего на скорости 115200. Для тонких кристаллов (не имеющих выделенных пинов JTAG) использование BSL экономит выводы. Дополнительно эти же пины можно использовать под полуаппаратный UART, на который можно выводить отладочную информацию. Я так делаю и для F149 - аппаратным UART можно найти и более полезное применение.

With best regards... Vladimir.

Reply to
Vladimir Poletaev

Mon, 10 Nov 2003 07:45:15 +0300 Kirill Frolov wrote to Harry Zhurov:

[...]

KF> 191417 fetsch12.pdf.1 KF> 35593 fetsch11.pdf

KF> Если это не упрощённый, заюючь, пожалуйста, по адресу snipped-for-privacy@svs.ru.

Ушло.

KF>>> Получается нужно обязательно использовать один из фирменных KF>>> программаторов с фирменной же программой под него. Или "bootstrap" KF>>> загрузчик, AK>> Hет, не получается - берешь, делаешь адаптер стоимостью 50 рублей и AK>> софт, AK>> например, от ИАР, который позволяет и программировать кристалл через AK>> упомянутый AK>> адаптер, и отлаживать программу (скомпиленную ИАРом же, ессно). Можешь AK>> написать AK>> свой софт для зашивки - протокол открыт.

KF> Упомянутый выше адаптер, как я понял, это "FET" ?

Да.

Reply to
Harry Zhurov

Hi Harry !

Совсем недавно 31 Oct 03 19:45, Harry Zhurov писал к Tatyana Krivchenko:

TK>> А сколько потребляет MSP430 в рабочем режиме?

HZ> 280 мкА на МГц при 2.2 В

HZ> 420 мкА на МГц при 3 В.

Я мерял 16F819:

4MHz: 560 uA 1MHz: 220 uA 500kHz: 160 uA 250kHz: 130 uA 125kHz: 112 uA 32kHz: 30 uA

Ток потребления в SLEEP (вкл. TMR1, выкл. WDT)

5V : 3.4 uA 4V : 3 uA 3.6V : 3uA 3V : 2.9 uA 2V : 2.2 uA

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Thu, 20 Nov 2003 14:11:47 +0300 Ruslan Mohniuc wrote to Harry Zhurov:

RM> Совсем недавно 31 Oct 03 19:45, Harry Zhurov писал к Tatyana Krivchenko:

TK>>> А сколько потребляет MSP430 в рабочем режиме?

HZ>> 280 мкА на МГц при 2.2 В

HZ>> 420 мкА на МГц при 3 В.

RM> Я мерял 16F819:

При каком питании?

RM> 4MHz: 560 uA

Т.е. 560 мкА на 1 8-битный МИПС. У 430 вышеприведенные цифры на 1 16-битный МИПС.

Reply to
Harry Zhurov

Hi Harry !

Совсем недавно 22 Nov 03 08:27, Harry Zhurov писал к Ruslan Mohniuc:

TK>>>> А сколько потребляет MSP430 в рабочем режиме?

HZ>>> 280 мкА на МГц при 2.2 В HZ>>> 420 мкА на МГц при 3 В.

RM>> Я мерял 16F819: RM>> 4MHz: 560 uA

HZ> При каком питании?

5 Вольт. Думаю, что при 2.2 или 3.3 меньше будет. Если интересно- могу в понедельник достать с полки и померять на другой напруге.

HZ> Т.е. 560 мкА на 1 8-битный МИПС. У 430 вышеприведенные цифры на 1 HZ> 16-битный МИПС. Hу я ж не для спора. Просто сказал, что сам измерял. Кстати, это реально MSP столько жрет или в доке написано? Если это по мануалу, то реальные цифры могут и отличаться (например, быть еще меньше).

А на 32 кГц сколько MSP съест? там могут быть модульки, которые жрут сами, несильно завися от частоты. Hапример, в 16F819 это второй генератор, который на частотах выше 32 кГц включается.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Sat, 22 Nov 2003 22:27:40 +0300 Ruslan Mohniuc wrote to Harry Zhurov:

TK>>>>> А сколько потребляет MSP430 в рабочем режиме?

HZ>>>> 280 мкА на МГц при 2.2 В HZ>>>> 420 мкА на МГц при 3 В.

RM>>> Я мерял 16F819: RM>>> 4MHz: 560 uA

HZ>> При каком питании?

RM> 5 Вольт. RM> Думаю, что при 2.2 или 3.3 меньше будет.

Наверняка меньше. Но при этом, обычно, и верхнее значение тактовой меньше.

RM> Если интересно- могу в понедельник достать с полки и померять на другой RM> напруге.

Да нет, не трудись, примерно и так картина ясна. Это тот самый нановаттный ПИК?

HZ>> Т.е. 560 мкА на 1 8-битный МИПС. У 430 вышеприведенные цифры на 1 HZ>> 16-битный МИПС. RM> Hу я ж не для спора.

Я тоже не для спора - просто чтобы ясность была при сравнении. Еще нужно помнить, что сами ядра разные - вон какой-нибудь ARM на одном МИПСе может и больше 430 хавает, но у него и МИПС соответствующий, и чтобы 430-му сделать ту же работу, может понадобиться выполнить 10 команд, к примеру, и в итоге удельное (в расчете на полезную производительность) энергопотребление ARM'а может оказаться ниже.

RM> Просто сказал, что сам измерял. Кстати, это реально MSP столько жрет или в RM> доке написано?

Это из даташита. Специально потребление 430-го не измерял, но измерял общее потребление прибора, и зная, сколько там что примерно потребляет, прикидывал на

430-й - похоже на правду (там пара мА выходила (плюс-минус какой-то лапоть, конечно :), а тактовая у него от встроенного RC около 5 МГц, точно не измерял).

RM> Если это по мануалу, то реальные цифры могут и отличаться (например, быть RM> еще меньше).

Вполне возможно.

RM> А на 32 кГц сколько MSP съест?

Не измерял. Если интересуешься, посмотри дашашит, но, afair, там нет такой цифры. Там все потребления приведены для 1 МГц (остальное пересчитывай), и для режимов пониженного энергопотребления. В т.ч. есть такой, когда ядро спит, а таймер щелкает на 32768 - потребление что-то около 1.6 мкА.

RM> там могут быть модульки, которые жрут сами, несильно завися от частоты. RM> Hапример, в 16F819 это второй генератор, который на частотах выше 32 кГц RM> включается.

Не, таких нет. У 430 вообще система тактирования чрезвычайно гибкая и мощная: есть 3 источника (до двух внешних кристаллов, один из которых может быть часовым) и встроенный RC. Эти источники тактовой можно использовать для тактирования разных модулей вполне произвольно - например, UART тактируется от одного, таймер от другого, ядро от третьего. Все это задается программно. Рекомендуемое использование: ядро тактировать от RC, что дает возможность очень быстро просыпаться из глубокого слипа, а модули, где требуется временнАя стабильность/точность - от внешнего кварцованного. Например, ядро работает от своего RC на 5 МГц, а UART тактируется от часового кристалла 32768 и работает на 4.8 кбод. Ядро спит, а UART принимает очередной байт, при этом потребление - единицы микроампер. Как только приняли байт, генерится прерывание, ядро просыпается за 6 мкс, обрабатывает принятый байт и снова в спячку. Общее потребление при этом очень маленькое.

Reply to
Harry Zhurov

Hi Harry !

Совсем недавно 27 Nov 03 18:48, Harry Zhurov писал к Ruslan Mohniuc:

RM>>>> Я мерял 16F819: RM>>>> 4MHz: 560 uA RM>> 5 Вольт.

RM>> Думаю, что при 2.2 или 3.3 меньше будет.

HZ> Hаверняка меньше. Hо при этом, обычно, и верхнее значение тактовой HZ> меньше. Однозначно. Hа это есть графики в даташитах.

RM>> Если интересно- могу в понедельник достать с полки и померять на RM>> другой напруге. HZ> Да нет, не трудись, примерно и так картина ясна. Это тот самый HZ> нановаттный ПИК? Угу. Так его преимущество не в том, чтобы жрать мало на 1 МИПСе. Он делался для того, чтобы мало жрать в слипах и на малых тактовых.

RM>> А на 32 кГц сколько MSP съест?

HZ> Hе измерял. Если интересуешься, посмотри дашашит, но, afair, там HZ> нет такой цифры. Там все потребления приведены для 1 МГц (остальное HZ> пересчитывай).

Ты хочешь сказать, что на 32 кГц тактовой MSP съест ровно в 30.5 раза меньше, чем на 1МГц? Или как пересчитывать? Потому я и спросил, что подобные линейные пересчеты могут и не соответствовать действительности.

HZ> и для режимов пониженного энергопотребления. В т.ч. HZ> есть такой, когда ядро спит, а таймер щелкает на 32768 - потребление HZ> что-то около 1.6 мкА. А вот это уже цифра. Причем хорошая. Ибо у меня выходило около 10 мкА. Мда... Hановатность еще та....

HZ> У 430 вообще система тактирования чрезвычайно HZ> гибкая и мощная: есть 3 источника (до двух внешних кристаллов, один HZ> из HZ> которых может быть часовым) и встроенный RC. Здорово. Вроде в новых ПИКах тоже в этом направлении идут (разное тактирование), но не смотрел. А вот то, что в ПИКах при задирании единственной тактовой ядра я соответственно обязательно "сваливаюсь" на бОльшие минимально возможные скорости аппаратного USART - это да, нервирует сильно.

В-общем, получается, что MSP вставляет ПИК по потреблению.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Приветствую тебя, Ruslan

01 Dec 03 года в 16:03 Ruslan Mohniuc в своем письме к Harry Zhurov писал(a):

RM>>> А на 32 кГц сколько MSP съест? HZ>> Hе измерял. Если интересуешься, посмотри дашашит, но, afair, HZ>> там нет такой цифры. Там все потребления приведены для 1 МГц HZ>> (остальное пересчитывай). RM> Ты хочешь сказать, что на 32 кГц тактовой MSP съест ровно в 30.5 раза RM> меньше, чем на 1МГц? Или как пересчитывать? Потому я и спросил, что RM> подобные линейные пересчеты могут и не соответствовать RM> действительности.

По даташиту MSP430F1121 в активном pежиме на частоте 4kHz пpи питании 2.2В потpебляет 3uA

С уважением, Dmitrij(MDK) aka _GRAPAF_ ... Пробывал я модем 14400. - Сникерс лучше !!! ;*}

Reply to
Dmitrij Matkov

Mon, 01 Dec 2003 16:03:04 +0300 Ruslan Mohniuc wrote to Harry Zhurov:

[...]

RM>>> А на 32 кГц сколько MSP съест?

HZ>> Hе измерял. Если интересуешься, посмотри дашашит, но, afair, там HZ>> нет такой цифры. Там все потребления приведены для 1 МГц (остальное HZ>> пересчитывай).

RM> Ты хочешь сказать, что на 32 кГц тактовой MSP съест ровно в 30.5 раза RM> меньше, чем на 1МГц? Или как пересчитывать? RM> Потому я и спросил, что подобные линейные пересчеты могут и не RM> соответствовать действительности.

Могут и не соответствовать. Конкретной цифири в даташите (сколько тока при каком напряжении на 32 кГц тактовой ядра) я не нашел (может плохо смотрел), но оно и не очень надо. Там ведь несколько другая идеология (я уже вскользь упоминал) - ядро работает от RC, что дает возможность очень быстро (за 6 мкс) просыпаться из слипа, поэтому нет смысла гонять ядро на малой тактовой, проще и разумнее, чтобы оно спало, пока ему нечего делать (пока другая аппаратура занимается своими делами - например, таймер считает на 32768 Гц и прерывания генерит), а когда событие происходит, ядро быстренько просыпается, делает работу и снова в спячку падает. При этом и реальное быстродействие (в смысле реакции на события и затрат на обработку их) значительно лучше.

Поэтому, наверное, и нет этой спецификации потребления ядра на малых частотах, т.к. обычно МК в таком режиме не используется.

HZ>> и для режимов пониженного энергопотребления. В т.ч. HZ>> есть такой, когда ядро спит, а таймер щелкает на 32768 - потребление HZ>> что-то около 1.6 мкА. RM> А вот это уже цифра. Причем хорошая. Ибо у меня выходило около 10 мкА. RM> Мда... Hановатность еще та....

HZ>> У 430 вообще система тактирования чрезвычайно HZ>> гибкая и мощная: есть 3 источника (до двух внешних кристаллов, один HZ>> из HZ>> которых может быть часовым) и встроенный RC. RM> Здорово. Вроде в новых ПИКах тоже в этом направлении идут (разное RM> тактирование), но не смотрел. А вот то, что в ПИКах при задирании RM> единственной тактовой ядра я соответственно обязательно "сваливаюсь" на RM> бОльшие минимально возможные скорости аппаратного USART - это да, нервирует RM> сильно.

В 430-м у USART'а тактовый генератор содержит т.н. модулятор, который позволяет очень гибко настраивать скорость при очень разнообразных тактовых. Например, при тактовой 32768 Гц UART может работать на скорости 4800 бод с малыми ошибками периода, что на многих других МК невозможно из-за некратности тактовой и скорости.

Вообще, периферия 430-х сделана очень грамотно - насколько школа разработки процессоров у ТИ хорошая. Вот Атмел хоть и заметно вырос за последнее время, но даже его новые меги не дотягивают до наворотов периферийных устройств MSP430. Единственное, что мне не хватает - это возможности принимать/отправлять байты через USART блоками, т.е. неплохо бы иметь хоть небольшое FIFO на этом канале. А то ведь на максимальной скорости приема/передачи МК по сути дела ничем другим заниматься не успевает, только и делает, что прыгает в прерывания и пихает/выгребает байты. Накладные очень большие на этом получаются. Вот в F15/6x, вроде бы, трехканальный DMA контроллер появился, но он, зараза, не "привязан" к USART'у. Т.е. есть там ряд периферийных устройств, про флагу прерывания от которых DMA контроллер начинает переписывать данные аппаратно - например, приходит байт от I2C порта, флаг прерывания встает, DMA его быстренько в промежуточный буфер перекладывает. То же самое и с АЦП, хотя у того и так целая своя область памяти для данных (16 ячеек) имеется - там вообще можно сразу весь блок с помощью DMA перегнать. Но к USART'у это не цепляется, т.е. нет возможности по флагу прерывания от него инициировать DMA Transfer. Очень странно, что это не сделали, ведь просится... :(

RM> В-общем, получается, что MSP вставляет ПИК по потреблению.

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

Вот вся совокупность и дает хороший эффект малого потребления в реальных приложениях (хотя мне до сих пор еще не понадобилось микроамперы ловить :).

Reply to
Harry Zhurov

Ruslan, ты ещё здесь сидишь?

Понедельник Декабрь 01 2003 16:03, Ruslan Mohniuc wrote to Harry Zhurov:

HZ>> Hе измерял. Если интересуешься, посмотри дашашит, но, afair, HZ>> там нет такой цифры. Там все потребления приведены для 1 МГц HZ>> (остальное пересчитывай). RM> Ты хочешь сказать, что на 32 кГц тактовой MSP съест ровно в 30.5 раза RM> меньше, чем на 1МГц? Или как пересчитывать? Потому я и спросил, что RM> подобные линейные пересчеты могут и не соответствовать RM> действительности.

Тут физика достаточно несложная. В любом контроллере есть набор узлов, которые можно включить в определённых режимах. Каждый узел потребляет некоторый постоянный ток, не зависящий от частоты, плюс ток, практически линейно зависящий от частоты. Эти соображения дают возможность довольно точно вычислить потребление конкретно сконфигурированного девайса на определённых частотах.

HZ>> и для режимов пониженного энергопотребления. В т.ч. HZ>> есть такой, когда ядро спит, а таймер щелкает на 32768 - HZ>> потребление что-то около 1.6 мкА. RM> А вот это уже цифра. Причем хорошая. Ибо у меня выходило около 10 мкА. RM> Мда... Hановатность еще та....

"Hановатность" неплохая. Простенькие "супервизоры-антизависаторы" потребляют больше...

HZ>> У 430 вообще система тактирования чрезвычайно HZ>> гибкая и мощная: есть 3 источника (до двух внешних кристаллов, HZ>> один из которых может быть часовым) и встроенный RC. RM> Здорово. Вроде в новых ПИКах тоже в этом направлении идут (разное RM> тактирование), но не смотрел.

В PIC'ах уже довольно давно можно использовать несколько независимых тактовых генераторов.

RM> А вот то, что в ПИКах при задирании единственной тактовой ядра я RM> соответственно обязательно "сваливаюсь" на бОльшие минимально RM> возможные скорости аппаратного USART - это да, нервирует сильно.

А зачем ограничиваться "единственной тактовой"? У многих PIC'ов можно сконфигурировать Timer1 в режим дополнительного генератора. У таких PIC'ов есть выводы с названиями T1OSI и T1OSO.

Георгий

Reply to
George Shepelev

Harry, ты ещё здесь сидишь?

Четверг Декабрь 04 2003 09:01, Harry Zhurov wrote to Ruslan Mohniuc:

[поскипано]

HZ> получаются. Вот в F15/6x, вроде бы, трехканальный DMA контроллер HZ> появился, но он, зараза, не "привязан" к USART'у. Т.е. есть там ряд HZ> периферийных устройств, про флагу прерывания от которых DMA контроллер HZ> начинает переписывать данные аппаратно - например, приходит байт от HZ> I2C порта, флаг прерывания встает, DMA его быстренько в промежуточный HZ> буфер перекладывает. То же самое и с АЦП, хотя у того и так целая своя HZ> область памяти для данных (16 ячеек) имеется - там вообще можно сразу HZ> весь блок с помощью DMA перегнать. Hо к USART'у это не цепляется, т.е. HZ> нет возможности по флагу прерывания от него инициировать DMA Transfer. HZ> Очень странно, что это не сделали, ведь просится... :(

Видимо исходили из того, что по USART будут идти редкие события, к примеру команды управления. И длина у них может быть от одного байта до нескольких. В таких условиях DMA мало что даст. Ещё одно возможное соображение - по линии USART могут передаваться "плохие" данные, когда придётся вылавливать ошибки, восстанавливать синхронизацию, выдавать перезапросы... В таких условиях DMA тоже малоэффективен.

А вообще, кто его знает, какими соображениями руководствовались разработчики "железяки" в каждом конкретном случае?..

Георгий

Reply to
George Shepelev

Привет George!

Thursday December 04 2003 11:02, George Shepelev wrote to Ruslan Mohniuc:

RM>> А вот то, что в ПИКах при задирании единственной тактовой ядра я RM>> соответственно обязательно "сваливаюсь" на бОльшие минимально RM>> возможные скорости аппаратного USART - это да, нервирует сильно. GS>

GS> А зачем ограничиваться "единственной тактовой"? У многих PIC'ов GS> можно сконфигурировать Timer1 в режим дополнительного генератора.

И как тактовый для процесср а ?!

GS> У таких PIC'ов есть выводы с названиями T1OSI и T1OSO.

Жора, раскажи как использовать второй генератор на 1-м таймере, для тактирования аппаратного USART'a или процессора ?

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
,
formatting link
, ftp://altor.sytes.net

Reply to
Alexander Torres

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.