На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА "Электроника и схемотехника"
В дополнение к основным ПРАВИЛАМ ФОРУМА :

1. Не забывайте указывать полное наименование, модель,марку, изготовителя и краткие характеристики оборудования.
2. Аргументируйте свое мнение - приводите развернутое высказывание или источник информации.
3. Запрещается обсуждать, размещать запросы и ссылки на схемы и оборудование
конфликтующие с законом или несущие явную потенциальную угрозу применения.
4. Не разрешается давать советы из разряда "Выкинь это старьё" и подобные.
5.Наглая реклама и самопиарщиана подлежит отстрелу сопровождаемому соответстующим наказанием
6.Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
7.Запрещается создание тем, не относящиеся непосредственно к "Электронике и схемотехнике"
8.В этом разделе КАТЕГОРИЧЕСКИ запрещен мат во всех его проявлениях, а также: Ругань, оскорбления, переход на
личности.

Если Вы увидели нарушение правил раздела или форума, не поленитесь сообщить об этом модератору.
Участники форума, нарушающие правила, будут наказываться, а вносящие вклад в развитие форума - награждаться (DigiMoney и прочими радостями).


Приятного вам общения! ;)
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Запись в регистр процессора , на плате Banana pro
    У меня есть плата Banana Pro

    У нее есть порты ввода вывода (распиновка), есть документация на плату. Для управления портами ввода-
    Прикреплённая картинка
    Прикреплённая картинка
    вывода есть библиотека wiringPi, я ее использовал, проблем нет. Но я хочу разобраться с управлением напрямую с записью в регистр процессора/, смотрю в документацию, вижу фигу, объясните как это связать и понять.

    Например меня интересует управление 31, 33, 35, 37 портом.
    Прикреплённый файлПрикреплённый файлBanana_Pro_Schematic.pdf (1,62 Мбайт, скачиваний: 152)
      Цитата ter_nk_ @
      Но я хочу разобраться с управлением напрямую с записью в регистр процессора

      Посмотрите тут, я мигал светодиодиками (делал тест для распи)на этом.Может , переделаете для банана.
        Спасибо, но не то. Там библиотека есть под raspberry. Но я спрашивал как разобраться, а не как строчку кода написать.
          Цитата ter_nk_ @
          Но я спрашивал как разобраться, а не как строчку кода написать.

          Тебе нужна документация на используемый процессор (контроллер).
          Там и найдёшь подробное описание всех портов и регистров для управления ими.
          Сообщение отредактировано: ЫукпШ -
            Эта та что в аттачмент? Не надо писать читай документация и поймешь. Суть вопроса была - читал документацию - не понял.
              Цитата ter_nk_ @
              Эта та что в аттачмент?

              Нет. Ты читал не ту документацию.
              Надо "UserGuide" на процессор.
              Судя по плате это "A20".
              Но лучше точно узнать его полную маркировку и искать документацию
              на сайте производителя.
              Примерно так выглядит документация
              Перелистывая страницы одну за другой, там можно обнаружить такое (по каждой подсистеме ЦПУ):
              user posted image
              ---
              Ещё можно порыцца в заголовочных файлах, для работы с этим процессором...
              Сообщение отредактировано: ЫукпШ -
                Нашел таблицу

                1.19.1. Port Description
                The chip has several ports for multi-functional input/out pins. They are shown below: Port A(PA): 18 input/output port Port B(PB): 24 input/output port

                Таблица

                1.19.2. Port Configuration Table
                Port A(PA)
                Multiplex Function Select

                Меня например интересует

                PA15 ECRS UART7_RX UART1_DSR GTXCK/ECRS I2S1_LRCK

                Дальше высчитываю адрес исходя из

                Module Name Base Address
                PIO 0x01C20800
                Register Name Offset Description
                Pn_CFG0 n*0x24+0x00 Port n Configure Register 0 (n from 0 to 9)
                Pn_CFG1 n*0x24+0x04 Port n Configure Register 1 (n from 0 to 9)
                Pn_CFG2 n*0x24+0x08 Port n Configure Register 2 (n from 0 to 9)
                Pn_CFG3 n*0x24+0x0C Port n Configure Register 3 (n from 0 to 9) For

                Т.е. я буду плясать от этого адреса - 0x01C20800

                Pn_DAT n*0x24+0x10 Port n Data Register (n from 0 to 9)


                1.19.4.2. PA CONFIGURE REGISTER 1
                Offset: 0x04
                Register Name: PA_CFG1 Default Value: 0x0000_0000
                Bit Read/Write Default Description
                31 / / /
                30:28 R/W 0
                PA15_SELECT 000: Input 001: Output 010: ECRS 011: UART7_RX 100: UART1_DSR 101: GTXCK/ECRS 110: I2S1_LRCK 111: Reserved

                Т.е. я должен для конфигурации OUTPUT чтоб мне управлять портом со смещением

                0x01C20800 + 4 и в четырех байтах 28 бит установить в единицу?
                  Цитата ter_nk_ @
                  0x01C20800 + 4 и в четырех байтах 28 бит установить в единицу?

                  Вероятно, да. Надо пробовать.
                  я именно с таким процессором не работал.
                  Делай по документации и всё получится.
                  ---
                  Обрати внимание, в каком состоянии биты после RESET.
                  И, насколько я знаю, у ARM порцессоров вроде бы имеется
                  возможность устанавливать биты (интерфесных портов) непосредственно,
                  без операций чтения-модификация-запись.
                  Возможно, не у всех. Но могу и ошибаться.
                    Это я пока до конфигурации, а запись что-то типа open("/dev/mem", O_RDWR) и write(...

                    Добавлено
                    Цитата ЫукпШ @
                    Обрати внимание, в каком состоянии биты после RESET.


                    Биты меня интересующие портов ввода-вывода как и настройки их в нулях вроде. Там библиотечка есть wiringPi я писал, там можно посмотреть состояние, так вот показывает, что ничего. Кстати только при включении что-то происходит на портах. У меня сервоприводы подключены, так вот при включении проехаться успевают.
                      Цитата ter_nk_ @
                      У меня сервоприводы подключены, так вот при включении проехаться успевают.

                      "Что-то не то". Не должно такого быть в принципе, согласись.
                      А если ЦП вообще не запустится (сломалось) - и что тогда будет с механическими
                      приводами ?
                      Надо спаять схему таким образом, чтобы по аппаратному сигналу RESET всё гарантированно
                      останавливалось. Проснувшийся интеллект процессора после сброса должен
                      всё правильно сконфигурировать-подключить-поуправлять.
                      Никакой самостоятельной "механической жизни" быть не должно.
                        Цитата ЫукпШ @
                        "Что-то не то". Не должно такого быть в принципе, согласись.
                        А если ЦП вообще не запустится (сломалось) - и что тогда будет с механическими
                        приводами ?
                        Надо спаять схему таким образом, чтобы по аппаратному сигналу RESET всё гарантированно
                        останавливалось. Проснувшийся интеллект процессора после сброса должен
                        всё правильно сконфигурировать-подключить-поуправлять.
                        Никакой самостоятельной "механической жизни" быть не должно.


                        Ну там что происходит... сервопривод имеет три контакта - питание, управление и земля. Земля и питания сразу включаются, а управляется от управляющим портом, который подает управляющий сигнал условно на 1,5 мл секунды, потом надо давать паузу условно 18,5 мл секунд. Вот с таким приблизительно периодом он и управляется и чуть больше чуть меньше указывают отклонение куда ему двигаться. Вот в процессе подачи питания на пинах какой-то шум во время инициализации.

                        Как вариант что я могу сделать, это подавать питание через обычный полевой транзистор (друзья из Китая прислали) тогда эти шумы ничего не сделают, вопрос надо ли
                          Цитата ter_nk_ @
                          Вот в процессе подачи питания на пинах какой-то шум во время инициализации.

                          Как вариант что я могу сделать, это подавать питание через обычный полевой транзистор (друзья из Китая прислали) тогда эти шумы ничего не сделают, вопрос надо ли

                          Если по другому нельзя, конечно надо.
                          (А я так и делал, кстати)
                          Но для начала необходимо понять, что появляется на управляющем входе привода.
                          Вероятно, лучше всего соединить его допустимым по значению резистором к пассивному
                          уровню напряжения.
                          Поскольку после старта процессора его интерфейсные пины включены "на ввод"
                          имеют высокое входное сопротивление. Как отреагирует внешняя электроника на
                          висящий в воздухе провод - это "вопрос". Может и гореть будет. Вместе с процессором.
                          Из-за возможных внешних наводок.
                          После старта процессора он должен перепрограммировать управляющий пин "на выход"
                          и взять управление приводом на себя. А до этого на управляющий вывод привода
                          должен подаваться пассивный сигнал.
                          Сообщение отредактировано: ЫукпШ -
                            Цитата ЫукпШ @
                            Но для начала необходимо понять, что появляется на управляющем входе привода.


                            Как я предполагаю скачки 3.3 В

                            Цитата ЫукпШ @
                            Вероятно, лучше всего соединить его допустимым по значению резистором к пассивному
                            уровню напряжения.


                            Э... что значит к пассивному уровню напряжения?

                            Цитата ЫукпШ @
                            Поскольку после старта процессора его интерфейсные пины включены "на ввод"
                            имеют высокое входное сопротивление. Как отреагирует внешняя электроника на
                            висящий в воздухе провод - это "вопрос". Может и гореть будет. Вместе с процессором.
                            Из-за возможных внешних наводок.


                            Не ну если провод как бы висит в воздухе управляющих у сервопривода, ничего не будет с ним. Хоть с наводками хоть без.

                            А читать писать open("/dev/mem", O_RDWR) ?

                            Добавлено
                            Состояние видимо этим определяется...

                            1.19.4.5. PA DATA REGISTER
                            Offset: 0x10
                            Register Name: PA_DAT Default Value: 0x0000_0000
                            Bit Read/Write Default Description
                            31:18 / / /
                            17:0 R/W 0
                            PA_DAT If the port is configured as input, the corresponding bit is the pin state. If the port is configured as output, the pin state is the same as the corresponding bit. The read bit value is the value setup by software. If the port is configured as functional pin, the undefined value will be read.
                              Цитата ter_nk_ @
                              Э... что значит к пассивному уровню напряжения?

                              Наверное, ты и сам мог бы догадаться.
                              Если некое устройство включается логической "1" (3.3V), а выключается
                              логическим "0" (0V), значит пассивный уровень - "0" (0V)

                              Добавлено
                              Цитата ter_nk_ @
                              Не ну если провод как бы висит в воздухе управляющих у сервопривода, ничего не будет с ним. Хоть с наводками хоть без.

                              Откуда ты знаешь ?
                              И что будет с пином ЦП, если рядом кто-то неудачно выключит
                              электрочайник или лампу дневного света ?
                              (фрезерный станок, электросварку..)
                              Сообщение отредактировано: ЫукпШ -
                                Цитата ЫукпШ @
                                Откуда ты знаешь ?


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

                                Цитата ЫукпШ @
                                И что будет с пином ЦП, если рядом кто-то неудачно выключит
                                электрочайник или лампу дневного света ?
                                (фрезерный станок, электросварку..)


                                Жена угрожала, что будет пыль протирать и "мало ли что может случиться с моим железом", а о таком варианте не думал.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0793 ]   [ 18 queries used ]   [ Generated: 19.04.24, 03:31 GMT ]