Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Чем прошивать PIC-и?


Автор: JusTalionis 19.12.2006, 11:33
Вот, какая, вкратце, ситуация: купил я се новенький ноут (вместо десктопа). Всем хорош, но оказалось - у него портов-то нет! Ни COM, ни LPT. Как я теперь контроллеры-то шить буду?.. smile
Пришлось купить еще внешний порт LPT через PCMCIA. Поставил; принтер через него печатает, а программаторы - не работает ни одна прога.
Что посоветуете? - а то как и быть теперь не знаю; прям хоть ноут обратно продавать smile

Драйверов PCMCIAшных с Нета накачал всё, что только смог найти, ни один не помог, или я не сумел ими воспользоваться как надо? Друзья, выручайте!..


Автор: Romikgy 19.12.2006, 11:41
Цитата(JusTalionis @  19.12.2006,  10:33 Найти цитируемый пост)
а программаторы - не работает ни одна прога.

порты смотри , как правило программаторы работают с портами ввода \ вывода напрямую, а у 
Цитата(JusTalionis @  19.12.2006,  10:33 Найти цитируемый пост)
LPT через PCMCIA

порты не стандартные а какие то заоблачные, смотри в диспечере устройств какие порт lpt юзает адреса , и прописывай их в программатор (прогу)
да и еще есть программаторы через юсб , это если ничего не поможет

Автор: JusTalionis 19.12.2006, 12:36
Программатор через USB от $100,- не потяну((((
Цитата(Romikgy @  19.12.2006,  11:41 Найти цитируемый пост)
смотри в диспечере устройств какие порт lpt юзает адреса , и прописывай их в программатор 

А есть уверенность, что те адреса (принадлежащие на самом деле PCMCIA) управляются таким же алгоритмом, как и адреса регистров LPT?

В моем понимании, должен быть какой-то драйвер, отображающий их на адресное пространство стандартного LPT. Он же и алгоритм обращения перерабатывать должен бы. Не?..

А вообще, чем народ прошивает под XP? У меня запустились только PonyProg и El Ceapo, остальные выдавали "недопустимую команду" и закрывались.

Автор: Romikgy 19.12.2006, 12:41
Цитата(JusTalionis @  19.12.2006,  11:36 Найти цитируемый пост)
А есть уверенность, что те адреса (принадлежащие на самом деле PCMCIA) управляются таким же алгоритмом, как и адреса регистров LPT?

да
Цитата(JusTalionis @  19.12.2006,  11:36 Найти цитируемый пост)
В моем понимании, должен быть какой-то драйвер, отображающий их на адресное пространство стандартного LPT. Он же и алгоритм обращения перерабатывать должен бы. Не?..

не

Автор: JusTalionis 19.12.2006, 12:59
лан, попробую; хотя не оч понимаю, как именно - эти две эти заработавшие проги не имеют пользовательской установки адресов, а только выбор COM-LPT (1/2/3/).

Я до этого ДОС-программатором пользовался P16PRO, очень гибкая вещь! Думал, в сеансе из-под XP он найдет порт эмулированный (а он есть - LPT1, проверил в диспетчере устройств). Не-а, не нашел smile

Автор: JusTalionis 20.12.2006, 13:35
Romikgy:
Цитата(Romikgy @  19.12.2006,  11:41 Найти цитируемый пост)
смотри в диспечере устройств какие порт lpt юзает адреса , и прописывай их в программатор
 
Цитата(JusTalionis @  19.12.2006,  12:36 Найти цитируемый пост)
А есть уверенность, что те адреса (принадлежащие на самом деле PCMCIA) управляются таким же алгоритмом, как и адреса регистров LPT?
 
Цитата(Romikgy @  19.12.2006,  12:41 Найти цитируемый пост)
да

Посмотрел в диспетчере устройств - используются "диапазоны ввода/вывода (I/O)":
FD98 - FD9F
FD90 - FD97
FDA0 - FDBF
но так и не допёр, каким же образом тот же самый алгоритм программатора, расчитанный на три регистра стандартного LPT должен управлять сорока пятью регистрами PCMCIA-LPT smile
Если Ваша уверенность по-прежнему непоколебима, пожалуйста растолкуйте подробнее бестолковому smile


Автор: Romikgy 20.12.2006, 13:39
Цитата(JusTalionis @  20.12.2006,  12:35 Найти цитируемый пост)
правлять сорока пятью регистрами PCMCIA-LPT

а че их 45 то ?

Автор: JusTalionis 20.12.2006, 13:49
 smile цифирки разделенные тире означают адреса первого и последнего в последовательности нескольких регистров, т.е. диапазон. Если ты умеешь перевести HEX в DEC, посчитай сам, сколько их всего получаеЦЦа smile

Автор: Romikgy 20.12.2006, 14:11
тогда уж 48 !

Цитата(JusTalionis @  20.12.2006,  12:35 Найти цитируемый пост)
PCMCIA-LPT

сколько lpt портов на этой карте?

Цитата(JusTalionis @  20.12.2006,  12:35 Найти цитируемый пост)
Если Ваша уверенность по-прежнему непоколебима

А я имхо про увереность ничего не говорил, или говорил? (если говорил ссылку приведи?)

Автор: Romikgy 20.12.2006, 14:27
кса 
Цитата(JusTalionis @  20.12.2006,  12:35 Найти цитируемый пост)
расчитанный на три регистра стандартного LPT

это если lpt с "простом" режиме , а есть же и расширеные , и там имхо адрессов юзается 8 

Автор: JusTalionis 20.12.2006, 15:12
Цитата(Romikgy @  20.12.2006,  14:11 Найти цитируемый пост)
тогда уж 48 !
все равно же - не 3?..

Цитата(Romikgy @  20.12.2006,  14:11 Найти цитируемый пост)
сколько lpt портов на этой карте?
Один.

Цитата(Romikgy @  20.12.2006,  14:11 Найти цитируемый пост)
А я имхо про увереность ничего не говорил, или говорил? (если говорил ссылку приведи?) 
Цитата(Romikgy @  19.12.2006,  12:41 Найти цитируемый пост)
Цитата
А есть уверенность, что те адреса (принадлежащие на самом деле PCMCIA) управляются таким же алгоритмом, как и адреса регистров LPT?
да


Цитата(Romikgy @  20.12.2006,  14:27 Найти цитируемый пост)
есть же и расширеные , и там имхо адрессов юзается 8
 Все равно не 48 и не 45; IMHO это то же самое, что пытаться прикрутить к Камазу колесо от Нивы smile 

Есть более здравые суждения?


Автор: Romikgy 20.12.2006, 15:36
Че ты прицепился к количеству этих регистров?
Те надо советы и решение твоей проблемы или разговоры?

для стандартного порта их надо 8,
но у тя не стандартный , а для управления железякой тоже нужны порты,
да и просто дублировать могли,
у тя в системе они определились , так вот у них должен быть идентификатор LPTx в проге его надо прописать , если есть в проге адресса пропиши те которые из диспечера устройств!

Автор: JusTalionis 20.12.2006, 16:18
Цитата(Romikgy @  20.12.2006,  15:36 Найти цитируемый пост)
да и просто дублировать могли

ну ё-моё же!.. Ты, кажется, думаешь, что это - как слот на материнке: вставил карточку - и дело в шляпе. Почитай вот здесь, как работает PCMCIA http://www.hardline.ru/3/30/1328/1726-8.html (там в самом конце статьи).
Ну не может такое делать непосредственно программатор! Когда PCMCIA, к примеру, под дос запускают, сперва грузят специальную службу, а потом еще драйвер, и только потом - драйвер устройства. А ты - "адреса поменяй" smile Вот зачем вообще советовать, когда предмета не знаешь.


Автор: Romikgy 20.12.2006, 16:46
Цитата(JusTalionis @  20.12.2006,  15:18 Найти цитируемый пост)
 http://www.hardline.ru/3/30/1328/1726-8.html

ссылка для какой цели дана?

Цитата(JusTalionis @  20.12.2006,  15:18 Найти цитируемый пост)
Вот зачем вообще советовать, когда предмета не знаешь.


Советовал , ибо настраивал и ком и лпт порты на очень большом кол-ве компом и под разное ПО, 
и ком/лпт порты были не только встроеные в систему, но и на носителях типа ISA, PCI, USB  (вот только твоего типа не трогал)
и все они , при наличие нормальных драйверов, опознавались системой( работал со всей планкой виндов)
как ком или как лпт порт , и если ПО настраивалось используя , типа COM1 или LPT1 ,
то можно было и ставить COM10....20 так и LPT10..20 вполне любой софт кушал такие настройки,
если же ПО старое то были настройки порта например 378h , так вот для портов на платах расширения были порты типа такого DF40h и все работало корректно !

Если же Вам не понравился мой ответ , то так и скажите , в этом случае я отвечать больше не буду!

Автор: JusTalionis 20.12.2006, 16:58
1. Ссылка дана в качестве информационного материала по теме.

2. Не обижайтесь пожалуйста; я тоже настраивал, и тоже именно с PCMCIA дела не имел, и поэтому как есть и говорю этого предмета - не знаю,- и спрашиваю о нем.

3. Если Вы настраивали LPT-USB, скажите, он когда правильно поставлен, прямое обращение к себе по стандартным адресам - воспринимает?


Автор: Romikgy 20.12.2006, 17:11
Цитата(JusTalionis @  20.12.2006,  15:58 Найти цитируемый пост)
1. Ссылка дана в качестве информационного материала по теме.

нет там инфы на данную тематику! просто описание что это есть
Цитата(JusTalionis @  20.12.2006,  15:58 Найти цитируемый пост)
3. Если Вы настраивали LPT-USB, скажите, он когда правильно поставлен, прямое обращение к себе по стандартным адресам - воспринимает?

не по стандартным адрессам не понимал! В диспечере устройств смотри есть ли LPT порты новые (не стандартные , если есть их и вписывай)

Автор: Jey_k 20.12.2006, 18:35
PCMCIA широкодиапазонная шина предназначеннная примерно для того же для чего PCI в обычном компе если говорить тривиально. 

Для работы с портами как правило делают распайку так чтобы цеплялось питание. Данные цепляются по хитрому механизму но не напрямую. Принтер в таком случае видится, но даже HASP ключ уже теряется. Скорее всего пины данных цепляются на транспортные магистрали шины, а дрова уже настраивают интерфейсы, стыковку и пр. Полноценным такой LPT равно как и COM не будет. По крайней мере ни одно из устройств (медицинские вещи) по вторичному LPT не запахало.

Автор: Romikgy 20.12.2006, 19:27
Цитата(Jey_k @  20.12.2006,  17:35 Найти цитируемый пост)
о крайней мере ни одно из устройств (медицинские вещи) по вторичному LPT не запахало. 

А у мя на работе , почти все оборудование связное  работает по мультипартовкам на шинах иса и писиай  (ком порты) и нормально

Автор: Jey_k 21.12.2006, 11:47
Цитата(Romikgy @  20.12.2006,  19:27 Найти цитируемый пост)
на шинах иса и писиай

это и должно работать. С PCMCIA немного другая песня.

Автор: Romikgy 21.12.2006, 14:30
Цитата(Jey_k @  21.12.2006,  10:47 Найти цитируемый пост)
С PCMCIA немного другая песня. 

в чем?

Автор: JusTalionis 21.12.2006, 14:58
Romikgy: 
Цитата(фрагмент статьи по ссылке)
 Система конфигурации PCMCIA, получившая название "Структура идентификации платы" (CIS — Card Identification Structure), или "метаформат" платы, предусматривает обеспечение необходимой связи между PCMCIA-картой и компьютером при помощи нескольких уровней или слоев совместимости. Так же как в случае с аппаратным интерфейсом, каждый следующий слой CIS все в большей степени отражает специфику конкретного устройства. 

Только первый слой, так называемый базовый слой совместимости (Basic Compability Layer), является обязательным. Этот слой показывает, как организована память платы. Для этого нужны только два вида информации: структура данных, используемых самим слоем, и такие физические характеристики устройства, как количество головок, цилиндров, а также секторов реального или виртуального диска. 

Следующий вышележащий слой называется слоем формата записи данных (Data Recording Format Layer). Он указывает, каким образом организуется запись данных на блочном уровне. Стандарт 2.0 предусматривает четыре формата: непроверяемые блоки, блоки с коррекцией ошибок по контрольной сумме, блоки с контролем ошибок циклическим избыточным кодом и данные вне блоков, организованные не так, как на диске. 

Третий слой CIS, слой организации данных (Data Organization Layer), определяет способ логической организации данных на плате, т.е. указывает тот формат операционной системы, которому соответствуют данные. Различают четыре возможных варианта: DOS; файловая система Flash компании Microsoft для флэш-памяти; образ ПЗУ "выполнение на месте" (eXecute In Place, или XI Р); и специфическая прикладная организация. 

Четвертый слой CIS предназначен для конкретных системных (system specific) стандартов, которые соответствуют определенным операционным условиям. Например, стандарт XIP определяет, каким образом код программ, записанный в платах ПЗУ, будет считываться и выполняться. 

Установочная информация для всех этих слоев хранится в зарезервированной области памяти PCMCIA-карты, называемой памятью атрибутов (Atrib-ute Memory). Эта область изолирована от обычной памяти платы, которая в PCMCIA 2.0 называется общей памятью (Common Memory). Структура данных CIS представляет собой последовательно соединенную цепочку информационных блоков, именуемых кортежами, длина каждого из которых может составлять до 128 байт. Чтобы обеспечить для всех систем общее начало отсчета при поиске данных CIS, первый кортеж метафайла располагается по первому адресу памяти атрибутов. Благодаря этому данные будут находится в пределах адресного пространства даже тех микропроцессоров, которые способны работать только с одним мегабайтом ОЗУ. Поскольку система CIS должна функционировать в любом PC или другом компьютере, предусматривается доступ к памяти только по 8-разрядной шине.

ЗЫ. Ты по-прежнему утверждаешь, что дана неинформативная ссылка?

Jey_k:
Спасибо за информацию, хоть она и неутешительна... И чё, совсем никак нельзя управлять входами/выходами такого порта поразрядно?


Автор: Romikgy 21.12.2006, 18:22
Цитата(JusTalionis @  21.12.2006,  13:58 Найти цитируемый пост)
. Ты по-прежнему утверждаешь, что дана неинформативная ссылка?

да утверждаю, ибо это общая инфа!
Это так же как сказать что юсб эта высокоскоростная шина данных,
так же правильно и никакой информационной нагрузки!

не в статье , не в цитате, нет упоминания про эмулирование LPT порта! поэтому неинформативно !
Jey_k, 
Цитата(Romikgy @  21.12.2006,  13:30 Найти цитируемый пост)
в чем? 

 smile 

Автор: evgeni_G 1.2.2007, 09:22
Решилась проблема? А то у меня такая же возникла.

Автор: JusTalionis 12.2.2007, 16:29
Не-а. Не решилась. PCMCIA-карточку я отдал обратно продавцу. Попробовал еще шнур-переходник: LPT_принтер - USB; тоже не помогло - он эмулирует усбишный принтерный порт, а не LPT.
Мне посоветовали старый PCMCIA-LPT разыскать, 16-битный, и запустить его под DOS, но найти такой почти нереально... мне не удалось пока.  smile 

Автор: JusTalionis 20.12.2007, 01:22
Итак, дорогие господа, вот финал, кому интересно.

Программировать PIC на ноуте без портов можно только через вставной COM-порт, то есть, на карточке PCMCIA. 
У меня это получилось с карточкой http://www.argosy.ru/products/rs232-1.htm . Программировал при помощи IC-Prog 1.05E под XP. В опциях "Настроек" (Общие) нужно включить драйвер NT/2000/XP, а в меню "Программатор" указать непосредственный доступ к портам и схему JDM, на максимальной скорости.
Аппаратная часть - программатор JDM по схеме из журнала "Радио" (см. приаттаченный гиф). "Классическая" схема JDM, известная в народе как "пять проводков" не работает, потому что напряжение на этом порте 6V, что для программирования недостаточно. (В схеме "Радио" используется удвоение).
Проверял на контроллере PIC16F870 (через переходник на 28ногий корпус, конечно).
Следует отметить, что порт работает несколько нестабильно, может программироваться с ошибками, не с первого раза. Тем не менее, это единственное, что позволяет, все-таки достичь желаемого результата.
PonyProg показывал ошибку тестирования программатора. 

Еще существуют шнуры с USB на COM, через них программировать нельзя. У меня в результате пробы с таким шнуром фирмы Gembird сгорело друг за другом два чипа, хотя схема была защищена от избыточных и обратных напряжений. По какой причине вышли из строя контроллеры - я так и не установил. (Если здесь есть миллионеры, кому не внапряг попалить коробку-другую чипов во время исследования,- отпишитесь о результатах, плиззз smile )

Вот так пришлось помогать себе самому.

Автор: cardinal 20.12.2007, 01:40
Я вот только одного не пойму: не проще было бы пересесть на другие мк раз такое дело? (это намек в сторону AVR)

Автор: JusTalionis 20.12.2007, 23:47
У меня на пики Бейсик есть smile 

Кстати, у 16F870 выводов - достаточно, при нужде и АЦП-шка есть; по моим задачам - вполне подходяще.

А AVR в чем главные преимущества имеет?

Автор: cardinal 21.12.2007, 00:29
1. Тем что есть куча программаторов под USB.
2. Есть Bootloader'ы, с которыми программатор вообще становится не нужным.
3. AVR Studio
4. AVR GCC

Да и выбор в серии AVR есть...

Автор: JusTalionis 21.12.2007, 22:22
В московских магазинах USBшный программатор стоит от 11 тыс руб, а вставной порт обошелся мне только в три. А он ведь и еще много к чему другому применен быть может!

А бейсик для AVR есть? А то со студиями этими му...ться в лом. 

А про выбор - под мои задачи PIC подходит вполне, по универсальности и доступности. А если появляется какая-то специальная задача, ну типа, например, допуски на АЦП по нелинейности, или скорости, или шумам\входному импедансу, - так тогда лучше ставить специализированную микросхему, удовлетворяющую тем особым запросам.


Автор: cardinal 21.12.2007, 22:26
Цитата(JusTalionis @  21.12.2007,  21:22 Найти цитируемый пост)
В московских магазинах USBшный программатор стоит от 11 тыс руб

А в нем. 40 Евро (AVR ISP). Если интересует в след. году организую...

Бейсик не знаю, а на Си можешь писать -  му...ться не придется.

Автор: JusTalionis 22.12.2007, 13:58
За предложение, конечно, спасибо smile  на случай чего, буду иметь ввиду.

А относительно Си - это действительно хороший язык; я несколько раз собирался на него перейти - вот не пошло что-то... наверное мозги уже Бейсиком испорчены  smile 
А у него, кстати, встроенные функции есть для работы с USB и интерфесом "таблеточных" ключей, и много других вкусностей; и я собственноручно 300Kb описания с английского перевел (целое лето колупался!) напрасно что ли? smile  

А сейчас, в общем-то, весь набор уже укомплектовал - и чипы есть, и язык знакомый, и программатор всё ж таки добил до победного (глюкает немного).
Не бросать же всё теперь снова. Так что пока поиграюсь с пиками, а там дальше посмотрим, судя по необходимостям.


ЗЫ
 smile Удалось выяснить причину неустойчивости программирования. В приведенной схеме из "Радио" нашлась небольшая погрешность.
Дело в том, что контакт RTS соединен с SG непосредственно через диод VD3. И это значит, что при положительном сигнале, он оказывается фактически закорочен на землю. 
Хотя для стандартного COM это допустимо, но PCMCIAйный COM таких грубостей не любит, преобразователь в нем маломощный.
Мое решение было достаточно простым: вставить нагрузочный резистор 4.7к в провод между VD3 и VD4, а сигнал CLOCK, уходящий на панельку, взять с анода VD3 (после вставленного резистора, то есть), а не с RTS, как на схеме.
Зачем, вообще, нужен VD3? - он ограничивает напряжение сигнала, подаваемого на контроллер. Но не следовало, конечно, делать это прямым "подсаживанием" порта, без добавочного резистора.
После описанного исправления глюки в программировании исчезли, контроллер стал прошиваться совершенно четко.

Пользуйтесь! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)