Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Прием-передача через USART (непонятная ошибка)
Прием-передача через USART
DimDIk Дата: Чт, 19.03.2009, 14:46  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Доброго времени суток! Задача такая: необходимо с одного пика на другой передать массив,в ответ второй пик должен инвертировать 4-ый бит второго байта в принятом массиве и отправить его первому.В протоне написал программы как для передающего пика, так и для принимающего все отлично откомпилировалось. Однако при моделировании в протеусе возникает ошибка при передаче массива 1-ым пиком. Может кто нибудь знает в чем тут дело? Прикрепляю програмный код и схему в протеус.
Прикрепления: PIC16_ALCD_VHB.dsn (98.5 Kb) · picstrper.bas (0.8 Kb) · picstrprin.bas (0.9 Kb)
ЯНДЕКС Дата: 19.03.2009
ГыГы Дата: Чт, 19.03.2009, 19:59  |                                                                                                                Сообщение # 2
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 17.02.2009

Статус: Offline

У вас в свойствах ПИКов указан путь к .bas файлу, а нужно .hex . Протеус это же не компилятор, а всего-лишь эмулятор smile
DimDIk Дата: Пт, 20.03.2009, 12:53  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Если использовать .bas файлы это позволяет выполнять пошагоаую отладку в протеусе и увидеть где именно ошибка.
LeXaCH Дата: Ср, 13.10.2010, 23:44  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 21
Репутация: 0   ±
Замечания:   ±
На сайте с 05.01.2010

Статус: Offline

Подскажите, может кто знает в чем проблема при использовании команды на передатчике на пример HSEROUT "ID145", и прием на приемнике HSERIN 1000, loop, [Wait("ID145")]. Все происходит нормально, программа дальше работает. НО при внесении неправильного ID для проверки приема HSERIN 1000, loop, [Wait("ID140")], не происходит переход к подпрограмме loop. sad
xvovanx Дата: Вт, 15.12.2015, 21:47  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Добрый день. Хочу спросить кто нибудь колдовал со звуковым блочком DFPlayer Mini с карточкой, управляемый по UART? Что-то не хочет он от UART запускаться, хотя от кнопок пиликает замечательно. UART на 9600, как в даташите. Может не правильно последовательный код передаю? И еще хотел спросить- как сосчитать контрольную сумму кода (выделил синим), может какой удобный калькулятор есть?
Прикрепления: Voice_mp3.bas (1.5 Kb) · 6393653.jpg (121.6 Kb) · dfplayer-mini-m.pdf (422.6 Kb)
Matrix252005 Дата: Ср, 16.12.2015, 08:44  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

xvovanx, с таким зверьком не работал, но гляньте тут, может поможет:

https://www.mikroe.com/forum....tart=15
https://forum.arduino.cc/index.php?topic=241021.0
Цитата xvovanx ()
И еще хотел спросить- как сосчитать контрольную сумму кода (выделил синим), может какой удобный калькулятор есть?
Вот тут написано:
"It's easy to calculate checksum if you understand hex well. Here is an example below.
FF+06+03+00+00+01=0109   0-0109=FE F7  "


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Чт, 17.12.2015, 09:31  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Matrix252005 ()
...гляньте тут, может поможет

Спасибо, но эти ссылки как и многие другие были "перелопачены". WTV-20 блок с управлением по SPI отлично работает, но "гад" сильно разборчив в SD карточках, у меня из 8 разных заработал только со старой 10 летней давности. А этот блок DFPlayer всеядный, но по последовательному порту не хочет работать. Скажите а сама передача посылки данных у меня правильно организована?

SerOut PORTC.7,N9600,[$7E,$FF,$06,$03,$00,$00,$01,$FF,$E6,$EF]

За сумму отдельное спасибо- в даташите опечатка cool , но все равно блок молчит
Прикрепления: 6078647.jpg (76.2 Kb)

Сообщение отредактировал xvovanx - Чт, 17.12.2015, 09:32
Matrix252005 Дата: Чт, 17.12.2015, 09:50  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!!

Давно я уже не работал с протоном....

Цитата xvovanx ()
За сумму отдельное спасибо- в даташите опечатка , но все равно блок молчит

У Вас на рисунке написано ... $FE, $F7...
Вы передаете: ....  $FF,$E6 ...

А попробуйте следующее, подключите МК к компу и отошлите эти данные компу, если комп их примет, значит Вы настроили УАРТ верно, если нет...


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Чт, 17.12.2015, 15:21  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Matrix252005 ()
А попробуйте следующее, подключите МК к компу и отошлите эти данные компу, если комп их примет, значит Вы настроили УАРТ верно, если нет...

Если чесно еще ни разу не подключал Пик к компу по RS232 (самопальные программаторы не в счет). А чем, какой прогой на компе удобно "ловить" RS232?
Matrix252005 Дата: Чт, 17.12.2015, 15:35  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Я связывал ПИК с ПК через МАХ232... Проверял на разных прогах...

В самом протоне есть "SerialCom".


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Чт, 03.08.2017, 00:13  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Вечер добрый!
Вопрос такого плана: подключаю звуковой блочок DFPlayer_Mini_mp3 по "железному" сериал порту - работает отлично



Появилась необходимость организовать "не железный" сериал порт, на других ногах (не TX и RD). Как ни бился звуковой блок молчит.


Что-то блоку не нравится в "не железном" сериале.

Уже думаю надо прикупить RS232 переходник и подцепить к компу, да посмотреть обе посылки TX от контроллера для сравнения...
Может быть ответ явно на поверхности, есть какие идеи?

Сообщение отредактировал xvovanx - Чт, 03.08.2017, 00:24
ЯНДЕКС Дата: 03.08.2017
Matrix252005 Дата: Чт, 03.08.2017, 08:21  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!!

Проверьте правильность настройки: DECLARE SERIAL_DATA ...

И так далее... Может где совершили ошибку... Может в монтаже...
Если есть логер, гляньте что на входе/выходе МК...


THE TRUTH IS OUT THERE.

С уважением, Николай.
xvovanx Дата: Чт, 03.08.2017, 22:28  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Добрый вечер!
Удалось все таки победить программный (не железный) RS232. "Докладаю" в чем фокусы были. Подключил UART выходы Пика к компу (через Мах232 блок) и давай анализатором смотреть, что мы имеем: железный UART выдает правильную посылку, а програмный (команды Протона SerOut и RsOut) выдает на выход по умолчанию инверсный сигнал. Для команды SerOut инвертировать данные в описаниях не нашел как, а для команды RsOut в описаниях есть (первая строка кода)

Код
Declare RsOut_Mode 0   ' Режим последовательной передачи данных без инверсии
Declare Serial_Baud 9600
Declare RsOut_Pin PORTC.0
Declare RsIn_Pin PORTC.1
RsOut $7E,$FF,$06,$03,$00,$00,$01,$EF

Все заработало как часики - в порту данные что надо.
Теперь можно отсылать TX-RX с любых ног Пика. Звуковой блочёк отлично запускается даже только от TX, без RX (экономия ноги) wink

P.S. без анализатора КомПорта не разобрался бы в чем дело, так как раньше в Протеусе смоделировал два Пика в UART связке и они замечательно работали без всяких инверсий - что послал, то и получил. В железе однако не так

Сообщение отредактировал xvovanx - Чт, 03.08.2017, 22:38
AndrF Дата: Пт, 04.08.2017, 07:39  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 145
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Кстати, вопрос - а на фига вы железный COM-порт используете? Это же только проблемы - в современных компах/ноутах давно нет железных COM-портов.

Как рекомендация - используйте сразу чипы UART-USB. И работайте с виртуальными COM-портами. Чипы недорогие...
xvovanx Дата: Пт, 04.08.2017, 08:55  |                                                                                                                Сообщение # 15
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата AndrF ()
Кстати, вопрос - а на фига вы железный COM-порт используете? Это же только проблемы - в современных компах

Я под словом "железный" КомПорт подразумевал TX и RX ноги процессора (команда HSerOut ), а когда эти ноги уже заняты, то приходится мудрить "программный" КомПорт на свободных ногах (команда SerOut ).
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Прием-передача через USART (непонятная ошибка)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: