Важная информация

User Tag List

Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 34

Тема: О вопросах и проблемах тестирования COM-порта на ATM-turbo 2+ и ATM-turbo 3

  1. #1
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    211
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию О вопросах и проблемах тестирования COM-порта на ATM-turbo 2+ и ATM-turbo 3

    Камрады, долго думал, в какой из существующих тем про АТМ поднять вопрос. Но потом подумал, что вопрос про COM-порт требует отдельного поста.

    После того как решилась проблема запуска прошивок v3.x на контроллере клавиатуры АТМ2+/3 благодаря выявленным причинам существовавших проблем и выпуска Камилем "всеядной" версии v3.2m с учетом выявленных недостатков, появилась возможность тестирования всех режимов контроллера на разных АТМках и, соответственно, возможность сравнения. Ну и мы с Алексеем Исмагиловым продолжили работу по тестированию, теперь уже COM-порта. И вот с чем столкнулись:

    Раньше я проверял COM-порт дома в одиночку (соединялся по нульмодему с ноутбуком). Под это дело есть написанная Камилем Каримовым примитивная (только отправка/пример набиваемого на клавиатуре текста) терминалка под OS CP/M (вот она: http://atmturbo.nedopc.com/download/...erm/zxterm.zip) При возможности настраивать сам COM-порт в контроллере на разную скорость от 1200 до 115200 бод, она в терминалке предустановлена (просто кидается в настройки конкретный байт константы - заменишь его в HEX-редакторе - будет другая настройка скорости) - т.е. программно из всяких "менюшек" из самой терминалки менять ее нельзя. И предустановленная скорость, согласно описанию Камиля, равна 19200 бод. В свое время, проверяя COM-порт, я удивился, что терминалка "завелась" почему-то на скорости 38400 бод. Тогда я подумал, что просто Камиль скинул мне "бинарник" терминалки с другой константой, но в сам код не залез и не проверил (а зря). И на этом временно под грузом иных дел проверку порта прекратили.

    А теперь, когда мы начали проверять контроллер совместно с Алексеем на наших двух платах, то оказалось, что на его плате та же самая терминалка (взятая именно с того же самого образа диска - т.е. исключительно тот же бинарник) завелся у него на "православных" 19200 бод. Когда мы дискету с терминалкой вставили на мою АТМку, она опять запустилась на 38400 бод.

    Мне стало интересно. И я-таки полез в закрома бинарника, и увидел, что константа правильная, и соответствует настройке на 19200 бод.

    Тогда я, меняя константу, изготовил версии бинарников терминалки под все возможные скорости (отражена в названии файлов) и мы по очереди стали их запускать у меня и у Алексея. И получили весьма интересные результат. При этом надо добавить, что у меня стоит контроллер (с соответствующей прошивкой v 3.2m07) м кварцем на 7МГц (берется с платы), а у Алексея - прошивка v3.2m11 и кварц на 11.0592МГц

    А результаты следующие.

    Настройка терминалки - фактическая скорость работы

    1200 бод - 1200 бод (сначала не завелась - работала со скоростью, установленной предыдущей терминалкой, но потом в мануале Камиля оказалась неверная константа - надо не 98dec, а 96dec)
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 38400 бод !!!!
    38400 бод - 38400 бод
    57600 бод - 38400 бод !!!!
    115200 бод - 38400 бод !!!!

    У Алексея Исмагилова получились несколько иные результаты:

    1200 бод - 1200 бод
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 19200 бод
    38400 бод - ВООБЩЕ НИ НА КАКОЙ СКОРОСТИ НЕ ЗАРАБОТАЛО!
    57600 бод - 57600 бод
    115200 бод - 57600 бод!!!

    Вот такие дела. Ниже выкладываю образ диска (TRD-шник, с файловой системой CP/M внутри) с вариантами терминалки под разную скорость (названия файлов, например ZXT19200.COM - терминалка под 19200 бод. Под 1200 бод запускать вариант ZXT1200B.COM - без буквы "B" упомянутый вариант с неверной константой из мануала Камиля. ВСЕ ОСТАЛЬНЫЕ КОНСТАНТЫ ВЕРНЫЕ!!!. Выход из терминалки обратно в систему - по Ctrl+C)

    trmnals.zip

    Просьба всех пользователей реальных ATM-turbo 2+ и ATM-turbo 3 (v8.0), у кого завелась прошивка контроллера одной из версий v3.x записать образ на дискету и протестировать COM-порт на ваших платах на всех доступных скоростях, и о результатах сообщить здесь в комментах примерно в том формате, что привел я. При этом обязательно просьба сообщить также и версию прошивки, версию платы, а также частоту кварца, на котором работает контроллер клавиатуры.

    Также прошу Камиля Каримова подключиться к вопросу. Будем все коллективно думать.

    С уважением.
    Последний раз редактировалось Максагор; 06.12.2019 в 00:24.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для Serg6845
    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,016
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    255
    Поблагодарили
    235 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Тогда я, меняя константу, изготовил версии бинарников терминалки под все возможные скорости (отражена в названии файлов) и мы по очереди стали их запускать у меня и у Алексея. И получили весьма интересные результат. При этом надо добавить, что у меня стоит контроллер (с соответствующей прошивкой v 3.2m07) м кварцем на 7МГц (берется с платы), а у Алексея - прошивка v3.2m11 и кварц на 11.0592МГц

    А результаты следующие.

    Настройка терминалки - фактическая скорость работы

    1200 бод - 1200 бод (сначала не завелась - работала со скоростью, установленной предыдущей терминалкой, но потом в мануале Камиля оказалась неверная константа - надо не 98dec, а 96dec)
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 38400 бод !!!!
    38400 бод - 38400 бод
    57600 бод - 38400 бод !!!!
    115200 бод - 38400 бод !!!!

    У Алексея Исмагилова получились несколько иные результаты:

    1200 бод - 1200 бод
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 19200 бод
    38400 бод - ВООБЩЕ НИ НА КАКОЙ СКОРОСТИ НЕ ЗАРАБОТАЛО!
    57600 бод - 57600 бод
    115200 бод - 57600 бод!!!

    Вот такие дела.

    С уважением.
    Безотносительно к АТМ (у меня его нет) - вспоминается что в древнем внешнем модеме GVC со стандартным 8031 в качестве головы - стоял кварц на 22.118 МГц, и он умел 115200. и тогда я даже читал даташит на 8031 и пришел к выводу что это максимум что можно с него выжать. соответственно на 11059 как раз получится максимум 57600, а на 7 - 36458 - что примерно на 6% отличается от получившихся 38400...
    тут надо смотреть даташит на конкретный контроллер, их с тех пор много разных понаделали, в том числе с меньшим делением тактовой частоты.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  4. Этот пользователь поблагодарил Serg6845 за это полезное сообщение:

    Максагор (06.12.2019)

  5. #3
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    211
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    Безотносительно к АТМ (у меня его нет) - вспоминается что в древнем внешнем модеме GVC со стандартным 8031 в качестве головы - стоял кварц на 22.118 МГц, и он умел 115200. и тогда я даже читал даташит на 8031 и пришел к выводу что это максимум что можно с него выжать. соответственно на 11059 как раз получится максимум 57600, а на 7 - 36458 - что примерно на 6% отличается от получившихся 38400...
    тут надо смотреть даташит на конкретный контроллер, их с тех пор много разных понаделали, в том числе с меньшим делением тактовой частоты.
    Если бы чип именно не тянул, то понятно. Но если посмотреть на тест, то тут другие непонятки. Почему, например, при работе на 7МГц i8031 тянет 9600, тянет 38400 (я на этой частоте по нульмодему успешно байтики передавал), но не хочет включать промежуточные 19200?

    А при 11.0592МГц не хочет работать на 38400, но нормально тянет 57600? Поэтому пока не могу однозначно считать, что дело в нехватке частоты...

    В общем, ждем комментариев Камиля...
    Последний раз редактировалось Максагор; 06.12.2019 в 16:37.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  6. #4
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так то даже при 38400 бод получается 4267 байт/с по схеме 8N1. Может дело не в скорости интерфейса физической линии, а в скорости CPU который не успевает обработать такой поток данных? В IBM для этого стали добавлять FIFO практически на 16 байт, чтобы не получать слишком высокую частоту прерываний в секунду и успевать делать полезную работу. Всё дело в том, как именно происходит тест? Ну и никто не мешает посмотреть логиком или осликом что там на физической линии твориться то.

  7. #5
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    211
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Так то даже при 38400 бод получается 4267 байт/с по схеме 8N1
    У Камиля в контроллере "сидит" схема 8N2, и ее перенастройка программно со стороны пользователя не предусмотрена.

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Может дело не в скорости интерфейса физической линии, а в скорости CPU который не успевает обработать такой поток данных?
    Опять возникает вопрос - почему процессор успевает обработать данные на скорости 38400, но не успевает на скорости 19200? И в любом случае, если бы режим был выставлен, но процессор не тянул, то просто был бы на входе мусор или потеря данных. А тут четко при выборе режима 19200 контроллер настраивается и работает на 38400. Где-то косяк в коде прошивки...

    Поэтому прошу еще раз тут, пользователей АТМ2/3, раздобыть нульмодемный кабель и попробовать сконнектиться с PC и попробовать покидать байтики через терминалки.
    Последний раз редактировалось Максагор; 06.12.2019 в 22:30.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  8. #6
    Member
    Регистрация
    04.10.2011
    Адрес
    Москва
    Сообщений
    127
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сейчас искал протокол-анализатором ту скорость на которой идут посылки для 38400 (программа zxt38400)
    На 28800 получилось засинхронизироваться

  9. Этот пользователь поблагодарил Alex.Ismagilov за это полезное сообщение:

    Максагор (06.12.2019)

  10. #7
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    211
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    1200 бод - 1200 бод (сначала не завелась - работала со скоростью, установленной предыдущей терминалкой, но потом в мануале Камиля оказалась неверная константа - надо не 98dec, а 96dec)
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 38400 бод !!!!
    38400 бод - 38400 бод
    57600 бод - 38400 бод !!!!
    115200 бод - 38400 бод !!!!

    У Алексея Исмагилова получились несколько иные результаты:

    1200 бод - 1200 бод
    2400 бод - 2400 бод
    4800 бод - 4800 бод
    9600 бод - 9600 бод
    19200 бод - 19200 бод
    38400 бод - ВООБЩЕ НИ НА КАКОЙ СКОРОСТИ НЕ ЗАРАБОТАЛО! - точнее, заработало на НЕСТАНДАРТНЫХ 28800 бод
    57600 бод - 57600 бод
    115200 бод - 57600 бод!!!
    А вот фрагмент из исходников под i8031 от Камиля:

    Код:
    ; таблица настройки скорости RS232
    tab_spd:
     if ft_07
    ; Под кварц 7 Мгц
    	db	1-1+80h ;1	115200 SMOD=1
    	db	1-1+80h ;2	57600  SMOD=1
    	db	1-1+80h	;3	38400  SMOD=1
    	db	1-1+80h ;4(6)	19200  SMOD=1
    	db	4-1+80h	;5(12)	9600   SMOD=1
    	db	4-1	;6(24)	4800   SMOD=0
    	db	15-1+80h;7(48)	2400   SMOD=1
    	db	15-1	;8(98)	1200
     endif
     if ft_11
    ; Под кварц 11.0592
    	db	1-1+80h ;1	115200
    	db	1-1+80h ;2	57600  SMOD=1
    	db	1-1	;3	38400  SMOD=0
    	db	3-1+80h ;4(6)	19200  SMOD=1
    	db	3-1	;5(12)	9600   SMOD=0
    	db	6-1	;6(24)	4800
    	db	12-1	;7(48)	2400
    	db	24-1	;8(98)	1200
     endif
    А вот полный исходник прошивки:
    atm_at32.zip

    Кто знает принцип работы архитектуры данных контролеров, вникаем, советуем...
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  11. #8
    Member
    Регистрация
    04.10.2011
    Адрес
    Москва
    Сообщений
    127
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    53
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Архитектура и команды контроллера:
    http://www.gaw.ru/html.cgi/txt/doc/m...cs51/index.htm

    Про настройку UART:
    http://www.gaw.ru/html.cgi/txt/doc/m.../arh/usart.htm

    Тут расписан регистр SCON:
    http://portal.tpu.ru:7777/SHARED/Oth...Tab2/MCS51.pdf
    Последний раз редактировалось Alex.Ismagilov; 07.12.2019 в 11:09.

  12. Этот пользователь поблагодарил Alex.Ismagilov за это полезное сообщение:

    Максагор (07.12.2019)

  13. #9
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,430
    Спасибо Благодарностей отдано 
    329
    Спасибо Благодарностей получено 
    609
    Поблагодарили
    452 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Основная проблема UART на контроллерах MCS51 в том, что там делитель особый: /6 или /12 (в зависимости от настройки) от кварцевой частоты. Так работает ядро MCS51 и именно поэтому для обеспечения высоких скоростей с малой ошибкой нужен кварц на 11.0592МГц. В принципе, это всё, что нужно знать про UART на платформе MCS51.

    PS Я имел в виду частоту модуля UART. Которая Fperiph. А в самом модуле есть ещё "бодгенератор", который суть обычный счетчик вверх с предзагрузкой.
    Последний раз редактировалось HardWareMan; 07.12.2019 в 20:46.

  14. Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    Максагор (07.12.2019)

  15. #10
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,981
    Спасибо Благодарностей отдано 
    211
    Спасибо Благодарностей получено 
    303
    Поблагодарили
    113 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Код:
    ; таблица настройки скорости RS232
    tab_spd:
     if ft_07
    ; Под кварц 7 Мгц
    	db	1-1+80h ;1	115200 SMOD=1   (реальная скорость 38400)
    	db	1-1+80h ;2	57600  SMOD=1   (реальная скорость 38400)
    	db	1-1+80h	;3	38400  SMOD=1
    	db	1-1+80h ;4(6)	19200  SMOD=1   (реальная скорость 38400)
    	db	4-1+80h	;5(12)	9600   SMOD=1
    	db	4-1	;6(24)	4800   SMOD=0
    	db	15-1+80h;7(48)	2400   SMOD=1
    	db	15-1	;8(98)	1200   SMOD=0
     endif
     if ft_11
    ; Под кварц 11.0592
    	db	1-1+80h ;1	115200 SMOD=1   (реальная скорость 57600)
    	db	1-1+80h ;2	57600  SMOD=1
    	db	1-1	;3	38400  SMOD=0   (реальная скорость 28800)
    	db	3-1+80h ;4(6)	19200  SMOD=1
    	db	3-1	;5(12)	9600   SMOD=0
    	db	6-1	;6(24)	4800   SMOD=0
    	db	12-1	;7(48)	2400   SMOD=0
    	db	24-1	;8(98)	1200   SMOD=0
     endif
    Подозреваю, что таблица должна выглядеть так:

    Код:
    ; таблица настройки скорости RS232
    tab_spd:
     if ft_07
    ; Под кварц 7 Мгц
    	db	1-1+80h ;1	115200 SMOD=1    (реальная скорость 38400)
    	db	1-1+80h ;2	57600  SMOD=1    (реальная скорость 38400)
    	db	1-1+80h	;3	38400  SMOD=1
    	db	1-1	;4(6)	19200  SMOD=0
    	db	4-1+80h	;5(12)	9600   SMOD=1
    	db	4-1	;6(24)	4800   SMOD=0
    	db	15-1+80h;7(48)	2400   SMOD=1
    	db	15-1	;8(98)	1200   SMOD=0
     endif
     if ft_11
    ; Под кварц 11.0592
    	db	1-1+80h ;1	115200 SMOD=1    (реальная скорость 57600)
    	db	1-1+80h ;2	57600  SMOD=1
    	db	2-1+80h	;3	38400  SMOD=1
    	db	3-1+80h ;4(6)	19200  SMOD=1
    	db	3-1	;5(12)	9600   SMOD=0
    	db	6-1	;6(24)	4800   SMOD=0
    	db	12-1	;7(48)	2400   SMOD=0
    	db	24-1	;8(98)	1200   SMOD=0
     endif
    При этом, судя по всему, максимальная скорость при 7МГц таки действительно 38400 бод (все, что выше, судя по таблице, просто выдают ту же скорость), а при 11.0592МГц - максимально 57600 бод. Если, конечно, нет таких конструкций как "0-1" или "0-1+80h". Ждем комментариев от знатоков данным контроллеров...

    Но пока не знаю как проверить. Камиль молчит (Ау!!!), а настроенного компилятора (и навыков с ним обращения) под контроллеры данного типа у меня никогда не водилось...
    Последний раз редактировалось Максагор; 07.12.2019 в 19:00.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. ATM Turbo V4.50 не работает
    от specorg в разделе ATM
    Ответов: 9
    Последнее: 21.02.2021, 11:41
  2. Ответов: 9
    Последнее: 15.06.2020, 02:02
  3. ATM Turbo 7.10 продам
    от Yaroslav в разделе Барахолка (архив)
    Ответов: 9
    Последнее: 21.11.2010, 13:54
  4. Куплю ATM Turbo 2
    от FISCH в разделе Барахолка (архив)
    Ответов: 16
    Последнее: 31.03.2010, 23:00

Ваши права

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