Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос о соединении портов AT90S1200
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс июн 22, 2025 05:30:20

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 14:18:49 
Родился

Зарегистрирован: Ср сен 05, 2018 18:07:35
Сообщений: 13
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Есть желание передавать данные от одного AT90S1200 к другому через порт B. Нужны ли какие-то резисторы вешать на линии порта B. Какие и каким образом?
Направление передачи очевидно можно передавать через какую-нибудь линию порта D.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 14:37:21 
Друг Кота

Карма: 68
Рейтинг сообщений: 1958
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
расстояние?
зачем передавать направление? Возьмите за основу UART - одна линия на передачу, другая линия на приём.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 15:23:22 
Друг Кота
Аватар пользователя

Карма: 17
Рейтинг сообщений: 442
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 5142
Откуда: Воронеж
Рейтинг сообщения: 0
330 Ом просто на всякий случай.

_________________
"Привет!" - соврал он.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 21:29:14 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15044
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Достаточно трех линий для двустороннего обмена (если не использовать UART и соответствующую проверку достоверности кода).
Но то в основном в пределах одной конструкции - обмен между модулями.
8)


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 22:10:52 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
Офигеть! Как же ж люди однопроводным UART-ом обходятся!
Я уже не говорю об 1-wire с паразитным питанием!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Пт сен 08, 2023 22:15:45 
Друг Кота

Карма: 31
Рейтинг сообщений: 806
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5400
Откуда: Протвино
Рейтинг сообщения: 0
кроме uart я бы рассмотрел i2c, 1-wire (dallas), spi, 44780(4/8bit) в зависимости от расстояний и необходимых скоростей.

у AT90S1200 есть встроенные пуллапы, впринципе можно обойтись ими для низкоскоростных двунаправленных линий , а для uart и процчих однонапрвленных линий - просто двухтактный выход gpio настраиваем и все.

OKF, далеко не всегда требуется передавать гигабиты в секунду, часто в контроллерах требуются оч скромные скорости и потоки и 1w может оказаться разумнее чем sas, hdmi или eth10G :music:


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 08:51:43 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
далеко не всегда требуется передавать гигабиты в секунду...

На 100%. Тем более, задача ТС не ясна. Вполне возможно что ему нужно передавать данные типа boolean.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 08:58:23 
Родился

