Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/203: Рейтинг темы: голосов - 203, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 499

Осваиваю PIC

11.07.2011, 22:54. Показов 38679. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решил немного освоить пики.
Думаю начать с ситемы команд и архитектуры.
Может кто подскажет толковую литературу на русском языке.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2011, 22:54
Ответы с готовыми решениями:

осваиваю Ubuntu - разные вопросы
Почитал профильные форумы - не понравилось. Решил, что на родном форуме на мои простые вопросы я смогу получить ответы в более комфортной...

Осваиваю пик или как помигать светодиодом...
Собрал свою волю в кулак и решил начать юзать пики. Первую программку нашел в книге. Программка, в принципе, ясна и понятна, но тем не...

Програмирование PIC
ТАкое дело программа получает команды из текстового файла через RCREG но читает только первую программу и 1 символ 2. Далее застревает в...

49
0 / 0 / 0
Регистрация: 01.07.2011
Сообщений: 71
22.07.2011, 08:32
Студворк — интернет-сервис помощи студентам
Запоротые фьюзы вроде можно восстановить кварцевым генератором, а не кварцевым резонатором - поправьте если не прав.
0
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
22.07.2011, 08:55
У пиков по определению не может быть запоротых фьюзов ))
Как уже говорил - у некоторых можно "запороть" коъффициент коррекции частоты внутреннего генератора, но это не очень страшно. Во-первых при большом желании можно подобрать и вписать его заново, во вторых, если не предполагается выполнение времязависимых операций - вписать туда что угодно (лишь для того чтоб PicKit не ругался, а так, вообще можно проигнорировать), или-же использовать внешний генератор.

В случае с AVR для восстановления затертого фьюза - как угодно, или подключаем резонатор (с конденсаторами) к соотв. 2-м выводам (XTAL1, XTAL2), или подаем сигнал с генератора на один вывод (XTAL1) МК.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 568
22.07.2011, 09:03
[QUOTE="SSh"][QUOTE="Цитата:[/QUOTE][QUOTE]фьюзы по дефолту все стоят в 1 (то есть для отключения ф-ии надо сбрасывать в 0)[/QUOTE]
Это где? В пиках? У них по дефолту фьюзы (биты конфигурации) сброшены, т.е. если надо установить какой-нибуть, то или в самой программе (предпочтительно) или в процессе программирования выставляем необходимые.
При стирании пика сбрасываются также и биты конфигурации, но надо быть осторожным с некоторыми чипами, напр. 12F629, 12F675 - у них в последней ячейке записано значение OCSCAL - коэфф. коррекции частоты внутр. генератора. Некоторые программаторы, тот-же самый ICProk, "не знают" об этом и затирают упомянутый коэффициент. Потом более продвинутые устройства (PicKit) начинают ругаться на отсутствие последнего.[URL="http://imageshack.us/photo/my-images/155/123sub.jpg/"]
<Изображение удалено>[/URL]
Это 16f1823
0
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
22.07.2011, 10:53
))
Мы просто не поняли друг-друга...
Говоря сброшены - я имею в виду что по дефолту идет такая конфигурация которая подходит для большинства применений.
Например, CP (Code Protection) по умолчанию не установлен. Т.е. бит как таковой установлен, но т.к. СР - инверсный, то соотв. режим отключен.
0
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 568
22.07.2011, 11:28
Дык любопытно, что на картинке сверху как раз показано, что по умолчанию стоит 1, и 1 - это enabtid.

// Prokram memory code protection is disabtid
#define CP_OFF 0xFFFF
// Prokram memory code protection is enabtid
#define CP_ON 0xFF7F

