Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 06.09.2016, 15:06   #1
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию PIC16F628 работа с UART

Доброго времени суток Всем !
У меня такой вопрос. Есть переходник USB-RS232 при передачи из компа выдает TTL. Написал программку простую на MikroC for PIC для приема и передачи данных по RS232 вот пример:
Код:
char uart_rd;
void main() {
  UART1_Init(2400);    
  Delay_ms(100);       
   while(1){
      if (UART1_Data_Ready()) {     // If data is received,
      uart_rd = UART1_Read();     // read the received data,
      UART1_Write(uart_rd);
          }
  }

}
ввожу с компьютера например "1" а с контролера выводит "L"
или ввожу "2" а выводит "f"
что не так делаю
intom33 вне форума   Ответить с цитированием
Старый 06.09.2016, 15:56   #2
Ученый
Senior Member
 
Регистрация: 27.02.2007
Адрес: Москва
Возраст: 66
Сообщений: 575
Вес репутации: 1705/60
Ученый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant future
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
что не так делаю
Не ищете свои ошибки самостоятельно.
1."Есть переходник USB-RS232 при передачи из компа выдает TTL" - Вы уверены? Как у него с инверсией дело обстоит? Обычно фабричные переходники передают уровни +/-10В с инверсией. Может он самодельный? Тогда и его программу надо проверять.
2. Проверяйте настройки порта в компе и процессоре.
3. Напишите программку отправки заранее известных символов с
процессора на комп.
Далее по обстоятельствам.
__________________
Не знать - не стыдно, стыдно не учиться.
Ученый вне форума   Ответить с цитированием
Старый 06.09.2016, 16:00   #3
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 49
Сообщений: 1,805
Вес репутации: 2479/77
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: PIC16F628 работа с UART

А помоему скорость разная
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Старый 06.09.2016, 16:05   #4
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,247
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
Доброго времени суток Всем !
У меня такой вопрос. Есть переходник USB-RS232 при передачи из компа выдает TTL. Написал программку простую на MikroC for PIC для приема и передачи данных по RS232 вот пример:
Код:
char uart_rd;
void main() {
  UART1_Init(2400);    
  Delay_ms(100);       
   while(1){
      if (UART1_Data_Ready()) {     // If data is received,
      uart_rd = UART1_Read();     // read the received data,
      UART1_Write(uart_rd);
          }
  }

}
ввожу с компьютера например "1" а с контролера выводит "L"
или ввожу "2" а выводит "f"
что не так делаю
Такое ощущение что скорости разные.
Частота процессора какая?
Переходник дуплексный или полудуплексный?

что делает функция UART1_Init?
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 06.09.2016, 16:06   #5
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,247
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
Lightbulb Re: PIC16F628 работа с UART

Цитата:
Сообщение от Ученый Посмотреть сообщение
Не ищете свои ошибки самостоятельно.
А как их еще искать? Кто за него их искать будет?
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 06.09.2016, 16:21   #6
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

Переходник купил китайский. Осцилографом проверяю на выходе из компа передаю "1" это char символ осцилограмма
"...000000...101110011...0000 я так понимаю первый байт стартовый 1,
и както надо зделать инверсию наверно, потому как "1" должно быть по таблице 00110001. но на выходе пика совсем другой код?
intom33 вне форума   Ответить с цитированием
Старый 06.09.2016, 16:24   #7
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

скорость передачи устанавливаю одинаковую 2400. Программку для видовса пишу на VB2008 для PICa на MikroC for PIC
intom33 вне форума   Ответить с цитированием
Старый 06.09.2016, 16:29   #8
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

UART1_Init(2400);
устанавливает скорость передачи библиотека MikroC
intom33 вне форума   Ответить с цитированием
Старый 06.09.2016, 16:52   #9
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 53
Сообщений: 940
Вес репутации: 1970/60
smart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant futuresmart_pic has a brilliant future
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
UART1_Init(2400);
устанавливает скорость передачи библиотека MikroC
Смотрите конфигурационные настройки.
Относительно чего устанавливается скорость порта. Предварительно должна быть задана тактовая частота процессора.
smart_pic вне форума   Ответить с цитированием
Старый 06.09.2016, 16:52   #10
Ученый
Senior Member
 
