Страница 1 из 1

Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 11:35:44
shame
Добрейшего всем времени суток.
Делаю автономный программатор Пиков, тренируюсь на 16f684. (потому что его у меня как грязи). Сам программатор сделан на mega8L (вот такой вот я извращенец). Взял кусок из микрочиповского аппнота AN589 и исходники досовского программатора на страничке http://www.cqham.ru/fpic02.htm Н.Хлюпин (RA4NAL), ra4nalr@write.kirov.ru. Програмлю на CodeVision (если это важно). Проблема же в следующем: так как изначально программатор был на базе LPT порта, а он довольно медленно перебирает ножками код был такой:

Код: Выделить всё

      for (i=200;i;i--) ; 		// delay between command & data
      biosprint(0,2+8,PTR);    		// set bits 001010, clock hi; leading bit
      biosprint(0,  8,PTR);    		// set bits 001000, clock low
АВРка дрыгает ногами не в пример быстрее и код получился такой:

Код: Выделить всё

      delay_us(tdly2); 		// delay between command & data
      biosprint(0,2+8,PTR);    		// set bits 001010, clock hi; leading bit
      delay_us(tset1);
      biosprint(0,  8,PTR);    		// set bits 001000, clock low
      delay_us(thld1);
где:

Код: Выделить всё

#define tset1 1000    //100 ns
#define thld1 1000
#define tdly1 2
#define tdly2 2
#define tprog1 6000
#define tera 6000
взято из даташита микрочипа на этот пик за номером DS41204H страница 35.
налицо нессответсвие: параметры tset1 и thld1 заявлены в 100 наносекнд, но когда я ставлю его в 1 микросекунду (что в 10 раз больше), я ничего не могу читать (и писать) из пика, работать с пиком я могу только если tset1 и thld1 1000 микросекунд (что в 10 000 раз больше даташитовского параметра). В результате пик пишется в течении полутора минут, как мне кажется это долго. Кто виноват? Почему микрочип заявляет одни данные, а в реальности все по другому? Или это я где-то протупил. И что делать? Кто-нибудь сталкивался с подобной проблемой и как решил?

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 13:38:09
driver_gv
ICD2 фирменный пишет несколько секунд. Наверно в чемто другом собака порылась. Растояние от чипа до программатора 10-15 см. За последние 8 лет претензий к даташитам на пики не имею, все что написано, честно выполнялось , и как правило с запасом. A PICKIT2 с успехом выполняет функции автономного программатора для PIC.

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 13:46:18
shame
ICD2 фирменный пишет несколько секунд. Наверно в чемто другом собака порылась. Растояние от чипа до программатора 10-15 см. За последние 8 лет претензий к даташитам на пики не имею, все что написано, честно выполнялось , и как правило с запасом. A PICKIT2 с успехом выполняет функции автономного программатора для PIC
ExtraPIC пишет тот же пик 8,5 секунд. Расстояние от чипа до программатора 5 см. PICKIT2, возможно успешно выполняет свои фнкции, но он не выполняет МОИ функции, а именно прописывание серийного номера в коде и в EEPROM. Мои задачи такие: стереть чип, прошить общим кодом, данными, вычислить серийный номер, дописать куда надо. ales.
Иначе б я не заморачивался.

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 15:12:28
clawham
а зачем вам делать программный СПИ? не проще ли заюзать аппаратный? тем более мега8л - вы от 3.3 вольт работаете? а чем уровни согласовываете? что от меги до пика прямой проводник? или резюк какой есть?
дальше...может быть такой прикол что вы не жестко подтягиваете вывод к единице а используете пулап(сам так подорвался один раз - по привычке назначил выход ВХОДОМ....да..его тож можно как бы легонько приподнимать...и приопускать....но...скорости уже не те конечно :) хотя во многих случаях работать как бы будет...но типа не так устойчиво :)

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 15:39:09
shame
clawham писал(а):а зачем вам делать программный СПИ? не проще ли заюзать аппаратный?
Возможно и проще, но пики шьються не через SPI. Для PIC нужно DATA, CLK, Vpp (12v), Vdd (5v) и GND. АВРки имеют однонаправленные MOSI/MISO в отличии от двунаправленной DATA у PIC
clawham писал(а):тем более мега8л - вы от 3.3 вольт работаете? а чем уровни согласовываете? что от меги до пика прямой проводник? или резюк какой есть?
Стоит логика, да и никто не запрещает юзать мегу8л питая ее 5 вольтами, Почему именно такая мега? Да что попалось под руку, то и заюзал.
clawham писал(а):дальше...может быть такой прикол что вы не жестко подтягиваете вывод к единице а используете пулап(сам так подорвался один раз - по привычке назначил выход ВХОДОМ....да..его тож можно как бы легонько приподнимать...и приопускать....но...скорости уже не те конечно :) хотя во многих случаях работать как бы будет...но типа не так устойчиво :)
В общем то обмен данными идет нормально, читать и писать могу. Но мееееееееедленно :). Вместо 8 секунд обычным программатором все растягивается на 1мин и 20сек.

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 16:34:04
clawham
shame писал(а): Возможно и проще, но пики шьються не через SPI. Для PIC нужно DATA, CLK, Vpp (12v), Vdd (5v) и GND. АВРки имеют однонаправленные MOSI/MISO в отличии от двунаправленной DATA у PIC
никто Ж MOSI MISO не запретил замкнуть !!!
это удобней и даёт волю использовать так или эдак :)