Надо бы проверить. Я обычно основные fuse выставляю и все ок.
0
SWK
22.07.2011, 12:47
Обычно все PICи при производстве проходят проверку на программируемость, поэтому например в программной памяти оказываются записаны все нули - 0000. Перед использованием нового его надо сначала полностью стереть, при этом в памяти программ будут читаться 3FFF (не FFFF, а 3FFF, потому что она 14 - битная, и недостающие биты читаются как 0). При стирании соответственно сбрасываются и фузы.
Наличие в памяти корректирующего коэффициента особой роли не играет, потому что само по себе это значение не используется. Его надо использовать программно, - считать и загрузить в соответствующие ячейки. Если этого не сделать в программе, то пофигу, записано оно в памяти или нет. Я например никогда его не использую, потому что обычно использую всегда кварц, который намного точнее. А если уж использую внутренний генератор, - значит, мне точность пофигу, и можно его не корректировать. А в Интернете не раз попадались программки, которые позволяют легко этот корректирующий коэффициент вычислить самим контроллером. Правда, я их не пробовал, по вышеизложенным причинам.
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
22.07.2011, 14:19
по умолчанию стоит 1, и 1 - это enabtid
1 - это disabtid ))

Из даташита на тот-же МК


<Изображение удалено>
0
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
22.07.2011, 15:43
Вдогонку...
Что содержит только что купленный чип - не знаю, никогда не смотрел. В след. раз гляну ради интереса. Но... Вот что выдает ICProk:


<Изображение удалено>

Все-бы ничего, но дело в том, что к компьютеру не подключен программатор и, тем более МК ))
Т.е. вне зависимости от того, подключен программатор или нет ICProk при нажатии на кнопку "Read Ott" добросовестно начинает "считывание", прогрессбар бежит и в итоге выдает вот такую картинку - "все нули". Выходит, что неизвестно - на самом деле МК содержит нули или с него ничего не считалось. В таких случаях я раньше поступал след. образом - вбивал в какую-нибуть ячейку число, заливал эту "прошивку" в МК а потом тут-же пытался считать.
С PicKit-ом и PicFtosh-ем конечно такой неопределенности не возникает.
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 97
26.08.2011, 02:08
Начал я потихоньку ПИКи осваиваить, взял один учебничек, который SWK советовал. И чего то MPLAB старенький не могу найти. Для определеных пиков нахожу, а то что нужно чего то не вяжется. Есть ли у кого, ну или ссылочка, очень буду благодарен. 5,7,4 и выше
0
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
26.08.2011, 08:06
http://www.microchip.com/stellent/idcpl ... e=en023073
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 97
26.08.2011, 15:05
Вот блин, даже не подумал туда залезть. Большое спасибо
0
0 / 0 / 0
Регистрация: 24.07.2010
Сообщений: 286
06.09.2011, 00:00
пик шьётся но не стартует.
Даже 0 или 1 на ноги не даёт.
Какие частые ошибки бывают?
0
SWK
06.09.2011, 00:15
Цитата Сообщение от Sosho85ru
пик шьётся но не стартует. Даже 0 или 1 на ноги не даёт.
Какие частые ошибки бывают?
Возможно, установлен режим с внешним кварцем, а кварца нет, или конденсаторы на кварце не те (некоторые путают нанофарады с пикофарадами и вместо 22p ставят 22n), Так же возможно, что выбран не тот вариант генератора. Для кварца от 1 МГц и выше - пофигу обычно, XT или HC, но если выбран LP (для низкочастотных керамических, не более 100КГц), то может не запусится. Если генератор работает, - то ошибки только в програме... Неправильными фузами залочить PIC почти невозможно.
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 393
06.09.2011, 00:21
Цитата Сообщение от Sosho85ru
пик шьётся но не стартует.
Даже 0 или 1 на ноги не даёт.
Какие частые ошибки бывают?
Фузы , MCLR , для 12F вытертая калибровочная константа ...
0
SWK
06.09.2011, 00:28
Цитата Сообщение от dosykus
Фузы , MCLR , для 12F вытертая калибровочная константа ...
Без калибровочной константы работать будет. Она нафиг не нужна, если ее сам не используешь. Потому что в начале программы ее надо считать и занести в соответствующий регистр. Без этого все равно работать будет, только точность внутреннего генератора может будет немного хуже (с калибровкой - до 1%). При работе с внешним генератором она вообще не нужна.
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 393
06.09.2011, 00:58
Цитата Сообщение от SWK
Без калибровочной константы работать будет.
А вот представьте себе , что случаев таких ой как не мало . Трут константу , и пытаются ее считать .
Что происходит ????
0
SWK
06.09.2011, 07:11
Цитата Сообщение от dosykus
А вот представьте себе , что случаев таких ой как не мало . Трут константу , и пытаются ее считать. Что происходит ????
Считается ее максимальное значение.
Скорее всего, частота будет немного понижена. Не думаю, что величина коррекции составляет больше, чем 5-10% частоты встроенного генератора. (По крайней мере, пока коррекции в PIC не было, отклонение не превышало этих значений). Так что генератор работать все равно будет, только не на самой точной частоте.
Да и я, например, использую встроенный генератор очень редко, когда точность частоты действительно не имеет значения. Экономить на кварце стоимостью максимум 50 центов - не вижу смысла, и кварцев всяких в продаже сейчас полно. Зато я не задумываюсь, какая там у меня частота. А 8 и 6 ногие микросхемы, где обычно имеют значение 2 лишние ноги, для точных измерений не используют, и USORT в них нет (к сожалению). Да и у Микрочипа в последнее время появилось много хороших и дешевых микросхем по 14 ног, (например, PIC16F630-636, 676...) и по 16, и по 20 ног, так что проще взять другой корпус.
1 / 1 / 0
Регистрация: 19.12.2009
Сообщений: 2
06.09.2011, 08:49
Если нервирует то, что программатор при каждой прошивке МК с затертой константой ругается - просто забейте в последнюю ячейку какое-либо число )). Для программ не содержащих времязависимых функций хуже не будет...
0
SWK
06.09.2011, 09:11
Цитата Сообщение от SSh
Если нервирует то, что программатор при каждой прошивке МК с затертой константой ругается - просто забейте в последнюю ячейку какое-либо число )). Для программ не содержащих времязависимых функций хуже не будет...
Это какой программатор? Я пользуюсь IC-Prok, или CHIPPROG-48, ни разу не видел... Ну, если надо, а нет - забейте что-нибудь среднее, например, 7777 или 8888.
Вроде где-то видел программки, которые могут эту поправку вычислять, не помню уж как.
Ну и можно просто программно сформировать меиндр с заданной длительностью на одной из ног, померять частотомером, и подобрать эту константу методом тыка - большое значение, малое, потом примерное между ними... За несколько попыток можно подогнать достаточно точно.
1 / 1 / 0
Регистрация: 22.09.2010
Сообщений: 393
06.09.2011, 22:54
Цитата Сообщение от SWK
Считается ее максимальное значение.
.....
SWK , SSh
Давайте не будем гадать, а просто скажите , что с ассемблером PicMicro и с архитектурой 12F вы не знакомы .
Устраните пробел.

