Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 07.08.2012, 14:12  
kib12
Частый гость
 
Регистрация: 01.03.2008
Сообщений: 31
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
kib12 на пути к лучшему
По умолчанию Proteus + UART 18F4550

Железо с 18F4550, кварц 20 МГц, используется хардварный UART.
Посылаю пакет на 9600, принимаю на UART PIKKit2 либо на COM-порт, все корректно.

НО! Чтобы все это работало, нужно в программе ставить в свойствах 24МГЦ

В CCS C:

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5, CPUDIV1,VREGEN,NOMCLR

#use delay(clock=24000000)

#use rs232(uart1, baud=9600,stream=PIC)

Если ставить #use delay(clock=20000000) на 20МГц, в железе UART посылает чушь.

В протеусе эта схема работает, но временные задержки отличаются о железной версии в 2 раза или около.

Проверено с 4-мя резонаторами.

Как можно синхронизировать схему в протеусе, программу и железо?
Реклама:
kib12 вне форума  
Сказали "Спасибо" kib12
warel (29.06.2019)
Непрочитано 07.08.2012, 14:18  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

kib12, Используете PLL ...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (29.06.2019)
Непрочитано 07.08.2012, 17:47  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

А вручную инитиализацию написать не судьба?
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 07.08.2012, 23:30  
kib12
Частый гость
 
Регистрация: 01.03.2008
Сообщений: 31
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
kib12 на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

Сообщение от Easyrider83 Посмотреть сообщение
А вручную инитиализацию написать не судьба?
А посоветовать что-нибудь конкретное не судьба?
Я не студент, не новичок, и это не курсовая работа. И стараюсь не комментировать посты, если хоть на процент сомневаюсь в полезности.

Да, используется PLL5, фьюзы взяты из примера CCS C. Но не смог найти популярного объяснения, как выбрать в схеме в протеусе параметр частоты тактового генератора, как к нему привязать фьюзы в CCSC, и как все это привязать к железу.

Решил, наконец, попробовать с USB.
Например, делаем в CCS тактовую 20 000 000, а что указывать в схеме в протеусе, тоже 20МГц? Не совсем что-то получается ни с UART, ни с delay.
А в железе тоже нестыковка.
Опытным путем определил, что если при этих фьюзах в компиляторе поставить 4Мгц, то в протеусе нужно ставить 10Мгц, тогда все как бы работает, но в железе резонатор нужен тоже на 4 Мгц. При переходе на резонатор 20 Мгц (требуется для USB) все конкретно запуталось. Простые арифметические расчеты не помогают.
Где-нибудь есть методика на любом человеческом языке?
kib12 вне форума  
Сказали "Спасибо" kib12
warel (29.06.2019)
Непрочитано 07.08.2012, 23:56  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

Сообщение от kib12 Посмотреть сообщение
А посоветовать что-нибудь конкретное не судьба?
Легко.
Код:
void UART_TX (char dat);
void UART_TX_TEXT ( char *dat);

void main() 
{
 TXSTA=(1‹‹CSRC)|(1‹‹TXEN);
 RCSTA=(1‹‹SPEN)|(1‹‹CREN);
 SPBRG=31;
 UART_TX_TEXT("HELLO WORLD!");
}

void UART_TX (char dat)
{
 while(!PIR1.TXIF);
 TXREG=dat;
 PIR1.TXIF=0;
}

void UART_TX_TEXT ( char *dat)
{
 while (*dat) UART_TX (*dat++);
}
10 минут времени потратил
Вложения:
Тип файла: rar 4550_UART_EXAMPLE.rar (47.0 Кб, 61 просмотров)

Последний раз редактировалось Easyrider83; 08.08.2012 в 00:21.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 08.08.2012, 09:26  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

Сообщение от kib12 Посмотреть сообщение
Где-нибудь есть методика на любом человеческом языке?
Протеус не причем , читайте даташит на контроллер .
И вычисляйте какой будет внутренняя частота.
http://www.ccsinfo.com/forum/viewtop...hlight=18f4550

Как пример настройки....
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 08.08.2012 в 09:35.
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (29.06.2019)
Непрочитано 08.08.2012, 09:38  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

Адски не люблю всякие подобные хрени:
Код:
#use RS232(BAUD=9600, XMIT=PIN_C1, RCV=PIN_C2,FORCE_SW, STREAM=COM_A) 
 #use RS232(BAUD=9600, XMIT=PIN_C4, RCV=PIN_C5,FORCE_SW, STREAM=COM_B) 
 #use RS232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7,FORCE_SW, STREAM=COM_C)
Особенно эту:
Код:
fprintf(COM_C,"\r\nCOM_C Running\r\n");
Чего он там накомпилирует... даже представить страшно. Мы лучше по-старинке. Зато красиво и прозрачно.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
Непрочитано 08.08.2012, 09:43  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

Easyrider83, Паш да как настраивать и работать с UART это дело ТС .
Там проблема в неправильном расчете тактовой .
Он упорно считает что частота равна кварцу и при этом работает с PLL ...
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
warel (29.06.2019)
Непрочитано 08.08.2012, 09:46  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Proteus + UART 18F4550

А, у меня такая же ошибка. Я там на 20МГц рассчитал. Исправлю когда время будет. Хотя я тупо взял табличное значение из даташита. Как бы даже не парился особо ))
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
warel (29.06.2019)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
USART на PIC 18F4550 DUSTTSUD Микроконтроллеры, АЦП, память и т.д 16 02.08.2010 13:47
pic 18f4550 как посчитать количество импульсов? Student_FzF Микроконтроллеры, АЦП, память и т.д 10 06.04.2010 17:09
UART и PROTEUS area_51a Proteus 1 30.09.2007 12:38
uart - proteus chipic128 Proteus 3 10.03.2007 13:18
UART slawa Микроконтроллеры, АЦП, память и т.д 4 19.01.2006 12:44


Часовой пояс GMT +4, время: 05:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot