|
Сбылась мечта идиота - приехали программатор и SAM7S256, Теперь нужен ликбез. |
|
|
|
Apr 27 2010, 12:37
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Господа, прочел сегодня в умной книжке следующее: "... по умолчанию все выходы настроены как входы со включенными пуллап резисторами, подтянутыми к плюсу питания. Если подключить такой вход к плюсу питания, то последствия будут непредсказуемыми..."
Где-то уже на форуме читал жалобу, что мол, подключенное к этому входу реле пр включении питания срабатывает. Оно и понятно - вывод настроен как вход, но включенный резистор подает на ключ этого реле плюс питания вызывающий срабатывание.
Но мне непонятно то что написано в книжке - какие могут быть последствия? Ну подам я плюс питания на вход, подтянутый к плюсу - что будет? по факту - это шунтирование внутреннего резистора, не более того.
Ну и раз уж все так страшно - чем руководствовались разработчики, раз допустили такую лажу? Какой-то скрытый смысл в этом есть? Ну и последний вопрос - в книге это писалось про SAM7X серию. А в каких еще атмеловских ARM7 этот баг присутствует?
|
|
|
|
|
 |
Ответов
|
May 13 2010, 11:27
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Ну вот еще одна непонятка. Опять таки сравниваем c AVR PORTA=0xF0; PORTA=0x0F; На выходе будет 0x0F, сразу же; Если же работать с SAM7: AT91C_BASE_PIOA->PIO_SODR = 0xFFFF0000; AT91C_BASE_PIOA->PIO_SODR = 0x0000FFFF; То на выходе будет 0xFFFFFFFF. Для того чтобы получить искомые 0x0000FFFF нужно сначала обнулить, а это лишние такты. А если я хочу это сделать быстро, как мне быть? МОжно ли как-то записать 32битное число в порт, чтобы не беспокоиться о том что же в этот момент в порту записано, или нужно взять за правило обнулять порт перед записью нового числа? Прошу прощения за чайниковые вопросы. Цитата Выкиньте Редькина, откройте даташит А есть что-нибудь такое же правильное как даташит, но такое же русское, как Редькин? В общем я чувствую что запутываюсь окончательно. Вы правы - тяжелое наследие работы с CodeVision. Еще тогда кто-то сказал, что COdeVision для новичка - лучший способ испортить стиль программирования. У меня к присутствющим просьба: вот задача - есть PIOA c его 32 ножками. Есть два 8-ми битных числа a и b. Мне нужно поместить биты числа а в биты №№0-7 порта, а биты числа b вы биты №№24-31 порта. Подскажите как это сделать, тогда мне будет от чего отталкиваться, а то от макроса в последнем вложении голова кругом пошла.
|
|
|
|
|
May 13 2010, 11:44
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zheka @ May 13 2010, 14:43)  Ну вот еще одна непонятка. Опять таки сравниваем c AVR PORTA=0xF0; PORTA=0x0F; На выходе будет 0x0F, сразу же;
Если же работать с SAM7: AT91C_BASE_PIOA->PIO_SODR = 0xFFFF0000; AT91C_BASE_PIOA->PIO_SODR = 0x0000FFFF;
То на выходе будет 0xFFFFFFFF. Для того чтобы получить искомые 0x0000FFFF нужно сначала обнулить, а это лишние такты. А если я хочу это сделать быстро, как мне быть?
МОжно ли как-то записать 32битное число в порт, чтобы не беспокоиться о том что же в этот момент в порту записано, или нужно взять за правило обнулять порт перед записью нового числа? Прошу прощения за чайниковые вопросы. А разве вSAM7 нет вывода в регистр? Тогда переходите на кортекс Там есть все три LPC_GPIO0->FIOPIN=i // выводит значение i в регстр0 LPC_GPIO0->FIOSET=i // устанавливает в регстре0 в 1 те биты, которые в i равны 1, остальные не меняются LPC_GPIO0->FIOCLR=i // устанавливает в регстре0 в 0 те биты, которые в i равны 1, остальные не меняются
|
|
|
|
|
May 13 2010, 14:46
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(vallav @ May 13 2010, 14:44)  Тогда переходите на кортекс Там есть все три LPC_GPIO0->FIOPIN=i // выводит значение i в регстр0 LPC_GPIO0->FIOSET=i // устанавливает в регстре0 в 1 те биты, которые в i равны 1, остальные не меняются LPC_GPIO0->FIOCLR=i // устанавливает в регстре0 в 0 те биты, которые в i равны 1, остальные не меняются А причем тут какое-либо ядро к организации GPIO конкретного контроллера? В отношении Cortex-M3, ну там разве только от ядра bit-band может быть использован для частичной эмуляции помянутых Вами LPC-шных SET/CLR
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 14 2010, 05:22
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ May 13 2010, 18:46)  А причем тут какое-либо ядро к организации GPIO конкретного контроллера? В отношении Cortex-M3, ну там разве только от ядра bit-band может быть использован для частичной эмуляции помянутых Вами LPC-шных SET/CLR А при чем тут bit-band и частичная эмуляция? Bit-band - это четвертый способ ввода/вывода в регистры - с побитовой адресацией. И все они не эмулируются а существуют на аппаратном уровне - в железе. Или Вы имели в виду, что нужно было вместо "переходите на кортекс" сказать "переходите на lpc1xxx"? Но прямо об этом сказать постеснялись... Цитата(zheka @ May 13 2010, 22:45)  Тьфу, тфу разобрался. Напаял на плату светодиодов, сделал через (1<<i) в цикле бегущий огонь (OSDR) и заполняющийся столбик (SODR). Разобрался почему у меня не запускался код в RAM. ТОлько объясните моему детскому мозгу, чем же контроллер порта в ARM круче чем в AVR, коль требует к себе такого отношения?
P.S. Сцк, интересный однако, камень, почему я не напрягся с ним раньше?... Да не, просто чип кривоватый. Ваша задача на lpc1768 делается так: LPC_GPIO0->FIOPIN0=a; // вывод в младший байт порт_0 байта a LPC_GPIO0->FIOPIN3=b; // вывод в старший байт порт_0 байта b Но тут беда в другом - не все биты порта выведены на пины. Почему? А кто же его знает...
|
|
|
|
|
May 14 2010, 07:01
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zltigo @ May 14 2010, 10:49)  Я имел ввиду, то, что я написал - Ваши расуждения о свойствах GPIO конкретного LPC нималейшего отношения к какому-либо ядру не имеют и только по факту переходе на ядро Cortex-M3 счастья от обладания такими GPIO не появится. Все. Только у lpc GPIO реализовано корректно? Как ячейка памяти. То есть поддерживает команду - вывод значения регистра в память? У остальных производителей микропроцессоров на ядре кортекс GPIO не поддерживает этой команды и ее приходится эмулировать? Извините, я этого не знал. И что Вы так нервничаете? Сказали бы - есть производители кортексов, у которых GPIO кривое, и все дела...
|
|
|
|
|
May 14 2010, 10:35
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(ViKo @ May 14 2010, 11:54)  Есть производители микроконтроллеров, использующие Cortex ядро. Как они сделают порты - их дело. Обычно делают, как надо. Это не вытекает из Cortex напрямую. Кстати, bit-band для портов - вещь мало нужная. Вполне должно хватать и тех регистров, которые отвечают за биты порта. Для того они и созданы. Вы в курсе, что в кортексе нет пространства ввода-вывода. И GPIO отображается на память. В кортексе есть команды записи в память значения региситра. Если по адресу GPIO стандартная команда ядра не работает - GPIO реализовано криво. Согласны? Кстати, есть такие кортексы, в которых эта команда для GPIO не реализована? Или это чисто теоретические рассуждения - мол вполне может быть не реализована... А в SAM7 насамом деле нет команды записи из регистра в GPIO? А вот что Вы сюда bit-band пристроили, непонеятно. Если и мало нужная то вроде и не мешает... А понадобится, используем. По этому поводу не ко мне, это не я заявлял - "В отношении Cortex-M3, ну там разве только от ядра bit-band может быть использован для частичной эмуляции помянутых Вами LPC-шных SET/CLR" На мой вопрос - это про что - ответа не получено...
|
|
|
|
|
May 14 2010, 12:46
|

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

|
Цитата(vallav @ May 14 2010, 13:35)  Вы в курсе, что в кортексе нет пространства ввода-вывода. И GPIO отображается на память. В кортексе есть команды записи в память значения региситра. Вы в курсе, что в ARM7 (и в AT91SAM7 в частности) нет пространства ввода-вывода? И GPIO отображается на память? В ARM7 есть команды записи в память значения регистра. И чем же тогда кортекс лучше? Цитата(vallav @ May 14 2010, 13:35)  А в SAM7 насамом деле нет команды записи из регистра в GPIO? Если вы этого не знаете, то как можете делать вывод что кортекс лучше? Цитата(vallav @ May 14 2010, 13:35)  На мой вопрос - это про что - ответа не получено... Это про LPC и SAM7, которые вы обвиняете в кривизне. Как выясняется - даже не зная, как они устроены.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
zheka Сбылась мечта идиота - приехали программатор и SAM7S256 Apr 27 2010, 12:37 zltigo Цитата(zheka @ Apr 27 2010, 14:37) Господ... Apr 27 2010, 12:41 aaarrr В книжке, конечно, написана чушь, если Вы дословно... Apr 27 2010, 13:45 zheka ЦитатаДумаю, что это была книжка Редькина
Точно. ... Apr 27 2010, 14:33 aaarrr Цитата(zheka @ Apr 27 2010, 18:33) Ну а е... Apr 27 2010, 14:51 zheka Господа, решился я таки засесть за ARM7.
Заказал п... May 10 2010, 16:38 mempfis_ Цитата(zheka @ May 10 2010, 19:38) Господ... May 11 2010, 06:52  aaarrr Цитата(mempfis_ @ May 11 2010, 10:52) IAR... May 11 2010, 08:31 aaarrr Оба пакета наделены приличными компиляторами и сов... May 10 2010, 22:50 andrewlekar IAR как IDE мне очень нравится. May 11 2010, 04:23 igorenja Цитата(andrewlekar @ May 11 2010, 11:23) ... May 11 2010, 05:38 zheka Сложных проектов у меня в ближайшее время не предв... May 11 2010, 07:04 mempfis_ Цитата(zheka @ May 11 2010, 10:04) Сложны... May 11 2010, 08:09 kosyak© А не могли бы Вы дать развернутую характеристику R... May 11 2010, 08:54 aaarrr Цитата(kosyak© @ May 11 2010, 12:54) А не... May 11 2010, 09:00 zheka ДОброго времени суток, господа!
Вот и я делаю ... May 11 2010, 16:01 zltigo Цитата(zheka @ May 11 2010, 19:01) Это ка... May 11 2010, 16:34 aaarrr Цитата(zheka @ May 11 2010, 20:01) ...Кст... May 11 2010, 17:19 zheka уважаемый zltigo. Варианта два:
1. я не знаю азов ... May 11 2010, 16:50 mrKirill Цитата(zheka @ May 11 2010, 22:50) Так во... May 11 2010, 17:24 zltigo Цитата(zheka @ May 11 2010, 19:50) уважае... May 11 2010, 18:24 mdmitry Для осциллографа ключевые слова: постоянная состав... May 11 2010, 17:06 zheka ЦитатаА должна быть "1". Сдается мне, чт... May 11 2010, 17:29 mrKirill А вход открытый или закрытый? May 11 2010, 17:35 zheka Вот черт....
Я из-за вас разнервничался и крокодил... May 11 2010, 17:37 mrKirill Ваша невнимательность...
Учитесь признавать свои о... May 11 2010, 17:40 zheka ЦитатаВаша невнимательность...
Учитесь признавать ... May 11 2010, 18:08 aaarrr Цитата(zheka @ May 11 2010, 22:08) Боюсь ... May 11 2010, 18:21 mrKirill ЦитатаОДнако!!!
6 вольт питания - проц... May 11 2010, 18:19 zheka ЦитатаВерх дилетантства использовать абы какие реж... May 11 2010, 18:24 mrKirill Цитата(zheka @ May 12 2010, 00:24) Где кр... May 11 2010, 18:26 zheka ЦитатаВот только обнаружив отрицательные напряжени... May 11 2010, 18:29 zltigo Цитата(zheka @ May 11 2010, 21:29) Вы тут... May 11 2010, 18:35 zheka Цитата6 вольт питания - проц работает и не греется... May 11 2010, 18:41 zltigo Цитата(zheka @ May 11 2010, 21:41) Кого я... May 11 2010, 18:50 zheka Ех... всегда готов!!! К счастью на пла... May 11 2010, 18:54 aaarrr Цитата(zheka @ May 11 2010, 22:54) Ех... ... May 11 2010, 19:59  Сергей Борщ Цитата(aaarrr @ May 11 2010, 22:59) 6V - ... May 11 2010, 21:03 aaarrr Да, как-то забыл, что VDDFLASH тоже 3.3V
Вспомнил... May 11 2010, 21:19 mdmitry По поводу осциллографа: у некоторых есть дифференц... May 11 2010, 21:44 mrKirill Цитата(mdmitry @ May 12 2010, 03:44) По п... May 12 2010, 02:15 zheka mrKirill, с осциллографом вы угадали.
Сергей Борщ... May 12 2010, 03:38 zheka Перепаял я стабилизатор, все нормально. Решил немн... May 12 2010, 14:11 Седой Цитата(zheka @ May 12 2010, 20:11) ...
то... May 12 2010, 17:21 zheka То есть Вашмим словами - ULINK это не название про... May 12 2010, 18:00 zheka Проблема решена. Дело было в локализации KEIL в па... May 12 2010, 19:21 zheka Как же все-таки сложно переделывать заложенные в г... May 13 2010, 06:57 Сергей Борщ Цитата(zheka @ May 13 2010, 09:57) В АВР ... May 13 2010, 07:28 vallav Цитата(zheka @ May 13 2010, 10:57) Как же... May 13 2010, 07:38 Genadi Zawidowski Цитата(zheka @ May 13 2010, 10:57) Как же... May 13 2010, 07:49 zheka ЦитатаНет. Из SODR читать вообще нельзя. Для чтени... May 13 2010, 08:17 Сергей Борщ Цитата(zheka @ May 13 2010, 11:17) Под со... May 13 2010, 09:32         vallav Цитата(Сергей Борщ @ May 14 2010, 16:46) ... May 14 2010, 13:35          ViKo Цитата(vallav @ May 14 2010, 16:35) Может... May 14 2010, 13:50          Сергей Борщ Цитата(vallav @ May 14 2010, 16:35) Был п... May 14 2010, 14:04           vallav Цитата(Сергей Борщ @ May 14 2010, 18:04) ... May 14 2010, 14:21          zltigo Цитата(vallav @ May 14 2010, 16:35) Он чт... May 14 2010, 18:15 Сергей Борщ Цитата(zheka @ May 13 2010, 14:27) Ну вот... May 13 2010, 12:38 zheka vallav, спасибо за идею, теперь я понял как задать... May 13 2010, 11:51 aaarrr Почитайте в мануале про OWER, ODSR. May 13 2010, 12:33 zheka С битами 8-23 я ничего не собирался делать. А в АВ... May 13 2010, 14:44 Сергей Борщ Цитата(zheka @ May 13 2010, 17:44) А втор... May 13 2010, 17:33 zheka Значит так, господа давайте изложу проблему деталь... May 13 2010, 14:58 aaarrr КодAT91C_BASE_PIOA->PIO_OWER = 0xFF0000FF;
AT... May 13 2010, 15:09 zheka aaarrr спасибо, то что надо.
то есть OWER нужно вк... May 13 2010, 15:45 aaarrr Цитата(zheka @ May 13 2010, 19:45) то ест... May 13 2010, 16:10 zheka Тьфу, тфу разобрался. Напаял на плату светодиодо... May 13 2010, 18:45 aaarrr Цитата(zheka @ May 13 2010, 22:45) ТОлько... May 13 2010, 19:52  zltigo Цитата(aaarrr @ May 13 2010, 22:52) Каког... May 13 2010, 21:13 zheka ЦитатаКакого отношения - чтения документации?
Не с... May 14 2010, 02:51 ViKo Вот и Вы, похоже, нервничаете
У ядра Cortex, кото... May 14 2010, 11:36 zheka ЦитатаКак выясняется - даже не зная, как они устро... May 14 2010, 13:05 zheka Vallav, я конечно еще лох, но попробую тявкнуть - ... May 14 2010, 14:24 vallav Цитата(zheka @ May 14 2010, 18:24) Vallav... May 15 2010, 07:37 zheka Подскажите, как грамотно организовать задержку на ... May 14 2010, 17:46 rezident Цитата(zheka @ May 14 2010, 23:46) Подска... May 14 2010, 17:56 ViKo А можно я еще чуть-чуть про Cortex-M3? Вернее, про... May 14 2010, 18:03 zheka С помощью таймера можно было и в АВР. А можно было... May 14 2010, 18:29 zltigo Цитата(zheka @ May 14 2010, 21:29) Неужел... May 14 2010, 18:47 zheka ЧТо помешает? Например вот это:
ЦитатаBlinky.c(32)... May 14 2010, 19:13 zltigo Цитата(zheka @ May 14 2010, 22:13) ЧТо по... May 14 2010, 19:27 zheka ЦитатаА чем компилим-то?
Компилим в KEIL uVisioin... May 15 2010, 07:38 zltigo Цитата(zheka @ May 15 2010, 10:38) Компил... May 15 2010, 07:59 ViKo Для Cortex у меня есть такая штука. Ассемблер тут ... May 15 2010, 08:02 zheka ЦитатаЭто оболочка поддерживающая разные компилято... May 15 2010, 08:09 ViKo Цитата(zheka @ May 15 2010, 11:09) ВОпрос... May 15 2010, 08:18 zheka VIKO спасибо, помогло.
Смотрим дальше, что ему не... May 15 2010, 08:30 AHTOXA PROGMEM уберите, это от АВР. May 15 2010, 08:33  zltigo Цитата(AHTOXA @ May 15 2010, 11:33) PROGM... May 15 2010, 11:05 zheka Получилось. Идем дальше...
Еще такой вопросец, а ... May 15 2010, 08:36 ViKo Цитата(zheka @ May 15 2010, 11:36) Еще та... May 15 2010, 10:47
2 страниц
1 2 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|