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

 
 
> Не Могу Настроить Uart->485 На Pic16F689
Сергей Владимиро...
сообщение May 24 2013, 17:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 24-05-13
Пользователь №: 76 966



Здравствуйте! Такая проблема: мне нужно передавать данные на ПК. Использую драйвер 485 интерфейса ADM485ARZ и преобразователь интерфейсов Меркурий-221.

Приём на ПК контролирую программой RS232 PRO v3.30. Обмен происходит на скорости 2400. Асинхронная передача, 8 бит данных, без чётности, один стоповый бит.

Вот схема...

Прикрепленное изображение


Вот код...

Код
/*-------------------------------------------------------------------------*/
//Head...
/*-------------------------------------------------------------------------*/
#include <htc.h>
#include <pic16f689.h>

#define _XTAL_FREQ 20000000

__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & IESO_ON & FCMEN_ON);

/*-------------------------------------------------------------------------*/

void main()
{
//Init hard...
/*-------------------------------------------------------------------------*/
    //UART...

    TXSTA = 0b00000000;
    RCSTA = 0b10000000;
    SPBRG = 129;
    TXEN = 1;
/*-------------------------------------------------------------------------*/
    //INT...

    INTCONbits.GIE = 0;

/*-------------------------------------------------------------------------*/
//Work cicle...
        START:
/*-------------------------------------------------------------------------*/

        if (TRMT == 1)
        {

        TXREG = 0xAB; //Test TX!

        };

        __delay_ms(500);

/*-------------------------------------------------------------------------*/
//End work cicle.
        goto START;
};


В результате отправляю "AB", а ПК принимает "F0F0F0F0"...

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

Подскажите, в чём дело. Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan1
сообщение May 24 2013, 21:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Сергей Владимирович @ May 24 2013, 20:10) *
Вот схема...


Это точно полная схема? или та часть, которую Вы посчитали нужной показать?
1. Нет конденсаторов от кварца на землю.
2. Нет конденсатора по питанию на RS485 и на PIC18

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

Про программу сходу вопрос: почему Вы не устанавливаете остальные относящиеся к USART регистр BAUDCTL в нужное состояние?

ну ладно, пусть оно по ресету в нуле, тогда получается что BRGH == 0; BRG16 == 0; (иначе бы частота была еще больше, но не ниже как у Вас в реале)
BR = 20e6/(64*130) = 2404 . похоже на то что нужно. Но осциллограф думает иначе. Значит несоответствие реальной частоты задающего генератора ожидаемой. Либо кварц и его обвязка виноваты, либо конфигурация неправильная.

Очень может быть что просто кварц у вас гармониковый и заводится на своих 6.6 МГц. Или даже на 4 МГц. А не на 20.
1. обязательно поставьте конденсаторы от кварца в землю согласно даташиту.
2. Посмотрите осциллографом на 3-й ногеПИКа частоту, может и увидите на какой он заводится (обычно генерацию хорошо видно)
3. Попробуйте другой кварц, скажем на 4 МГц и сравните.
4. просто подадите извне частоту на 2-ю ногу заместо выпаянного кварца.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Сергей Владимирович   Не Могу Настроить Uart->485 На Pic16F689   May 24 2013, 17:10
- - igorle   Я бы начал с того, что посмотрел осциллографом дес...   May 24 2013, 19:23
- - Сергей Владимирович   На 10-й ноге TX вижу такой кадр: Если первый би...   May 24 2013, 20:21
|- - aaarrr   Цитата(Сергей Владимирович @ May 25 2013, 00...   May 24 2013, 20:27
- - Сергей Владимирович   Это возможно, но как быть с этим... #define _XTAL...   May 24 2013, 20:53
- - aaarrr   Просто проверьте, что у Вас в слове конфигурации д...   May 24 2013, 21:14
- - Сергей Владимирович   Нет, это полная схема, я откинул всё что можно... ...   May 25 2013, 04:51
|- - Ruslan1   Цитата(Сергей Владимирович @ May 25 2013, 07...   May 25 2013, 07:46
- - Сергей Владимирович   1. Конденсаторы вернул; 2. Осликом генерацию не ви...   May 25 2013, 14:27
|- - Ruslan1   Цитата(Сергей Владимирович @ May 25 2013, 17...   May 25 2013, 14:35
- - Сергей Владимирович   Вот тут-то как раз всё в порядке. Контрольная сумм...   May 25 2013, 15:24
|- - Tanya   Цитата(Сергей Владимирович @ May 25 2013, 19...   May 26 2013, 14:39
- - rx3apf   Может быть, используемый программатор не записывае...   May 25 2013, 17:23
- - Сергей Владимирович   Вряд ли! Я использую PICKit2, он показывает ко...   May 26 2013, 12:10
|- - igorle   Цитата(Сергей Владимирович @ May 26 2013, 15...   May 26 2013, 12:31
|- - rx3apf   Цитата(Сергей Владимирович @ May 26 2013, 16...   May 27 2013, 08:20
- - Сергей Владимирович   Да я с Вами согласен на 1000000%!!! Я ...   May 26 2013, 13:41
- - Lagman   Я когда работал с PIC18 в MPLAB, то не указывал в ...   May 26 2013, 18:14
- - Сергей Владимирович   Настроил МК на внутренний генератор, 4 МГц. Всё ра...   May 27 2013, 15:30
|- - Tanya   Цитата(Сергей Владимирович @ May 27 2013, 19...   May 27 2013, 16:18
- - Сергей Владимирович   Да там и рассказывать нечего: МК + кристалл 20МГц,...   May 27 2013, 17:07
- - rx3apf   Попробуйте отключить бит FCMEN в конфигурации - мо...   May 27 2013, 18:30
- - igorle   Кстати, да. Я тут полгода назад всех изводил вопро...   May 27 2013, 18:48
|- - toweroff   Цитата(igorle @ May 27 2013, 22:48) И фот...   May 27 2013, 19:42
- - Сергей Владимирович   Я таймер ещё не использовал, собственно регистр не...   May 28 2013, 06:19


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

 


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


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