roboforum.ru

Технический форум по робототехнике.

PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 21 янв 2011, 23:42

Имеется гусеничное шасси, решил сделать контроллер, который будет принимать команду с COM-порта ПК и управлять двигателями. Нарисовал схему в Proteus 7.6 (part.dsn, прошивка для МК - prog1.hex). В симуляторе все работает. (управление клавишами w,a,s,d). Дорисовал часть схемы согласования уровней (part1.dsn), собрал в железе, подключил кабелем к порту ПК, посылаю символ через гипертерминал - не принимает. Подскажите, что не правильно. Кабель делал простой: RX-TX, TX-RX, GND-GND(2-3,3-2,5-5)
Вложения
f2.zip
схемы, прошивка МК, исходник на бейсике
(29.71 КиБ) Скачиваний: 0
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение EdGull » 21 янв 2011, 23:58

фусибиты правильно выставил?
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 22 янв 2011, 00:07

МК зашился, слово конфигурации 3F10h высчитал вручную и сравнил с тем что выдает ICPROG при тех же настройках...
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение EdGull » 22 янв 2011, 00:13

а причем тут прошивка?
я про фусибиты спрашивал

Добавлено спустя 1 минуту 13 секунд:
упс!
у тебя же пик...
жди пиководов...
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение yak-40 » 22 янв 2011, 00:16

В пиках "слово конфигурации" - это и есть фьюзы.

Добавлено спустя 2 минуты 57 секунд:
Скорее всего, копай согласование уровней.
Выложил бы схему здесь, проще обсуждать было-бы.
Кстати, в чём она нарисована? не могу открыть :(
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 22 янв 2011, 00:33

я мало знаком с семейством AVR МК, так что если не то скажу - поправьте... фусибиты это вроде то же что слово конфигурации в ПИК. В моем случае: тактирование внутренним генератором(4МГц), PowerUp таймер включен, все остальные (сторожевой таймер, защита кода и памяти, низковольтное программирование, сброс по снижению напряжения) - выключены

Добавлено спустя 7 минут 20 секунд:
рисовал в proteus 7.6
сделал рисунки частей
Вложения
pictures.zip
(170.57 КиБ) Скачиваний: 0
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение yak-40 » 22 янв 2011, 00:49

МАХ у тебя подключен не по даташиту. Там четыре емкости должны быть, а у тебя две.

Добавлено спустя 4 минуты 5 секунд:
З.Ы. Рисунки лучше не зиповать, а прям здесь, в сообщении выкладывать.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение AndreiSk » 22 янв 2011, 00:58

Я пиковод :D
У меня все отлично управляется с пк,
пробовал PIC18F8722, PIC18F4550, PIC18F2320
и т.д.

1. Вот у вас на схеме MCLR висит в воздухе, а надо бы подтянуть к +5 через 5-10ком
2. А где кварц?
3. Эх... писали бы на CCS-C, я бы помог :sorry:
4. А пик вообще работает? Я обычно оставляю моргающий светодиод.
Моргает-работает, моргает по другому-значит команда выполняется
5. А зачем вам ком-порт? Их уже не найти,
вот такая штучка есть:
http://www.sparkfun.com/products/8551
и вообще, можно пики напрямую подключать к usb :roll:
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 22 янв 2011, 01:14

1. не придал значения, исправлю
2. тактируется внутренним генератором
4. пик работает, исключил из программы все что касается работы с USART, зациклил команды управления с паузой 2 сек, в результате крутит моторами с заданным интервалом синхронно отображая выполняемую команду на ЖКИ

Добавлено спустя 4 минуты 21 секунду:
конденсаторы в обвязке MAX232 прицеплю... я эту часть благополучно сплагиатил на каком-то форуме
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение AndreiSk » 22 янв 2011, 01:30

По моему опыту на внутренний кварц надежды нет :(
Зато с внешним кварцем на 20МГц,
я на скорости 230400 работаю с пиком
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение dccharacter » 22 янв 2011, 01:43

и вообще, можно пики напрямую подключать к usb

эт как?

Добавлено спустя 3 минуты 30 секунд:
Дайте код инициализации
Посмотрите осциллографом - идет ли вообще обмен

Работающий код на Hi-TEcH C:

Код: Выделить всёРазвернуть
TXEN = 1;
SYNC = 0;
BRGH = 1;
BRG16 = 0;
SPBRG = 21; //57600 at 20MHz
SPEN = 1;


Проверьте, что на компьютере терминал настроен на 9600
Проверьте, что ПИК работает с правильной частотой (можно сделать с помощью светодиода, меняющего состояние раз в секунду)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение AndreiSk » 22 янв 2011, 01:51

А что не так в подключении пика к usb?
Вот например недорогой готовый модуль
http://www.sparkfun.com/products/762

А так я PIC18F4550 подключал :pardon:
Но все равно предпочитаю FTDI UART :sorry:
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 22 янв 2011, 02:16

dccharacter писал(а):Проверьте, что на компьютере терминал настроен на 9600
Проверьте, что ПИК работает с правильной частотой (можно сделать с помощью светодиода, меняющего состояние раз в секунду)

гипертерминал при проверке настраивал 9600/8N1
я уже писал что двигателями крутит с заданными интервалами (т.е. если в программе PAUSE 2000, то крутит 2 сек)

предполагаю что ошибка скорее всего в преобразователе уровней, или может ноги 7,8 и 4,6 замкнуть как тут http://www.hardware.zp.ua/mobile/data-cable-max232.html

Добавлено спустя 9 минут 6 секунд:
код инициализации в архиве в первом посте
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение dccharacter » 22 янв 2011, 02:30

не пойму на чем это написано и нифига не вижу инициализации регистров. Но, думаю, если это работает в эмуляции, то, скорее всего, инициализация есть :-)))
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: PIC16F628A прием данных с ПК по RS232. Нужна помощь.

Сообщение vira » 22 янв 2011, 02:38

:-)
это PicBasicPro

init:
CMCON = %00000111 ' не использовать компаратор
TRISA = %00000000 ' Сделать все выводы порта PORTA выходами
TRISB = %00000010 ' Сделать все выводы порта PORTB выходами,
' кроме вывода 1 (RX),который будет входом
PORTB = %00000000 ' До начала программы сбросить в 0 все выводы порта PORTB
PORTA = %00000000
vira
 
Сообщения: 6
Зарегистрирован: 21 янв 2011, 18:22
Откуда: Тернополь

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10