Vpp Vdd GND можно и полевиками примитивнейшими рвать...первые - P канальными а землю N канальным :)
я люблю использовать встроенную периферию..она стабильные результаты даёт и проще в управлении...частоту выставил и вперед...

Ещё раз говорю....у мя был на СПИ посажен сдвиговый регистр....всё работало пол года исправно потом решил вя вцепить парралельно экранчик и хоп...всё заглохло....чё за байда долго думал...ломал голову искал ошибки в монтаже в проге ну везде...но никак не смотрел на инициализацию...
Мне кажется вовсе не в этом дело а или в неправильном тактовании МК или в неправильной инициализации ножек...АВРка на 16-ти мегагерцах запросто 8 мегагерц меандр выдаёт на шину и фронты чёткие как скала...даже не смотря на нагрузку в 8 входов и один 3.3 вольтовый экранчик через резюк 100 омм...работает железобетонно...на макс частоте спи....мега 32-16 PI

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Пн апр 26, 2010 16:41:52
shame
никто Ж MOSI MISO не запретил замкнуть !!!
Согласен. Если пройти по ссылке из первого поста, то там можно увидеть схему.
Vpp Vdd GND можно и полевиками примитивнейшими рвать...первые - P канальными а землю N канальным :)
Воистину! Оно вобщем то так и делается. Только землю рвать я не вижу смысла.


я люблю использовать встроенную периферию..она стабильные результаты даёт и проще в управлении...частоту выставил и вперед...
Ещё раз говорю....у мя был на СПИ посажен сдвиговый регистр....всё работало пол года исправно потом решил вя вцепить парралельно экранчик и хоп...всё заглохло....чё за байда долго думал...ломал голову искал ошибки в монтаже в проге ну везде...но никак не смотрел на инициализацию...
Инициализация была проверена в первую очередь. Фокус в том, что у меня не заглохло ничего, а именно замедленно все делается. Подозреваю, что микрочип недоговаривает о режимах программирования. Например сброс битов CP и CDP в вышеозначенном даташите просто отсутствовал. Методом тыка и ковыряния чужих исходников я таки в этом разобрался.
Мне кажется вовсе не в этом дело а или в неправильном тактовании МК или в неправильной инициализации ножек...
Что значит неправильное тактирование МК? Управляющий МК (то бишь мега8) тактируется кварцем 7,63сколько-то-там, фьюзы выставлены соответственно. Управляемы МК (то бишь ПИК) тактируется линией CLK с меги.

Re: Автономный программатор PIC. Подводная каменюка

Добавлено: Ср апр 28, 2010 08:29:02
shame
Граждане знающие, подскажите где найти характеристики LPT порта - нагрузочную способность, скорость смены уровней (с высокого на низкий и наоборот), и прочая, подозреваю что мега слишком слабо сажает линию на землю, и получается, что низкий уровень можно получить только подождав очень долго... Осциллографа к сожалению нет, а то б сам замерил скорости...