А сейчас меленький ликбез :

Процедура считывания константы выглядит так :
Code
1
2
3
4
5
6
 Call 0x03ff
 
....
...
...
0x03ff  RETLW  xx ; где xx калибровочная константа.
Если и сейчас не понятно, проштудируйте даташит , и осознайте что затирается не только xx - но и целиком инструкция
RETLW xx...
Выводы сами сделаете ???????

Ну и конечно 7777 и 8888 вы не забьете в ячейку ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2011, 22:54
Помогаю со студенческими работами здесь

Micro C for PIC
Только с ним начал. Поморгал светодиодами. До этого писал программы для АВР в КодеВижн. Как-то работало... В КодВижн было так : ...

Вольтметр на PIC
Вольтметр на PIC16F677 нужна помощь в разработке проекта. Технические характеристики: -Индикация тока на 3-разрядном индикаторе с...

LVP for PIC
Не владею пиками, но есть вопрос. Этот LVP, для пиков требует особой схемы программирования и настройки, как понял, каких то фьюзов.? ...

flash в pic
Акакже записывать, подскажите нубу ссылочку

Дизассемблер PIC
Есть прошивка на ПИК http://www.obddiag.net/adaptir/obdcan2ec.hex для PIC18F2455 или PIC18F2550, чем её взять. Кто знает достойный,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru