Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
1

Частота внутреннего кварца PIC12F629

03.12.2013, 21:33. Просмотров 1897. Ответов 10
Метки нет (Все метки)

Всем привет!
Пытаюсь с МК отправить в компьютер байт информации. Отправляю 30, получаю D9. Работаю на скорости в 1200 бод. Мне кажется что у него не правильная внутренняя частота. В даташите написано 4, а там фиг поймёшь что. Без осциллографа не разберёшься...
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "p12F629.inc"
__CONFIG(0x3184)
 
COUNT EQU 20h
COUNT1 EQU COUNT+1
COUNT2 EQU COUNT+2
COUNT3 EQU COUNT+3
      
           MOVLW 0xFF
           MOVWF CMCON  
    
           BSF STATUS, RP0
         
;           clrf ANSEL
           BCF GPIO,5;Port GPIO1 is output
           BCF STATUS, RP0
           
           
          BSF GPIO,5 ; SET Port GPIO1 
          CALL delay
          CALL delay
 
RUN:      BCF GPIO,5  ;Send start bit
           CALL delay_1
 
   BSF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BSF GPIO,5  ;Send start bit
           CALL delay_1
   BSF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
 
          BSF GPIO,5 ; SET Port GPIO1 
          CALL delay
          CALL delay
 
 
           GOTO RUN
   
         
 
 
  
;Modules
delay_1:    MOVLW 0xCF                ;
        MOVWF COUNT1     ;
LOOPZ11:NOP
       
        DECFSZ COUNT1,F  ;
        GOTO LOOPZ11          ;
   return
;============================
 
 
delay:  MOVLW 0x0A                ;
        MOVWF COUNT1     ;
LOOPZ1: CALL DELAY2           ;
                    DECFSZ COUNT1,F  ;
        GOTO LOOPZ1          ;
        RETURN                     ;
DELAY2:       MOVLW 0FF              ;                               Подпрограмма
        MOVWF COUNT2     ;
LOOPZ2:        CALL DELAY3          ;
                    DECFSZ COUNT2,F  ;                                    задержки
        GOTO LOOPZ2          ;
        RETURN                     ;    
DELAY3: MOVLW 0FF              ;  
        MOVWF COUNT3     ;
LOOPZ3:        DECFSZ COUNT3,F  ;
        GOTO LOOPZ3          ;
        RETURN                                  
  END
Delay_1 в эмуляторе MPLAB показывает задержку 833 uSecs.
0
Миниатюры
Частота внутреннего кварца PIC12F629  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 21:33
Ответы с готовыми решениями:

Прошивка ISP и частота кварца.
Что-то наткнулся я на невкусную зависимость - чем больше кварц, тем меньше скорость SPI. Иначе...

Частота внутреннего генератора attiny2313
Собрал 3 пробных платки - всё одинаковое - индикатор, тинька, пара джамперов, одна и та же прошивка...

Реверсинг прошивки PIC12F629
Добрый вечер. Решил собрать миниробота на PIC12F629. Соответственно встал вопрос о прошивке. В...

extra-pic и pic12f629
попросили помочь прошить сабжевый контроллер, программатор дали. сейчас подключил согласно статьи к...

PIC12F629 режим SLEEP
Есть устройство, используется мк PIC12F629, проблема с выводом из SLEEP режима, при нажатии на...

10
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
03.12.2013, 23:33 2
В даташите все написано, есть даже график частоты от температуры, также есть калибровочная константа. А самое главное что не рекомендуется использовать передачу данных по протоколу рс232 при тактировании от внутреннего генератора, он построен на резисторе и конденсаторе.
Проверяйте обмен в протеусе, в нем не только осциллограф есть, но еще куча всяких прибамбасов.
1
paskal
455 / 303 / 29
Регистрация: 15.08.2011
Сообщений: 946
04.12.2013, 20:56 3
Цитата Сообщение от vovken1997 Посмотреть сообщение
Пытаюсь с МК отправить в компьютер байт информации. Отправляю 30, получаю D9.
Где вы посылаете 30? В вашем листинге я этого не вижу. Я вижу что вы отправляете последовательность 1-0-0-0-1-1-0-0. Поскольку в RS232 отправляется младшим битом вперед, это будет байт 00110001b. А D9=11011001. Что вполне похоже на вашу посылку с учетом что у вас уплыла частота вверх, а старшие биты забились единицами из паузы от посте стоп-бита.
[/QUOTE]
1
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
07.12.2013, 23:20  [ТС] 4
Тема осталась не решена. Константа была не затёрта, я не туда посмотрел в начале, но на всякий случай я ещё раз её подобрал при помощи фирменного софта. Код подправил, теперь 0x30 шлёт:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "p12F629.inc"
__CONFIG(0x3184)
 
COUNT EQU 20h
COUNT1 EQU COUNT+1
COUNT2 EQU COUNT+2
COUNT3 EQU COUNT+3
      
           MOVLW 0xFF
           MOVWF CMCON  
    
           BSF STATUS, RP0
         
;           clrf ANSEL
           BCF GPIO,5;Port GPIO1 is output
           BCF STATUS, RP0
           
           
          BSF GPIO,5 ; SET Port GPIO1 
          CALL delay
          CALL delay
 
RUN:      BCF GPIO,5  ;Send start bit
           CALL delay_1
 
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BSF GPIO,5  ;Send start bit
           CALL delay_1
   BSF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
   BCF GPIO,5  ;Send start bit
           CALL delay_1
 
          BSF GPIO,5 ; SET Port GPIO1 
          CALL delay
          CALL delay
 
 
           GOTO RUN
   
         
 
 
  
;Modules
delay_1:    MOVLW 0xCF                ;
        MOVWF COUNT1     ;
LOOPZ11:NOP
       
        DECFSZ COUNT1,F  ;
        GOTO LOOPZ11          ;
   return
;============================
 
 
delay:  MOVLW 0x0A                ;
        MOVWF COUNT1     ;
LOOPZ1: CALL DELAY2           ;
                    DECFSZ COUNT1,F  ;
        GOTO LOOPZ1          ;
        RETURN                     ;
DELAY2:       MOVLW 0FF              ;                               Подпрограмма
        MOVWF COUNT2     ;
LOOPZ2:        CALL DELAY3          ;
                    DECFSZ COUNT2,F  ;                                    задержки
        GOTO LOOPZ2          ;
        RETURN                     ;    
DELAY3: MOVLW 0FF              ;  
        MOVWF COUNT3     ;
LOOPZ3:        DECFSZ COUNT3,F  ;
        GOTO LOOPZ3          ;
        RETURN                                  
  END
Но я принимаю теперь D8. Загрузил прошивку в Протеус и посмотрел на осциллографе, вроде всё чётко, но на деле не работает...

Ребят, посмотрите пожалуйста, может я что-то упустил...
0
Миниатюры
Частота внутреннего кварца PIC12F629   Частота внутреннего кварца PIC12F629   Частота внутреннего кварца PIC12F629  

07.12.2013, 23:20
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
07.12.2013, 23:24 5
Частота в протеусе какая стоит? Еще в протеусе есть специальные штуки (DIGITAL ANALYSIS) для записи сигнала, они лучще чем осциллограф.
Киньте ваш проект в протеусе я гляну.
1
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
07.12.2013, 23:29  [ТС] 6
Стоит 4MHz.
Да, питание на МК не 5В, а 3.4В
Смотрите вложения
0
Миниатюры
Частота внутреннего кварца PIC12F629  
Вложения
Тип файла: rar 1.rar (10.4 Кб, 4 просмотров)
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
07.12.2013, 23:45 7
По осциллограмме у вас что-то не то. Нет стоп бита, длинна байта не соответствует 10 временным интервалам 0,83мс.
В приложении пример пакета данных переданных на скорости 9600. Очень показательна передача 0х00.
1
Миниатюры
Частота внутреннего кварца PIC12F629  
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
07.12.2013, 23:49  [ТС] 8
Я работаю на скорости в 1200 БОД!!!!
0
korsaj
152 / 119 / 11
Регистрация: 16.08.2013
Сообщений: 576
08.12.2013, 00:40 9
Сори! Все у вас правильно, проверил в протеусе временные интервалы и протестировал на virtual terminal. Смотрите железо. Получается что мк передает на большей скорости чем надо. У вас же напряжение занижено, а это значит частота выше примерно 5,5МГц. Попробуйте проверить: выведите на какой нибудь порт секундные интервалы и сравните их с эталоном, 100% опередят.

Или попробуйте пересчитать интервалы задержки для частоты 5,5..5,7МГц.
1
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
08.12.2013, 01:30  [ТС] 10
А если перемычку на 5В воткнуть???
Спасибо за помощь!!!
Завтра обязательно посмотрю!
0
paskal
455 / 303 / 29
Регистрация: 15.08.2011
Сообщений: 946
08.12.2013, 22:37 11
Цитата Сообщение от vovken1997 Посмотреть сообщение
А если перемычку на 5В воткнуть???
Я бы не советовал. Лучше поиграться с задержками. Всего то делов поменять константу в подпрограмме delay_1.
И уж точно ничего так не спалишь.
1
08.12.2013, 22:37
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 22:37

Программатор для PIC12F629
Привет))) Есть схемка простенького программатора, на котором можно программировать контролер...

Нужно немного изменить программу на asm для PIC микроконтроллера (PIC12F629)
Помогите пожалуйста, нужно немного изменить программу для этой схемы (код на сайте)...

Частота кварца и CMSIS
Помогите разобраться. В учебном курсе по STM32 есть фраза: Это пояснение к макросам CMSIS. То...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.