| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Предварителен запис в PIC http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1500 |
Страница 1 от 2 |
| Автор: | velio [ Чет Дек 29, 2005 7:51 pm ] |
| Заглавие: | Предварителен запис в PIC |
Мисля, че някой беше писал по въпроса, ама пак ще питам. Начи купих си PIC16F874A-I/P, 16F872-I/SP и 12F675-I/P и тоя път за разнообразие реших да ги прочета първо, преди да ги записвам с каквото и да било. Първите два имаха записани само нули (за третия не съм сигурен) - така ли пристигат винаги? После - за 675 разбрах че трябва да се гледа калибрацията на осцилатора, преди да се изтрива процесора. Има ли някакви други информации предварително записани (за който и да е от трите)? ID и на трите изглеждаше изтрит (3FFF-3FFF...) Програматора ми е ProPIC2 |
|
| Автор: | VSU [ Чет Дек 29, 2005 10:46 pm ] |
| Заглавие: | |
Така пристигат пълни с 0000000000000 |
|
| Автор: | ДедоБоре [ Чет Дек 29, 2005 11:10 pm ] |
| Заглавие: | |
само за информация как в при AVR: калибровъчните константи са записани в отделен вид памет (подобно на флеша и ЕЕ) и не могат да се променят (или поне атмел не дават командите за това недостатък е, че тази памет е невидима от процесора при нормална работа. затова при програмиране трябва да се изчете и да се запише на някакво видимо място (флеш или ЕЕ), от което процесора след ресет да си я изчете и да я запише в регистъра на осцилатора. но предимството е, че можеш да правиш всякакви простотии с паметите на чипа без да изтриеш коефициентите. |
|
| Автор: | the_real_maniac [ Чет Дек 29, 2005 11:25 pm ] | |||||||||
| Заглавие: | ||||||||||
Според мен не е извън темата, даже е полезна информация |
||||||||||
| Автор: | Реконструктор [ Чет Дек 29, 2005 11:52 pm ] |
| Заглавие: | |
А какви са тези калибровачни константи? |
|
| Автор: | bateAz [ Пет Дек 30, 2005 12:00 am ] |
| Заглавие: | |
Не знам как са на AVR, Муторола има данни за: точната стойност на честотата на вградения RC генератор при три различни температури и две захранващи напрежения за 8 различни коефициена ( общо 48 числа ), точната стойност на VRef за три температури, точните стойности на праговете на Voltage Supervisor и още нещо - някъде към 180 байта беше. тези числа се записват в контролера след тест в завода и позволяват да се правят масови устройства без външни кварцови генератори и други скъпотии. |
|
| Автор: | ДедоБоре [ Пет Дек 30, 2005 12:16 am ] |
| Заглавие: | |
когато ползваш вътрешния осцилатор, си избираш някаква честота, напр. 4MHz. на осцилатора, през регистър, може да му се променя честотата в някакви малки граници за да докараш точно 4MHz, трябва да мериш честотата на оцилации и да сменяш стойностите в този регистър, докато постигнеш минимална грешка. това число ти е константата за тази честота. числата са няколко, в общия случай различни, защото имаш няколко варианта на честоти. понеже при производството нещата варират, производителя е любезен да свърши горната работата във фабриката. въпроса е къде да се запише константата. някои произовдители я записват в ЕЕ и може по невнимание да я изтриеш и тогава трябва да си я търсиш сам. някои микроконтролери при ресет си четат сами калибровъчните констатни в зависимост от избраната честота и си ги записват сами където трябва. ще допълня батето: кварцовете са едни от най-лесно дефектиращите чаркове при механично въздействие ОБАЧЕ използването на вътрешен осцилатор за стабилна тайм-база е немислимо. стига най-много за асинхронна комуникация и то на ниски скорости (<=19200, дори <=9600). ако се изисква точен тайминг си трябва кварц, няма начин. отделно, вътрешния осцилатор е доста нестабилен в температурния диапазор (все пак е достатъчно стабилен за работа на 9600 от 0 до +50). ако се мери температурата, може да се коригира константата софтуерно, ама не го виждам в ценово отношение (кварц+2 пина равни ли са на термистор+1 пин?) |
|
| Автор: | Реконструктор [ Пет Дек 30, 2005 12:32 am ] |
| Заглавие: | |
При AVR-а само тая константа ли е? |
|
| Автор: | bateAz [ Пет Дек 30, 2005 12:48 am ] |
| Заглавие: | |
Дедо Боре, обикновено се ползва термосензаора в кристала на контролера ( звучи много шик, ама всъщност става дума за един банален диод ). Неговите показания също са описани в константите. Така че не се губи нищо като хардурни ресурси. Считам, че това е добра практика на производителите. А за точността на вътрешния генератор си прав - става за асинхронна комуникация. Според мен независимо от скоростта. Става и за други неотговорни работи. За RTC определено не става. |
|
| Автор: | ДедоБоре [ Пет Дек 30, 2005 12:51 am ] |
| Заглавие: | |
скапах си линукската емулация и нямам акробат, та чета в една хартия за tiny. регистъра се казва OSCCAL, прочети какво пише за него. калибровачните байтове се четат с SPIS инструкция 00111000 хххххххх 000000bb в по-новите чипове, особено в тези за возила (ATmega48/88/168), може да има повече числа. потърси абе човека питаше как е при пиковете... взел си е една шепа чипове и иска малко да разтуши в къщи, щото му е писнало от армове. ние го емнахме - константи, температурни таблици... |
|
| Автор: | Predator_MF [ Пет Дек 30, 2005 1:59 pm ] | |||||||||
| Заглавие: | Re: Предварителен запис в PIC | |||||||||
Според мен имаш малък някакъв проблем с програматора, досега всички PIC които съм ползвал с OSCCAL винаги са били заводски програмирани. Ако случайно си затрил OSCCAL при писане или изтриване, напиши на адреса му RETLW <стойността>, при мене в 90% от случаите е 0х34C8 (RETLW C8) или нещо близко. В ID на процесорите нищо не трябва да пише, оставен е да си тъпчеш разни чексуми, в 12ките обаче нямаш достъп до ID от самия процесор, можеш да го четеш/пишеш само отвън. |
||||||||||
| Автор: | velio [ Пет Дек 30, 2005 8:02 pm ] |
| Заглавие: | |
12-ката се чете нормално - в смисъл има си константа някаква за осцилатора. Останалите байтове са нули. Абе нещо не мога да се сетя ама като че ли някой беше споменал, че ревизията на ПИК се записвала нейде извътре (щот на корпуса сигурно няма място |
|
| Автор: | Svetoslav40 [ Съб Дек 31, 2005 12:58 pm ] |
| Заглавие: | |
абе и според мен човека има проблем с програматора, още не ми се е случвало, нов ч4ип да доиде с 00000000. Ако не се лъжа, трябва да е с fffffffffffffff пълен....ИЛИ? А и ако затрие калибрациите, да прочете в описанието на чипа каде в паметта трябва да стоят, и просто да запише нняква стоиност, не помня то4но как беше, ама тоя "проблем" го имах вече са 12Ф509, и процесора си ба4ка...проблема идава, ако на чове4еца му трябва точност...там ве4е както спомена някои....тестване и променяне на константата която може да е от 00 до FF, нее много |
|
| Автор: | Predator_MF [ Пон Яну 02, 2006 4:32 pm ] |
| Заглавие: | |
Ами в 12-ките има едно Device-ID интересно що не мога да го намеря в момента в PDF-a, сигурно е заради онез бутилки алкохол дето стоят на масата ми от снощи |
|
| Автор: | Цецо [ Вто Яну 03, 2006 10:26 am ] |
| Заглавие: | |
заводското ID е нейде около конфиг байтовете. Има го, представлява индентификационен байт за типа процесор + ревизия. |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|