Зарегистрирован: Ср сен 05, 2018 18:07:35
Сообщений: 13
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Обе микросхемы расположены на одной плате. Хотелось бы максимальное быстродействие, поэтому параллельно. Но может быть действительно тетрадами, если только AT90S1200 так умеет(половина порта на выход,половина на вход, чтобы порты не переключать на вход и выход постоянно.
Данные типа 8 и 16 бит знаковые. Задача распараллеливание выполнения алгоритма.
Допустим: первая посылает второй два байта(может быть действительно тетрадами) и пока вторая их умножает( в AT90S1200 операции умножения нет), выполняет что-то еще, а когда готов результат, забирает его себе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 09:51:11 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15044
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
В таком случае арбитраж готовности к приему/завершения обработки должен быть (помимо потока данных).
Это еще и без контроля целостности (CRC или еще чего).
У меня с таким трехпроводка справляется.
К примеру (правда это ассемблер для mcs51, но алгоритм на любое семейство легко переделывается)
Спойлер
Код:
;
;          bspi_m.txt
;
; файл протокола приемопередатчика
; последовательного обмена с побитовой синхронизацией
; передача/прием ведется младшими битами вперед
; в девятибитовом формате
; первым идет пересылка флага "команда/данные"
; далее следует 8 бит данных(вектора команды)
;
; предшетвующее вызову подпрограмм содержимое
; аккумулятора не сохраняется !!!
;
;----------
;
; bus_dtr  equ N ; шина данных/запроса доступа
        ; по reset вход с внешней подтяжкой к +5 вольт
        ; при запросе выход с активным уровнем 0
        ; при обмене соответственно или вход или выход
            ; с данными в прямом коде
; bus_clc  equ N ; тактовый строб обмена данными
        ; по reset/cold init вход с внешней подтяжкой к +5 вольт
        ; при обмене соответственно вход(прием) или выход(передача)
        ; активный уровень 0
; bus_qt   equ N ; шина квитирования
        ; по reset/cold init вход с внешней подтяжкой к +5 вольт
        ; активный уровень 0
        ; вход для передатчика, выход для приемника
;
;----------
;
; модуль приемопередачи
; по умолчанию
; используется текущий регистровый банк
;
; .define cntbit_t R2 ; r2 rb0 счетчик бит
; .define cnt_tm R3 ; r3 rb0 счетчик таймера задержки
; .define data_t R7 ; r7 rb0 байт буфера данных
; .define txd_port Pх ; Рх как порт ввода/вывода и строба


; data_key: .dbit 1 ; флаг типа данные/команда
           ; data_key=0 - байт с данными
           ; data_key=1 - байт с командой
;
;----------
;
; собственно передача data_key и байта данных
; перед вызовом программы данные должны быть загружены в
; аккумулятор
; и установлен в соответствие флаг data_key
;(data_key=0 - байт с данными
; data_key=1 - байт с командой)
; программа использует текущий регистровый банк
;
  .cseg
 bspi_txd:
   xch a,data_t ; данные помещены в data_t, R7 в ACC
   push ACC ; R7 в стеке
   mov a,cnt_tm
   push ACC ; R3 в стеке
   mov a,cntbit_t
   push ACC ; R2 в стеке
  orl txd_port,#(1<<bus_dtr || 1<<bus_clc || 1<<bus_qt) ; настройка порта
      ; за исключением at89s5x возможно потребуется настройка портов
      ; bus_dtr=bus_clc=bus_qt=ВХОД
 tx_on:
  mov cntbit_t,#8 ;
  mov c,data_key
  acall strob ; бит типа данных передан
 data_tx:
   xch a,data_t
   rrc a ; предсдвиг значения данных
   xch a,data_t
   acall strob ; бит данных передан
  djnz cntbit_t,data_tx
 tx_off:
  setb txd_port.bus_dtr ; страховое закрытие bus_dtr
  ; за исключением at89s5x возможно потребуется настройка портов
   ; шины bus_dtr=bus_clcbus_qt=ВХОД
  ; и bus_dtr=bus_clcbus_qt=1
   pop ACC
   mov cntbit_t,a ; R2 восстановлен
   pop ACC
   mov cnt_tm,a ; R3 восстановлен
   pop ACC
   xch a,data_t ; предшествующее содержимое R7 восстановлено
               ; содержимое ACC не определено
 ret
;----------
 strob:
  mov txd_port.bus_dtr,c ; выдать бит data_key на bus_dtr
  acall time ; задержка установки данных
  clr txd_port.bus_clc ; активируем запрос синхронизации
  acall time ; задержка установки данных
 tx_tp0:
   mov a,txd_port ; читаем входные линии Р1 в А
  jb ACC.bus_qt,tx_tp0 ; ожидание ответа приемника (bus_qt=0)
   setb txd_port.bus_clc ; деактивируем запрос синхронизации
   acall time ; задержка установки данных
 tx_tp1:
   mov a,txd_port ; читаем входные линии Р1 в А
  jnb ACC.bus_qt,tx_tp1 ; ожидание ответа приемника (bus_qt=1)
 ret
;
;----------*****----------
;
;            модуль приема
;
; не имеет защиты от превышения ожидания длительности строба
; сопровождения исходя из предположения, что обмен между модулями
; является основной частью программы в промежутках между
; исполнением команд
; т.е. допускается полный останов обмена
; программа использует текущий регистровый банк
;
;        по выходу
; в data_key значение в соответствии с принятым (0 или 1)
; в аккумуляторе принятые данные в прямом коде прямой
; последовательности
;
 bspi_rxd:
   xch a,data_t
   push ACC ; R7 в стеке
   mov a,cnt_tm
   push ACC ; R3 в стеке
   mov a,cntbit_t
   push ACC ; R2 в стеке
  mov cntbit_t,#8 ; загрузить счетчик бит
  orl txd_port,#(1<<bus_dtr || 1<<bus_clc || 1<<bus_qt) ; настройка порта
      ; за исключением at89s5x возможно потребуется настройка портов
      ; /bus_dtr=bus_clc=ВХОД, bus_qt=ВЫХОД/
      ; bus_dtr=bus_clc=bus_qt=ВХОД
      ; bus_dtr=bus_clc=bus_qt=1
 rx_on:
  acall strobinp
  mov a,data_t
  rlc a ; изьятие data_key поскольку процедура
  mov data_key,c ; приема бита единая для всех бит
 data_rx:
   acall strobinp
  djnz cntbit_t,data_rx
   pop ACC
   mov cntbit_t,a ; R2 восстановлен
   pop ACC
   mov cnt_tm,a ; R3 восстановлен
   pop ACC
   xch a,data_t ; данные перемещены в акумулятор, R7 восстановлен
  ret
;----------
 strobinp:
   mov a,txd_port
  jb ACC.bus_clc,strobinp ; простой в ожидании
 rx_tp0:
  acall time ; задержка установки данных
  mov a,txd_port
  mov c,ACC.bus_dtr
  xch a,data_t
  rrc a
  xch a,data_t
  clr txd_port.bus_qt ; активировать строб квитирования
  acall time ; задержка установки данных
 rx_tp1:
   mov a,txd_port
  jnb ACC.bus_clc,rx_tp1 ; ждем ответ передатчика
   setb txd_port.bus_qt ; деактивировать строб квитирования
   acall time ; задержка установки данных
 ret
;
;----------
;
; возврат квитанции результата
; выполненной операции для
; "обработчиков команд "smart vectors""
; Мастер в момент окончания квитирования
; последнего бита данных для смарт-команды
; выставляет bus_clc=0
; и переходит в ожидание bus_qt=0 от приемника
; затем мастер выставляет bus_clc=1 и ожидает
; bus_qt=1 от приемника после чего продолжает
; выполнение программы согласно задачи
; Алгоритм квитирования тот же, что и у
; обычной пересылки бита, но выполняется
; в конце отправки смарт пакета
; сразу за пересылкой последнего бита данных
; мастером
; (байт команды+байт данных) - назначение
; такой квитанции - избежать обратной
; пересылки квитанционного байта данных
; от периферии мастеру
; (сокращение времени реакции)
;
 smart_qt_slave:
    mov a,cnt_tm
    push ACC
   mov a,txd_port
  jb ACC.bus_clc,smart_qt_slave ; ждем запрос передатчика
   clr txd_port.bus_qt ; актвировать строб квитирования
   acall time ; задержка установки данных
 qt0_p:
   mov a,txd_port
  jnb ACC.bus_clc,qt0_p ; ждем ответ передатчика
   setb txd_port.bus_qt ; деактивировать строб квитирования
   acall time ; задержка установки данных
    pop ACC
    mov cnt_tm,a
  ret
;
;----------
;
; запрос ведущим "smart" квитанции
; от ведомого о завершении исполнения задачи
;
 smart_qt_master:
    mov a,cnt_tm
    push ACC
   clr txd_port.bus_clc ; Мастер в момент окончания
            ; квитирования последнего бита данных
            ; для смарт-команды выставляет bus_clc=0
   acall time ; задержка установки данных
 qt2_p:
   mov a,txd_port
   jb ACC.bus_qt,qt2_p ; и переходит в ожидание
             ; bus_qt=0 от приемника
    setb txd_port.bus_clc ; деактивировать
             ; запрос квитирования
    acall time ; задержка установки данных
 qt3_p:
   mov a,txd_port
   jnb ACC.bus_qt,qt3_p ; и переходит в ожидание
             ; bus_qt=1 от приемника
      pop ACC
    mov cnt_tm,a
   ret
;
;----------
;
; генерация интервала задержки
;
 time:
   mov cnt_tm,#8 ; интервал задержки
  djnz cnt_tm,$ ;
 ret
;

Не факт, что оптимально, но надежно и вполне с задачами справляется.
:hunger:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 13:03:14 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
8 бит двунаправлено. С готовностями и стробами. Посмотрите на 580ВВ55.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 15:24:28 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15044
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А сколько выводов для обслуживания ВВ55й потребуется?
AT90S1200 это ж МК аналогичный по упаковке аттини2313... Там же останется совсем маалооо лапок...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 16:45:10 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1213
Рейтинг сообщения: 0
Я ж не про выводы, я про идеологию. Как происходит 8-ми битный обмен. Но, можно и упростить.
И ВВ55 - это чисто для примера. Нужно смотреть соответствующий режим.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос о соединении портов AT90S1200
СообщениеДобавлено: Сб сен 09, 2023 19:11:40 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15044
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Так режим не особо отличается от аналогичного доступа к внешней памяти данных.
Плюс линии квитирования. 8 битная шина адреса/данных, строб записи, строб чтения, пара выводов для арбитража, линия "адрес/данные"... В принципе...
Можно адаптировать тот же протокол, что и у меня выше, только шина данных не в 1 бит, а в 8.
:roll:
Только вот для той AT90S1200 может и такое роскошь - там ведь всего 1К ПЗУ...
:(


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y