Easyelectronics.ru

Электроника для всех
Текущее время: 25 авг 2019, 18:44

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: 8051 UART
СообщениеДобавлено: 13 апр 2019, 00:12 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
Добрый день.
Есть м.к. семейства 8051, разбираю в нем прошивку (хочу понять как он обрабатывает данные получаемые с uart)

TCON, #0x50
TMOD, #0x21
T2CON, #0xD
S0CON, #0xD0
TH0, #0xEE
TL0, #0x39
TH1, #0xFC
TL1, #0xFF

я понял исходя из мануала на контроллер, что:

1. S0CON, #0xD0 - это 11010000 - то есть 9 битный уарт, с изменяемым бод рейтом.
и дальше бодрейт зависит от таймера и клока системы.

проблема, не получается определить бодрейт -
1. система как я понимаю в 12 клок моде
2. кварц 21мгц

кто может проконсультировать ?



Заранее спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 13 апр 2019, 14:05 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4078
Откуда: г. Липецк
Cкорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON.
Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0. По сбросу SMOD = 0.
Содержание SMOD?
А остальное есть в даташите, F = 2^SMOD * fOVTL1 / 32


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 13 апр 2019, 15:06 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
PCON - в коде нет установки PCON, тогда наверно SMOD = 0 - дефолт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 13 апр 2019, 16:20 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4078
Откуда: г. Липецк
А дальше? fOVTL1 это частота перезагрузки Таймера1. Он в режиме 2, "8-битный автоперезагружаемый таймер/счетчик". "THx" хранит значение, которое должно быть перезагружено в "TLx" каждый раз по переполнению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 16:00 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
anakost писал(а):
А дальше? fOVTL1 это частота перезагрузки Таймера1. Он в режиме 2, "8-битный автоперезагружаемый таймер/счетчик". "THx" хранит значение, которое должно быть перезагружено в "TLx" каждый раз по переполнению.



Добрый день.
так. Режим 3. в нем LSB первый... --старт бит -- 8 бит данных -- 9й бит как я понимаю он просто должен быть-- стоп бит = итого 11. (если не будет 9 бита он просто не будет это обрабатывать ?...)
mov TMOD, #0x21 - 0010 0001 - понятно что Вы имели ввиду по 2му режиму....



Возвращаясь к коду ---
Как я понимаю в блоке инициализации установка.
code:14D2 mov TH0, #0xEE
code:14D5 mov TL0, #0x39
code:14D8 mov TH1, #0xFC
code:14DB mov TL1, #0xFF
code:14E1 mov TH2, #0
code:14E4 mov TL2, #0

Далее по коду меняется только TH0 и TH2, TH1й остается неизменен.
по адресу 23h - есть код, как я понимаю это обработка прерывания по uart...
как я понимаю... чип в 12 clock mode - > так как нет указаний на установку CKCON.0


в даташите чипа - вот такая формула - странная ...
(2^SMOD)/32"т.к. 12 клокмод" * (oscFreq/12*(256-TH1)) = >
(1/32) * (21000000/12*(256-252)) = 13671,88


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 20:23 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4078
Откуда: г. Липецк
>>Далее по коду меняется только TH0 и TH2, TH1й остается неизменен.
TH1 перегружается аппаратно по заему значением TL1, и затем декрементируется аппаратно. В коде ничего для этого не нужно.
У вас значение TL1 = 0xFF, именно его и надо брать в качестве TH1.
Каким отладчиком пользуетесь (если Кейл могу подсказать)?


Последний раз редактировалось anakost 15 апр 2019, 20:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 20:45 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
anakost писал(а):
>>Далее по коду меняется только TH0 и TH2, TH1й остается неизменен.
TH1 перегружается аппаратно по заему значением TL1, и затем декрементируется аппаратно. В коде ничего для этого не нужно. Каким отладчиком пользуетесь (если Кейл могу подсказать)?


отладчика нет, есть hex который вытащил программатором, потом через ida конвертанул в инструкции и текстовый файл с asm
первый дамп был битый... текущий код бьется с разводкой платы.. и логикой работы, есть твердое ощущение что он норм. у меня есть edsim51di - эмулятор 8051 на яве. но он крайне ограничен, можно только ходить по коду и как бы смотреть состояния регистров, что бы не записывать в файлике.

в кейл 51 можно воткнуть hex ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 20:48 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4078
Откуда: г. Липецк
spaceman_ru писал(а):
...в кейл 51 можно воткнуть hex ?

Никогда не пробовал, наверное нет. HEX можно легко "воткнуть" в Proteus.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 20:53 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
anakost писал(а):
spaceman_ru писал(а):
...в кейл 51 можно воткнуть hex ?

Никогда не пробовал, наверное нет. HEX можно легко "воткнуть" в Proteus.



хм. воткнул....в кейл., честно говоря пока проще не стало... но есть чем позаниматься, у него на плате - 24cd2wp epprom где он хранит настройки (ид - аля mobdus id)
ок, спасибо за идею. это хотя бы что-то.
можно Вас подключить как консультанта ?


да, это однозначно лучше, если еще ему в sbuf можно будет чтонить засунуть вобще огонь.
keil - сам считает бодрейт... он нарыл что CKCON = 0x01 - я где-то просмотрел
и сразу сам посчитал


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 21:23 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 4078
Откуда: г. Липецк
spaceman_ru писал(а):
...можно Вас подключить как консультанта ?...

Можно, только проконсультировать смогу только вечером, после работы.
P.S. Надо было сразу сказать, что речь о контроллерах Cygnal. Там свои заморочки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 21:50 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
anakost писал(а):
spaceman_ru писал(а):
...можно Вас подключить как консультанта ?...

Можно, только проконсультировать смогу только вечером, после работы.
P.S. Надо было сразу сказать, что речь о контроллерах Cygnal. Там свои заморочки.


для меня - Cygnal - белый шум =) но... в этом кейле я вижу... (он просто берет хекс) и не делает обработку как делает ее ида... и я вижу чуть другой код... опять...
он по прерыванию на RI начинает работать с AF и AE ...
как я понимаю это еще один геморой... от 3го режима SADDR


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 22:20 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 3355
Откуда: Винница
anakost писал(а):
P.S. Надо было сразу сказать, что речь о контроллерах Cygnal. Там свои заморочки.

Т.е. Silabs (S0CON вместо SCON как бы намекнул, но такое обозначение и у других встречается).
(Автору темы). А какой конкретно контроллер - тайна велика есть? У некоторых из них на UART вообще отдельный baud-rate generator (C8051F55x, например)...
Вообще-то у них для инициализации периферии есть такой себе Configuration Wizard 2. Не без приколов, но с UART вроде бы не ошибался.

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 8051 UART
СообщениеДобавлено: 15 апр 2019, 23:11 
Только пришел

Зарегистрирован: 12 апр 2019, 23:35
Сообщения: 7
такой вопрос.
я смог в протеусе собрать аналог... присобачил епромку... залил туда хекс и оно даже как то работает.
в протеусе беру второй такой контроллер линкую рх первого на тх второго подтягиваю их.

пишу код в котором
1. иничу так же уарт как и на 2м... то есть 3й режим. через таймер.
в цикле вайл
посылаю туда ансигнед чар, записываю его в сбуфер его и смотрю что он отправился через TI
вопрос, как выставить 9й бит при отправке?


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

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


Кто сейчас на конференции

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


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

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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB