Я нагуглил кальк примитивный, для UARTа MCS51. Он довольно точно отражает всю суть. Поиграйтесь. Галка "Удвоенная скорость" это наверное и есть то самое +80h, я уже лет 8 не прикасался к MCS51.
Я нагуглил кальк примитивный, для UARTа MCS51. Он довольно точно отражает всю суть. Поиграйтесь. Галка "Удвоенная скорость" это наверное и есть то самое +80h, я уже лет 8 не прикасался к MCS51.
Максагор(07.12.2019)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Давно я этим занимался, подзабыл уже.
Пришлось вспоминать и заново расчитать константы.
Действительно есть несколько ошибок и неточностей.
Правильно будет так:
- - - Добавлено - - -Код:;=================================================== org 7B8h ; таблица настройки скорости RS232 ; N = (Fosc/192)/Baud SMOD=1 ; N = (Fosc/384)/Baud SMOD=0 tab_spd: if ft_07 ; Под кварц 7 Мгц (с ошибкой назначения скорости) ; N db 1-1+80h ;1 36458(115200) SMOD=1 db 1-1+80h ;2 36458(57600) SMOD=1 db 1-1+80h ;3 36458(38400) SMOD=1 db 1-1 ;4(6) 18229(19200) SMOD=0 db 4-1+80h ;5(12) 9114(9600) SMOD=1 db 4-1 ;6(24) 4557(4800) SMOD=0 db 15-1+80h;7(48) 2430(2400) SMOD=1 db 15-1 ;8(98) 1215(1200) SMOD=0 endif if ft_11 ; Под кварц 11.0592 (точная установка скорости) ; N db 1-1+80h ;1 57600(115200) SMOD=1 db 1-1+80h ;2 57600 SMOD=1 db 1-1 ;3 28800 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 SMOD=0 db 12-1 ;7(48) 2400 SMOD=0 db 24-1 ;8(98) 1200 SMOD=0 endif ;----------------------------------------------
Исправленный исходник и прошивки для двух частот во вложении.
at32m2.zip
Alex.Ismagilov(09.12.2019), Максагор(08.12.2019)
Спасибо, Камиль!
Я как раз смотрел частоты через программку, ссылку на которую дал HardWareMan (огромное ему спасибо!)
Действительно лучше использовать кварц 11.0592 - там хоть значения "попадают в яблочко". Правда, жаль, что не тянет 115200 бод. Но не это главное. Плоховато то, что вместо штатных для многих терминалок 38400 бод, для которых нужно дробное (а значит и невозможное) значение константы 1.5-1+80h или 0.75-1 тут выходит установить только 28800 бод.
Можно было бы попробовать кварц на 22.118МГц, как пишет Serg6845:
И тогда значения будут:
Правда, Камиль, как ты сам пишешь в мануале,Код:; Под кварц 22.118 db 1-1+80h ;1 115200 SMOD=1 db 2-1+80h ;2 57600 SMOD=1 db 3-1+80h ;3 38400 SMOD=1 db 6-1+80h ;4(6) 19200 SMOD=1 db 6-1 ;5(12) 9600 SMOD=0 db 12-1 ;6(24) 4800 SMOD=0 db 24-1 ;7(48) 2400 SMOD=0 db 48-1 ;8(96) 1200 SMOD=0
Возможно. Но тогда возникает два вопроса "а что если?" - один к тебе, Камиль:Увеличивать тактовую частоту выше 14 Мгц не
рекомендуется, так как при этом не гарантируется
надежное чтение кода клавиатуры, выдаваемое на шину
Спектрума от контроллера в его цикле записи (слишком
коротким оказывается сигнал /VWR).
1. Учитывая, что сигнал /VWR (на плате АТМ или сигнал /WR на контроллере i8051 - уточнение для тех, кто незнаком со схемотехникой АТМ) формируется программно по команде (а не устанавливается автоматически как в Z80 при выполнении определенных команд), возможно ли программное кдлинение данного сигнала, примерно по такой схеме:
a) Включение сигнала /VWR
b) Цикл задержки (типа NOP в цикле)
c) Выполнение основных задуманных функций и операций
d) Выключение сигнала /VER
e) Опционально (т.е. если требуется) - возможный еще один цикл задержки для гарантированного прохождения выключения сигнала
Это возможно? Если да, предлагаю попробовать (как я понял, там еще константы часиков пересчитать надо)...
2. Вопрос к хорошо шарящим в схемотехнике, паянию и проч. Возможно ли, раз уж сигнал /VWR при тактовой частоте over 22МГц оказывается коротким, его "искусственно" удлинить на плате, например, подбором конденсаторов?
Последний раз редактировалось Максагор; 08.12.2019 в 04:35.
Максагор, 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], естественно...
Не надо никаких конденсаторов.
В заголовке исходника прямо указано, что можно удлинить /VWR, использовав прямое управление этим сигналом в МК.
Для этого достаточно флаг en_movx сбросить в 0.
А частоту тактирования увеличить до 22.118 во всех отношениях полезно.
Максагор(08.12.2019)
Камиль, Давай тогда попробуем и так. Можешь пересчитать константы прошивки (задержки RS-232, часы, /VWR) под 22МГц? Вообще надо было раньше. Но просто я не разбираюсь вданном контроллере, и просто воспринимал фразу из твоего мануала о нерекомендации увеличивать частоту свыше 14МГц как данность.
P.S. Не копался еще в прошивке на предмет внедрения программного триггера блокирования/разблокирования контроллера для устойчивой работы с магнитофоном?
Последний раз редактировалось Максагор; 08.12.2019 в 09:15.
Максагор, 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], естественно...
Нет ещё.
Прошивка для частоты тактирования 22.1184
at32m22n.zip
Исходник прилагается. Длительность /VWR увеличена.
Максагор(08.12.2019)
Всем:
Если по каким-то соображениям вам ставить 11.0592МГц "неправославно, то можно поставить отдельно (на ножки 18-19 контроллера) кварц на 7.3728МГц (такие в продаже есть и не дефицит). Такие кварцы обеспечат ТОЧНУЮ скорость COM-порта до 37600 бод включительно (но, возможно, в текущей прошивке под 7МГц будут чуток спешить часы - если не так, возможно Камиль прокомментриует). Но, конечно, лучше 11.0592МГц - дает скорость до 57600 бод. Единственный недостаток - вместо 37600 имеем 28800 бод. Поэтому да, идеально - 22.1184МГц, там получим все "честные" скорости вплоть до 115200 бод, однако:
Я посмотрел - в архиве исходника нет и в помине. А сама прошивка представлена ТЕКСТОВЫМ HEX-дампом - может быть она "криво" у Алексея Исмагилова прошилась и поэтому не "взлетела"?
Камиль, можно посмотреть сами исходники и получить "честный" бинарник прошивки? Вдруг все заведется?
Последний раз редактировалось Максагор; 14.12.2019 в 22: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], естественно...
Прошу прощения, исходник забыл включить.
Во вложении исходник вместе с ассемблером.
HEX-файл ничем не хуже бинарника и программаторы его понимают.
at32m22src.zip
Камиль, а вопрос сбоку (если он уместен и корректен): есть исходник прошивки - чем именно Ты его компилируешь ?
Я имею ввиду среду разработки и ее настройки.
Какой именно компилятор?
Может есть готововая сборка ? или инструкция по настройке того же эклипса, как вариант?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)