Регистрация: 27.02.2007
Адрес: Москва
Возраст: 66
Сообщений: 575
Вес репутации: 1705/60
Ученый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant future
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
Переходник купил китайский. Осцилографом проверяю на выходе из компа передаю "1" это char символ осцилограмма
"...000000...101110011...0000 я так понимаю первый байт стартовый 1,
и както надо зделать инверсию наверно, потому как "1" должно быть по таблице 00110001. но на выходе пика совсем другой код?
Ну так надо "Сделать инверсию", а то приемник UART у Вас в недоумении: где в вашей посылке стартовый и стоповый биты? Должно быть в уровнях TTL на входе и выходе с процессора:
111...110ХХХХХХХХ111...111 первый 0 - стартовый бит, ХХХХХХХХ - биты данных, последняя 1 после Х - стоповый бит.
__________________
Не знать - не стыдно, стыдно не учиться.
Ученый вне форума   Ответить с цитированием
Старый 06.09.2016, 20:33   #11
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

Спасибо буду пробывать
intom33 вне форума   Ответить с цитированием
Старый 07.09.2016, 10:59   #12
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,358
Вес репутации: 4322/117
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
Есть переходник USB-RS232 при передачи из компа выдает TTL.
Обычно переходники USB-RS232 выдают не TTL-уровень (0-5 вольт), а уровни RS232 (примерно -10...+10 вольт). Сфоткайте переходник и покажите или ссылку дайте посмотреть.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 07.09.2016, 13:47   #13
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 45
Сообщений: 3,494
Вес репутации: 5450/125
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Обычно переходники USB-RS232
Они обычно путают и на самом деле USB<->Uart.
dosikus вне форума   Ответить с цитированием
Старый 07.09.2016, 17:00   #14
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

переходник выдает 5.02 вольта проверял осцилографом.Переходник Китайский два штуки имею USB to RS232 CH340
intom33 вне форума   Ответить с цитированием
Старый 07.09.2016, 17:40   #15
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

