реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Uart для Silabs C8051F320, проблемы с настройкой и запуском
Антон Андреевич
сообщение May 21 2008, 10:39
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 18-02-08
Пользователь №: 35 149



Вроде все включил, вроде даже работает, бит окончания передачи выставляется через равные промежутки времени - только на ножке ТХ глухо.
Причем как на кейловском симуляторе, так и на контроллере.

Прилепляю асм-файл программы.
Если влом смотреть де я напарил, можете прислать рабочий свой,только асм, пожалуйста.

Сообщение отредактировал Антон Андреевич - May 21 2008, 10:43
Прикрепленные файлы
Прикрепленный файл  uartv2.txt ( 21.98 килобайт ) Кол-во скачиваний: 236
 
Go to the top of the page
 
+Quote Post
AndreyS
сообщение May 22 2008, 14:19
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(Антон Андреевич @ May 21 2008, 14:39) *
Вроде все включил, вроде даже работает, бит окончания передачи выставляется через равные промежутки времени - только на ножке ТХ глухо.
Причем как на кейловском симуляторе, так и на контроллере.

Прилепляю асм-файл программы.
Если влом смотреть де я напарил, можете прислать рабочий свой,только асм, пожалуйста.



Исходник не смотрел. Но надеюсь вы правильно смотрите TX на ноге P0.4. И при этом в неактивном режиме эта нога должна быть в логической 1 (высокий уровень)!!!


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
Антон Андреевич
сообщение May 22 2008, 17:17
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 18-02-08
Пользователь №: 35 149



Да, смотрю на ножке Р0.4.
Насчет неактивного уровня не понял.

Пока не запустил уарт на ножке 3.3В. Правда и после запуска, и в "процессе передачи", и после установки флага отправки байта уартом уровень не меняется.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение May 23 2008, 05:39
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(Антон Андреевич @ May 22 2008, 21:17) *
Да, смотрю на ножке Р0.4.
Насчет неактивного уровня не понял.

Пока не запустил уарт на ножке 3.3В. Правда и после запуска, и в "процессе передачи", и после установки флага отправки байта уартом уровень не меняется.


Именно это я и имел ввиду. Только я говорил об неактивном состоянии. Ну не важно (глаывное что схема не подсаживает порт).

Интересная у вас строчка в исходниках
Код
MOV P0SKIP, #00111100b;(25MHz)настройка приоритетного декодера матрицы - пропуск ножек внешнего генератора,VREF


И за чем это вы отключили ножки порта P0.4 и P0.5 из работы??? wink.gif Скип делается только для спецфункций порта (таких как Vref, Clock и CNVSTR) или для выделения ноги при работе с АЦП. Для всего другого делать пропуск ноги в матрице ненужно!!!

Напишите так
Код
MOV P0SKIP, #00001100b;(25MHz)настройка приоритетного декодера матрицы - пропуск ножек внешнего генератора,VREF


Ну и последнее. smile.gif Раз уж вы в исходник вставили определение регистров, так и используйте эти определения. А то периодические обращения к адресам SFR тяжело воспринимаются.

Сообщение отредактировал AndreyS - May 23 2008, 05:41


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
evg123
сообщение Jun 30 2008, 08:02
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282



Цитата(AndreyS @ May 23 2008, 08:39) *
Напишите так ...
Код
MOV P0SKIP, #00001100b;(25MHz)настройка приоритетного декодера матрицы - пропуск ножек внешнего генератора,VREF


А почему вы не пользуетесь стандартным конфигуратором? С тех пор, как мы начали им пользоваться работа с силабсами превратилась в сказку. Скип в матрице превращается в лёгкое движение руки. Опять же всё наглядно.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Jun 30 2008, 12:35
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(evg123 @ Jun 30 2008, 12:02) *
А почему вы не пользуетесь стандартным конфигуратором? С тех пор, как мы начали им пользоваться работа с силабсами превратилась в сказку. Скип в матрице превращается в лёгкое движение руки. Опять же всё наглядно.



Добрый день.

ЭЭЭЭЭ. Вы это мне адресовали письмо??? Инициатор темы не я и исходник не мой (это была цитат кода). smile.gif
Читайте внимательно.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
repairDV
сообщение Jun 30 2008, 14:00
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(evg123 @ Jun 30 2008, 19:02) *
А почему вы не пользуетесь стандартным конфигуратором?

Что за конфигуратор?
Немного не в тему. Почему-то у этой серии UART конфликтует с SPI. По-раздельному работают стабильно, когда запускаешь одновременно- UART выдаёт серию из байт 20-ти и зависает. При этом SPI продолжает работать нормально. Никто не сталкивался?


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Jul 1 2008, 13:19
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(repairDV @ Jun 30 2008, 18:00) *
Что за конфигуратор?
Немного не в тему. Почему-то у этой серии UART конфликтует с SPI. По-раздельному работают стабильно, когда запускаешь одновременно- UART выдаёт серию из байт 20-ти и зависает. При этом SPI продолжает работать нормально. Никто не сталкивался?



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


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
repairDV
сообщение Jul 3 2008, 11:25
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 578
Регистрация: 7-11-06
Из: Хабаровск
Пользователь №: 22 044



Цитата(AndreyS @ Jul 2 2008, 00:19) *
Вот. Но относиться к нему нужно с осторожностью. В предыдущей версии были ошибки. Как говорится доверяй, но проверяй.

Неплохая вроде штука. Но - если говорить о моём вопросе - конфликт UART и SPI, то у меня эти модули отконфигурированы так же, как у них. Ну что за жизнь. Вроде неплохой проц. Всё-таки нет совершенных микроконтроллеров.


--------------------
Маленький нанайца. А-а. А-а. Оморочком плыл. Маленький проточка. Осетра ловил.
Go to the top of the page
 
+Quote Post
kosyak©
сообщение Jul 8 2008, 04:47
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 1-10-07
Из: НЧ
Пользователь №: 30 966



Цитата(repairDV @ Jul 3 2008, 15:25) *
Неплохая вроде штука. Но - если говорить о моём вопросе - конфликт UART и SPI, то у меня эти модули отконфигурированы так же, как у них. Ну что за жизнь. Вроде неплохой проц. Всё-таки нет совершенных микроконтроллеров.

Коллега делал девайс на 320, были задествованы SPI, UART проблем не возникало....
Go to the top of the page
 
+Quote Post
SashaGubov
сообщение Aug 19 2009, 07:14
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



может не в тему, но та же проблема с C8051F350, в конфигураторе задал все, но на ножках глухо в Keile? Помогите!

CODE
#include "C8051F350.h"

void Timer_Init(){
TMOD = 0x20;
TH1 = 0x96;
}
void UART_Init(){
SCON0 = 0x10;
}
void Port_IO_Init(){
// P0.0 - Unassigned, Open-Drain, Digital // P0.1 - Unassigned, Open-Drain, Digital // P0.2 - Unassigned, Open-Drain, Digital
// P0.3 - Unassigned, Open-Drain, Digital // P0.4 - TX0 (UART0), Open-Drain, Digital // P0.5 - RX0 (UART0), Open-Drain, Digital
// P0.6 - Unassigned, Open-Drain, Digital // P0.7 - Unassigned, Open-Drain, Digital
// P1.0 - Unassigned, Open-Drain, Digital // P1.1 - Unassigned, Open-Drain, Digital // P1.2 - Unassigned, Open-Drain, Digital
// P1.3 - Unassigned, Open-Drain, Digital // P1.4 - Unassigned, Open-Drain, Digital // P1.5 - Unassigned, Open-Drain, Digital
// P1.6 - Unassigned, Open-Drain, Digital // P1.7 - Unassigned, Open-Drain, Digital
XBR0 = 0x01;
XBR1 = 0x40;
}
void Oscillator_Init(){
OSCICN = 0x83;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void){
Timer_Init();
UART_Init();
Port_IO_Init();
Oscillator_Init();
}
void Main(){
char ch='A';
Init_Device();

while (1){
// P0++;
SBUF0=ch++;
}
}


Сообщение отредактировал SashaGubov - Aug 19 2009, 07:15
Go to the top of the page
 
+Quote Post
barabek
сообщение Aug 21 2009, 02:15
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(SashaGubov @ Aug 19 2009, 18:14) *
может не в тему, но та же проблема с C8051F350, в конфигураторе задал все, но на ножках глухо в Keile? Помогите!

CODE
#include "C8051F350.h"


// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void){
Timer_Init();
UART_Init();
Port_IO_Init();
Oscillator_Init();

}

А что-то у Вас в коде нет отключения watchdog? Просто не привели или его действительно нет? Дело в том, что в Silabs МК он включается автоматически после сброса. Первым делом, если что-то не идет смотрите регистр сброса, от чего был последний сброс.
И второе.
Код
while (1){
            // P0++;
          SBUF0=ch++;    
  }

Вы дождитесь, когда байт передастся, а потом только следущий передавайте. Хотя бы полингом TI флага.
Go to the top of the page
 
+Quote Post
SashaGubov
сообщение Aug 22 2009, 09:55
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 13-05-06
Из: Киев
Пользователь №: 17 060



ага, спасибо, в этом и дело smile.gif еще б его прошить в реале..

Сообщение отредактировал SashaGubov - Aug 22 2009, 09:55
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 17:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016