Страница 1 из 1

Proteus + rs232

Добавлено: Пн май 18, 2009 06:04:09
Arik
Подскажите пожалуйста что у меня там не так? Посылаю команду с контроллера а после макс232 вижу вместо команды кракозябли! Фотку прилагаю. Спасибо!

Добавлено: Пн май 18, 2009 07:21:55
Alex72
Поставь конденсаторы С3,С4, С5,С6 такой емкости, какой должны быть, а не по 22пф

Добавлено: Пн май 18, 2009 10:31:20
kalobyte
а у тебя какой протеус? у меня тоже такое же, только в терминал виртуальный шлет мк
прошивка нормально работает только в 7.2сп6
остальные вплоть до 7.5 сп3 с библиотекой авр2 юарт работает криво

Re: Proteus + rs232

Добавлено: Пн май 18, 2009 11:48:14
Bird55
Arik писал(а):Подскажите пожалуйста что у меня там не так? Посылаю команду с контроллера а после макс232 вижу вместо команды кракозябли! Фотку прилагаю. Спасибо!
Без исходников трудно что-то сказать...
Вчера возился с подобной проблемой: Proteus 7.5 SP3, компилятор WinAVR. Пишет каракули на терминале. Взял пример из avr-lib, результат тот же :(
Решением состояло в том, что поставил явно инициализацию UART, добавив следующую строку в функцию uart_init():

Код: Выделить всё

  UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); /* Set frame format: 8data, 2stop bit */

Добавлено: Пн май 18, 2009 11:56:43
Arik
Так причем тут прошивка и исходники? До макса всё отлично а после макса кракозяблики! Кстати какой номинал должен быть у конденсаторов? Макс уже был в протеусе. Версия протеуса 7.5 SP3
Кто делал подключение в этой версии протеуса помогите плиз? Может есть другое решение без макса? Спасибо!

Добавлено: Пн май 18, 2009 12:05:06
Bird55
Arik писал(а):Так причем тут прошивка и исходники? До макса всё отлично а после макса кракозяблики!
Извини, не разглядел :(

Добавлено: Пн май 18, 2009 12:12:10
sachok
Поставте 1 мкФ в обвязке МАХ232. Второй вывод МС через конденсатор к +5, а не на землю.

Добавлено: Пн май 18, 2009 13:40:47
Arik
sachok писал(а):Поставте 1 мкФ в обвязке МАХ232. Второй вывод МС через конденсатор к +5, а не на землю.
сделал как вы сказали, но проблема не решена :(

Добавлено: Пн май 18, 2009 14:03:21
sachok
Только что проверил в Proteus'е работу своего проекта с RS232. До МАХ232 всё ок, после тоже белеберда. В железе прибор работает отлично. Так что не обращайте внимания, можно делать. Ну и думаю пока модераторы добрые, а мы целые нужно переехать в эту тему так как это глюк Proteus'а.

Добавлено: Пн май 18, 2009 18:10:44
dosikus
А ничего что max сигналы инвертирует ?!
В вирт. терминале ( в свойствах) сигналы проинвертируйте...
sachok писал(а): ... так как это глюк Proteus'а.
Вот так и всегда - нет бы подумать .А зачем , глюк Протеуса и все..

Добавлено: Пн май 18, 2009 19:18:27
__Alexander
dosikus писал(а):А ничего что max сигналы инвертирует ?!
В вирт. терминале ( в свойствах) сигналы проинвертируйте...
+1

И скажу даже больше, в протеус математические модели, и ни кондеров, ни питания можно не подводить.

Добавлено: Пн май 18, 2009 19:24:59
sachok
dosikus писал(а): Вот так и всегда - нет бы подумать .А зачем , глюк Протеуса и все..
Ну да...прокол, не подумал вовсе. А когда я делал свой проект то не было времени думать я просто собирал в железе и всё.

Добавлено: Пн май 18, 2009 19:33:29
dosikus
sachok писал(а): Ну да...прокол, не подумал вовсе. А когда я делал свой проект то не было времени думать я просто собирал в железе и всё.
Если что - правой кнопкой по терминалу -> Edit properties ->
Advanced properties - выбираем RX/TX Polarity -> Inverted

Добавлено: Вт май 19, 2009 10:14:27
Arik
Всем спасибо! Получилось с инверсией!

Добавлено: Ср май 20, 2009 06:16:21
drugdug
Ребят, а подскажите почему у меня грабли? Простенькая программа в Bascom'e из его примеров че я только не делал, все равно кракозяблы. Версия прота 7.5 SP3, басика 1.11.9.0. Проект прилагаю.

Код: Выделить всё

$regfile = "m8def.dat"                                      ' we use the M8
$baud = 9600

$hwstack = 32
$swstack = 8
$framesize = 24

Dim A As Byte , B1 As Byte , C As Integer , S As String * 4
A = 1
Print "print variable a " ; A
Print                                                       'new line
Print "Text to print."                                      'constant to print


B1 = 10
Print Hex(b1)                                               'print in hexa notation
C = &HA000                                                  'assign value to c%
Print Hex(c)                                                'print in hex notation
Print C                                                     'print in decimal notation

C = -32000
Print C
Print Hex(c)
Rem Note That Integers Range From -32767 To 32768

Print "You can also use multiple" _
; "lines using _"
Print "use it for long lines"
'From version 1.11.6.4 :
A = &B1010_0111
Print Bin(a)
S = "1001"
A = Binval(s)
Print A                                                    
End

Изображение

Добавлено: Пт май 22, 2009 00:41:05
kalobyte
пробовал ковырять опять и при смене компилятора заработало
но с ардуино не работает в 7.5, но 7.2 работает
microc codevision работает

завтра может в железе попробую

Добавлено: Пн июн 01, 2009 22:01:39
acm_fan
Теперь скорее ремарка для тех, кто столкнется с Proteus, Virtual Terminal и ATmega8. Не работает? Хотя нет, стойте… Какие-то зюквочки выводит на экран! Шрифт надо поменять… На том самом виртуальном терминале, запускаем эмуляцию и на окне терминала правой кнопкой – Set Font (я поставил Lucida Console), и еще Hex Display Mode не помешает.
http://radiokot.ru/forum/viewtopic.php?p=194205#194205
P.S. Proteus 7.2 SP6.

Добавлено: Вс июн 14, 2009 12:23:13
Томатный
У меня тоже беда с этим терминалом...
мк и терминал настроены, но всеравно в логах мне постояно пишет: УАРТ0: парити эррор и тд...
и кстати КАК в этот терминал пейсать байты? сочетание клавишь Альт+Нам2 забиндили под вылетание меню "Дебаг" :shock:
В меню "Кей Маппинг" нету этого сочетания, чтобы снять. УЖАС! :shock: :o

оффтоп: а на счем МК... у мну полсе установки параметров УАРТа(бит четности, стоп биты,кол бит пакета) сбивается БаудРэйт на какойто мусор :shock:
причем АВР Студия показывает, что забились все 16 бит, хотя регистр считается 12 битовым... поэтому, может, тут виртуальный терминал и не виноват...