| Автор |
Съобщение |
|
velio
Ранг: Форумен бог
Регистриран на: Вто Юни 07, 2005 6:20 pm Мнения: 3532
|
 Предварителен запис в PIC
Мисля, че някой беше писал по въпроса, ама пак ще питам.
Начи купих си PIC16F874A-I/P, 16F872-I/SP и 12F675-I/P и тоя път за разнообразие реших да ги прочета първо, преди да ги записвам с каквото и да било. Първите два имаха записани само нули (за третия не съм сигурен) - така ли пристигат винаги?
После - за 675 разбрах че трябва да се гледа калибрацията на осцилатора, преди да се изтрива процесора. Има ли някакви други информации предварително записани (за който и да е от трите)?
ID и на трите изглеждаше изтрит (3FFF-3FFF...)
Програматора ми е ProPIC2  , самоделка
|
| Чет Дек 29, 2005 7:51 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Така пристигат пълни с 0000000000000
|
| Чет Дек 29, 2005 10:46 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
само за информация как в при AVR:
калибровъчните константи са записани в отделен вид памет (подобно на флеша и ЕЕ) и не могат да се променят (или поне атмел не дават командите за това  )
недостатък е, че тази памет е невидима от процесора при нормална работа. затова при програмиране трябва да се изчете и да се запише на някакво видимо място (флеш или ЕЕ), от което процесора след ресет да си я изчете и да я запише в регистъра на осцилатора. но предимството е, че можеш да правиш всякакви простотии с паметите на чипа без да изтриеш коефициентите.
|
| Чет Дек 29, 2005 11:10 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Според мен не е извън темата, даже е полезна информация  , особено за хора "не виждали" AVR 
|
| Чет Дек 29, 2005 11:25 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
А какви са тези калибровачни константи?
|
| Чет Дек 29, 2005 11:52 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Не знам как са на AVR, Муторола има данни за: точната стойност на честотата на вградения RC генератор при три различни температури и две захранващи напрежения за 8 различни коефициена ( общо 48 числа ), точната стойност на VRef за три температури, точните стойности на праговете на Voltage Supervisor и още нещо - някъде към 180 байта беше. тези числа се записват в контролера след тест в завода и позволяват да се правят масови устройства без външни кварцови генератори и други скъпотии.
|
| Пет Дек 30, 2005 12:00 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 не очаквах точно ти да питаш...
когато ползваш вътрешния осцилатор, си избираш някаква честота, напр. 4MHz.
на осцилатора, през регистър, може да му се променя честотата в някакви малки граници
за да докараш точно 4MHz, трябва да мериш честотата на оцилации и да сменяш стойностите в този регистър, докато постигнеш минимална грешка. това число ти е константата за тази честота. числата са няколко, в общия случай различни, защото имаш няколко варианта на честоти.
понеже при производството нещата варират, производителя е любезен да свърши горната работата във фабриката. въпроса е къде да се запише константата. някои произовдители я записват в ЕЕ и може по невнимание да я изтриеш и тогава трябва да си я търсиш сам.
някои микроконтролери при ресет си четат сами калибровъчните констатни в зависимост от избраната честота и си ги записват сами където трябва.
ще допълня батето:
кварцовете са едни от най-лесно дефектиращите чаркове при механично въздействие
ОБАЧЕ
използването на вътрешен осцилатор за стабилна тайм-база е немислимо. стига най-много за асинхронна комуникация и то на ниски скорости (<=19200, дори <=9600). ако се изисква точен тайминг си трябва кварц, няма начин. отделно, вътрешния осцилатор е доста нестабилен в температурния диапазор (все пак е достатъчно стабилен за работа на 9600 от 0 до +50). ако се мери температурата, може да се коригира константата софтуерно, ама не го виждам в ценово отношение (кварц+2 пина равни ли са на термистор+1 пин?)
|
| Пет Дек 30, 2005 12:16 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
При AVR-а само тая константа ли е?
|
| Пет Дек 30, 2005 12:32 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Дедо Боре, обикновено се ползва термосензаора в кристала на контролера ( звучи много шик, ама всъщност става дума за един банален диод ). Неговите показания също са описани в константите. Така че не се губи нищо като хардурни ресурси.
Считам, че това е добра практика на производителите. А за точността на вътрешния генератор си прав - става за асинхронна комуникация. Според мен независимо от скоростта. Става и за други неотговорни работи. За RTC определено не става.
|
| Пет Дек 30, 2005 12:48 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
скапах си линукската емулация и нямам акробат, та чета в една хартия за tiny.
регистъра се казва OSCCAL, прочети какво пише за него.
калибровачните байтове се четат с SPIS инструкция 00111000 хххххххх 000000bb
в по-новите чипове, особено в тези за возила (ATmega48/88/168), може да има повече числа. потърси
абе човека питаше как е при пиковете...
взел си е една шепа чипове и иска малко да разтуши в къщи, щото му е писнало от армове.
ние го емнахме - константи, температурни таблици...
|
| Пет Дек 30, 2005 12:51 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
 Re: Предварителен запис в PIC
 |  |  |  | ex-man написа: Мисля, че някой беше писал по въпроса, ама пак ще питам. Начи купих си PIC16F874A-I/P, 16F872-I/SP и 12F675-I/P и тоя път за разнообразие реших да ги прочета първо, преди да ги записвам с каквото и да било. Първите два имаха записани само нули (за третия не съм сигурен) - така ли пристигат винаги? После - за 675 разбрах че трябва да се гледа калибрацията на осцилатора, преди да се изтрива процесора. Има ли някакви други информации предварително записани (за който и да е от трите)? ID и на трите изглеждаше изтрит (3FFF-3FFF...) Програматора ми е ProPIC2  , самоделка |  |  |  |  |
Според мен имаш малък някакъв проблем с програматора, досега всички PIC които съм ползвал с OSCCAL винаги са били заводски програмирани. Ако случайно си затрил OSCCAL при писане или изтриване, напиши на адреса му RETLW <стойността>, при мене в 90% от случаите е 0х34C8 (RETLW C8) или нещо близко. В ID на процесорите нищо не трябва да пише, оставен е да си тъпчеш разни чексуми, в 12ките обаче нямаш достъп до ID от самия процесор, можеш да го четеш/пишеш само отвън.
|
| Пет Дек 30, 2005 1:59 pm |
|
 |
|
velio
Ранг: Форумен бог
Регистриран на: Вто Юни 07, 2005 6:20 pm Мнения: 3532
|
12-ката се чете нормално - в смисъл има си константа някаква за осцилатора. Останалите байтове са нули.
Абе нещо не мога да се сетя ама като че ли някой беше споменал, че ревизията на ПИК се записвала нейде извътре (щот на корпуса сигурно няма място  ) или се бъркам...
|
| Пет Дек 30, 2005 8:02 pm |
|
 |
|
Svetoslav40
Ранг: Минаващ
Регистриран на: Съб Сеп 17, 2005 11:12 pm Мнения: 95 Местоположение: Shumen
|
абе и според мен човека има проблем с програматора, още не ми се е случвало, нов ч4ип да доиде с 00000000. Ако не се лъжа, трябва да е с fffffffffffffff пълен....ИЛИ? А и ако затрие калибрациите, да прочете в описанието на чипа каде в паметта трябва да стоят, и просто да запише нняква стоиност, не помня то4но как беше, ама тоя "проблем" го имах вече са 12Ф509, и процесора си ба4ка...проблема идава, ако на чове4еца му трябва точност...там ве4е както спомена някои....тестване и променяне на константата която може да е от 00 до FF, нее много 
|
| Съб Дек 31, 2005 12:58 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами в 12-ките има едно Device-ID интересно що не мога да го намеря в момента в PDF-a, сигурно е заради онез бутилки алкохол дето стоят на масата ми от снощи  Но такова ID със сигурност има, доказателството, WinPIC800 разпознава PIC12F675, 683, 629 и други които сложа на цокъла 
|
| Пон Яну 02, 2006 4:32 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
заводското ID е нейде около конфиг байтовете. Има го, представлява индентификационен байт за типа процесор + ревизия.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Вто Яну 03, 2006 10:26 am |
|
|