Поставил перемычку RX---TX работает правильно что посылаю то и приходит а с пиком не хочет((
intom33 вне форума   Ответить с цитированием
Старый 07.09.2016, 17:44   #16
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,247
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
Поставил перемычку RX---TX работает правильно что посылаю то и приходит а с пиком не хочет((
Если осцилограмма переходника правильная (+5 при отсутствии передачи, 0 стартовый бит, 8 бит данные, +5 стоповый) - то проверить скорости тем же осцилом (длительность одного бита, и со стороны компа и со стороны пика они должны совпадать с точностью не хуже 10%), в противном случае подбирать скорость самостоятельно вычислив значения для регистров ПИКа.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...

Последний раз редактировалось IceS; 07.09.2016 в 18:19.
IceS вне форума   Ответить с цитированием
Старый 07.09.2016, 18:02   #17
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,241
Вес репутации: 4257/99
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от IceS Посмотреть сообщение
Если осцилограмма переходника правильная (+5 при отсутствии передачи, 0 стартовый бит, 8 бит данные, +5 стоповый) - то проверить скорости тем же осцилом (длительность одного бита, и со стороны компа и со стороны пика они должны совпадать с точностью не хуже 20%), в противном случае подбирать скорость самостоятельно вычислив значения для регистров ПИКа.
а если наоборот, то настроить компаратор так, чтобы выходила инверсия, далее понятно
ampersant вне форума   Ответить с цитированием
Старый 07.09.2016, 18:06   #18
Ученый
Senior Member
 
Регистрация: 27.02.2007
Адрес: Москва
Возраст: 66
Сообщений: 575
Вес репутации: 1705/60
Ученый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant futureУченый has a brilliant future
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от IceS Посмотреть сообщение
длительность одного бита, и со стороны компа и со стороны пика они должны совпадать с точностью не хуже 20%
При передаче 10-и бит 10% предел, иначе ошибка гарантирована. Обычно считается 5% - хорошо.
__________________
Не знать - не стыдно, стыдно не учиться.
Ученый вне форума   Ответить с цитированием
Старый 07.09.2016, 18:18   #19
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 38
Сообщений: 3,247
Вес репутации: 3684/106
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от Ученый Посмотреть сообщение
При передаче 10-и бит 10% предел, иначе ошибка гарантирована. Обычно считается 5% - хорошо.
Да, правильно! 10% максимум! Спасибо, что поправили.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 08.09.2016, 09:04   #20
dosikus
Senior Member
 
Аватар для dosikus
 
Регистрация: 05.06.2007
Возраст: 45
Сообщений: 3,494
Вес репутации: 5450/125
dosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond reputedosikus has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от intom33 Посмотреть сообщение
переходник выдает 5.02 вольта проверял осцилографом.Переходник Китайский два штуки имею USB to RS232 CH340
Ссылку будьте любезны. Если в переходнике только один CH340, однозначно
USB<->UART(comTTL)...
dosikus вне форума   Ответить с цитированием
Старый 08.09.2016, 09:25   #21
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,559
Вес репутации: 4996/152
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от Ученый Посмотреть сообщение
При передаче 10-и бит 10% предел, иначе ошибка гарантирована. Обычно считается 5% - хорошо.
10% - это суммарно, поэтому на каждую сторону закладывают по 5%.
обычно не вспоминают, что еще есть 7 бит и сильно меньше. не обязательно делать именно такую длину слова (уарт не каждого контроллера такое поддержит), можно просто ограничить число значащих бит в посылке. ну и какую-то паузу обеспечить между (увеличить число стопов на передачу).
Greg вне форума   Ответить с цитированием
Старый 08.09.2016, 10:42   #22
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 44
Сообщений: 1,312
Вес репутации: 1747/64
DimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant future
По умолчанию Re: PIC16F628 работа с UART

Цитата:
Сообщение от Greg Посмотреть сообщение
10% - это суммарно, поэтому на каждую сторону закладывают по 5%.
обычно не вспоминают, что еще есть 7 бит и сильно меньше. не обязательно делать именно такую длину слова (уарт не каждого контроллера такое поддержит), можно просто ограничить число значащих бит в посылке. ну и какую-то паузу обеспечить между (увеличить число стопов на передачу).

Я как-то, при болшом возможном разбросе частот (16-й пик с внутренним осциллятором в широком диапазоне температур) и небольшом потоке данных, передавал вообще по 4 бита, и с единицами в младшей тетраде.
DimaS вне форума   Ответить с цитированием
Старый 09.09.2016, 11:03   #23
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,330
Вес репутации: 2740/59
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC16F628 работа с UART

DimaS
теоретически можно калибровать внутренний генератор отправляя с master 0xaa, и осуществляя правку частоты до достижения приема 0xaa с подтверждением от slave по синхронизации;
для больших объемов данных может дать преимущество во времени передачи.
besogon вне форума   Ответить с цитированием
Старый 09.09.2016, 17:41   #24
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 44
Сообщений: 1,312
Вес репутации: 1747/64
DimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant futureDimaS has a brilliant future
По умолчанию Re: PIC16F628 работа с UART

Можно, но мне там передавать-то надо было десяток байт раз в минуту, сошло и тетрадами.
DimaS вне форума   Ответить с цитированием
Старый 29.09.2016, 19:20   #25
intom33
Junior Member
 
Регистрация: 10.04.2010
Возраст: 54
Сообщений: 28
Вес репутации: 100/28
intom33 will become famous soon enoughintom33 will become famous soon enough
По умолчанию Re: PIC16F628 работа с UART

Второй месяц мучаюсь ПОМОГИТЕ!!
Ну не могу понять почему не получается посылаю одни данные через COM а с пика приходят совсем другие,пробовал на разных скоростях передачи тот же результат делал инверсию и даже сдвигать пробовал не получается???
Код:
char receive;
void main() {
 TRISA = 0;
 TRISB = 0;
 TRISB1_bit = 1;
 PORTA = 0;
 PORTB = 0;
  UART1_Init(9600);


   while(1){
         if (UART1_Data_Ready() == 1) {
            receive = UART1_Read();
             receive =~ receive;
            UART1_Write(receive >> 1);
                    }
       }

}
intom33 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RX UART PIC16f628. Вопрос к гуру :) Пропуск посылок. IvanPletnev Вопросы начинающих 25 09.11.2013 16:09
работа с UART dspic33 Lab №1 Продукция MICROCHIP 38 14.08.2013 13:41
Странная работа UART killerbb Вопросы начинающих 29 12.03.2012 16:04
Проблема с прерыванием от UART на ds pic 30f2011 Zlodei Продукция MICROCHIP 2 14.08.2011 01:33
программный UART в microC alexaf Продукция MICROCHIP 4 28.12.2007 16:26


Часовой пояс GMT +3, время: 15:31.


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