Микроконтроллеры AVR - применение и Краткий Курс - часть 9

 
1 41 42 43 44 45 46 47
RU termostat #21.05.2007 17:46
+
-
edit
 
UA gora_electric #22.05.2007 10:09  @termostat#21.05.2007 17:46
+
-
edit
 

gora_electric

новичок
termostat> Вроде написано 16 раз скачано...
termostat> Вот для вас положил - http://slil.ru/24399013


Все ОК !!! Спасибо !!!
 

kirya

втянувшийся

Надо померить частоту меандра до 13МГц. Какой лучше использовать АВР? Есть ли примеры?
www.kirov-rockets.ru  
RU termostat #22.05.2007 13:13
+
-
edit
 

termostat

аксакал

Тут наверно PIC лучше попробовать. У него внешняя чаастота на таймер может быть гораздо выше его частоты. А у АВР не менее чем 2 раза ниже должна быть.

Алгоритм простой - запускаешь один таймер для отсчета интервала времени, а другой таймер считает измеряемый меандр. Затем по количеству "тиков" за время вычисляешь частоту.

Вот по PIC для начинающих - roboforum.ru/viewtopic.htm?p=30212#30212
Это сообщение редактировалось 22.05.2007 в 13:21
RU termostat #22.05.2007 13:48
+
-
edit
 

termostat

аксакал

BASCOM опубликовал новый апноут - калькулятор таймера lm555 на микроконтроллере 8051

AN42 - 555 calculator using at89S8252

MCS Electronics

MCS Electronics - BASCOM AVR/8051 Embedded electronics systems

// www.mcselec.com
 
+
-
edit
 

MartKot

втянувшийся

Вопрос к Термостату. В задачке курса AVR 123 №7 – использование флэш памяти AT45DB161, применяется микросхема в 28pin корпусе, имеющая вывод готовности Ready/Busy. В 8pin корпусе у AT45DB161D-SU, он отсутсвует.
Что делать в программе, игнорировать его или пытаться отследить программно?
В ДШ что-то ясного по этому поводу я не нашёл… :( Уже нашёл, на
=========

Часто задаваемые вопросы по DataFlash

Справочные данные - электронные компоненты, описания микросхем, жк дисплеи, микроэлектроника

// www.gaw.ru
 

Вопрос: Я не смог найти вывод RDY/BUSY/ у микросхем в 8-выводных корпусах. Как можно иначе проверить состояние RDY/BUSY у таких микросхем?
A:Вывод RDY/BUSY/ отсутствует у микросхем, выпускаемых в 8-выводных корпусах SOIC, CASON и MLF. Пользователь может использовать 7-ой разряд регистра статуса для проверки состояния RDY/BUSY (готов/занят) в процессе программирования или стирания. Равенство 7-ого разряда 1 означает незанятость микросхемы и готовность принять следующую команду. Равенство этого бита 0 означает нахождение микросхемы в состоянии "занято".


Осталось подумать как это отследить программно??????
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
Это сообщение редактировалось 02.06.2007 в 20:08
RU termostat #03.06.2007 11:21
+
-
edit
 

termostat

аксакал

Самое простое использовать паузы гарантирующие исполнение команд и не проверять этот бит вообще - я так не пробовал, но наверно должно работать.
+
-
edit
 

MartKot

втянувшийся

Я тоже так подумал, да и процесс обработки данных в БРЭО это позволяет. Хотя, мне как «первокласснику» в освоении AVR это интересно, будет время, обязательно покопаю. Yuran в проекте “saturn-m’ для 45DB161D-SU использует этот опкод Staus Register Read D7H, для чтения 7 бита Ready/Busy регистра состояния.
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  

Yuran

опытный

MartKot>.. Yuran в проекте “saturn-m’ для 45DB161D-SU использует этот опкод Staus Register Read D7H, для чтения 7 бита Ready/Busy регистра состояния.

Ну регистр действительно считывается, но только для одной цели - проверки, что флеш подключен (а также определения "типа" флеши 2 или 4 Мб). Просто в предыдущей версии БРЭО, флеш был на отдельной плате, и возможность "плохих" контактов была на порядок больше, нежели сейчас, когда всё на одной плате. При записи я также использую просто задержки по времени, точнее критерий один - время прожига данных из заполненного буфера в память флеши должно быть меньше времени заполенния другого буфера.
 
UA gora_electric #06.06.2007 14:51
+
-
edit
 

gora_electric

новичок
Всем добрый ден !!!
Вопрос - У меня есть переменная unsigned long F= 1000000
она меняется в процессе программы а когда выключаю и включаю
то она та что была по умолчанию. как написать процедуру по записи
во внутр. eeprom и по включению вызывать ее оттуда ?

Спасибо !!!
 
RU termostat #06.06.2007 15:07
+
-
edit
 

termostat

аксакал

avr123.nm.ru/05a.htm - периодически сохранять ее в переменной обявленой со словом "eeprom"

только у еепром количество перезаписей большое но конечное.
UA gora_electric #06.06.2007 16:01  @termostat#06.06.2007 15:07
+
-
edit
 

gora_electric

новичок
termostat> avr123.nm.ru/05a.htm - периодически сохранять ее в переменной обявленой со словом "eeprom"
termostat> только у еепром количество перезаписей большое но конечное.


тогда лучше наверное припарить отдельную мсх памяти?
 
RU termostat #06.06.2007 19:14
+
-
edit
 
RU termostat #06.06.2007 20:17
+
-
edit
 
UA gora_electric #07.06.2007 10:10  @termostat#06.06.2007 20:17
+
-
edit
 

gora_electric

новичок
termostat> А вот EEPROM ATtiny2313 протестировали "грубо"
termostat> telesys.ru/wwwboards/mcontrol/1697/messages/99908.shtml
termostat> 6 500 000 записей до первой ошибки.

ОГО !!! тода попробую пока без внешней памяти
Спасибо за участие !
 
+
-
edit
 

MartKot

втянувшийся

Ещё немного про флэшку 45DB161D-SU. На «их» сайте (AVR) в ноуте doc1456.pdf и в avr335, листинг из pdf убрали, а ошибку так и не исправили, наверно Termostata не читали (это про буфер 528 – 527). Попытался написать «проверятор» для 7бита регистра статуса флэшки, в симуляторе Studio вроде работает, в «железе» не кочет…
//====================================
FLASH_CS = 0; // enable DataFlash
SPCR = 0x5C; // включить SPI(если выключен), для проверки готовности флэши
line1: SPDR = 0xD7;
while (!SPSR.7); //ожидание конца передачи опкода по SPI происходит на 8 такт
while (!SPDR.7) {goto line1;}; // 7бит=1 ожидание готовности флэши на 8 такт
//====================================
Вот, опять «изобрёл велосипед»… Протестировав память 45DB161D-SU по «хайдеру» at45d161.h написанным Termostatom, пришёл к выводу, что программный опрос состояния «занят-готов» не оптимален. Для «D» версии немного изменился опкод, хотя, работает и старый, но «АТ» не рекомендует его в новых разработках.
/#define BUFFER_1_READ 0x54 // buffer 1 read, для 45DB161 0x54
//#define BUFFER_2_READ 0x56 // buffer 2 read, для 45DB161 0x56
#define BUFFER_1_READ 0xD4 // buffer 1 read, для 45DB161D
#define BUFFER_2_READ 0xD6 // buffer 2 read, для 45DB161D
//#define MAIN_MEMORY_PAGE_READ 0x52 // main memory page readm,для 45DB161 0x52
#define MAIN_MEMORY_PAGE_READ 0xD2 // main memory page read, для 45DB161D
#define STATUS_REGISTER 0xD7
//(0x57-для 45DB161) DataFlash status register for reading density, compare status,and ready/busy status//
Программный опрос состояния 45DB161D в связке с Mega16/8MHz (SPI-2MHz) составляет – посылка опкода 8 тактов SPI = 4msec, анализ состояния 7 бита и конца передачи ещё такт. Время тратится много. В некоторых операциях оно даже излишне, как например по ДШ для 45DB161D “Page to Buffer Transfer(Compare) Taime”- 400мксек.
Реально получились такие значения:
Для «BLOCK erasing» = 45 мсек, ниже 43 –42 стирает с ошибками – пропускает некоторые страницы, по ДШ от 45 до 100 мсек;
write_to_flash = 0,5 мсек (500мксек) – работает без ошибок, конечно это экстремальный , по ДШ “Page Programming Time” от 3 до 6 мсек.
Очистку памяти перед стартом можно и задрать до 50 –100мсек как по ДШ (допустим, включение питания или reset), а дальше по времени даже выигрываем, чем посылка и обработка опкода.
Я тут маленько изменил at45d161.h в at45d161D.h на Меге16-8МГц/SPI- 2МГц пробовал для AT45DB161D-SU, то что менял я закомментировал. Просьба Termostata не бить меня по мяукалке…:)
Прикреплённые файлы:
 
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
Это сообщение редактировалось 13.06.2007 в 23:47
UA gora_electric #26.06.2007 10:42
+
-
edit
 

gora_electric

новичок
Всем Бодрого Утра !!!
кто подскажет, как подключить два и более авр-а между собой по 1-wire, чтобы один
главный опрашивал другие авр-ки а те в свою очередь смотрели за датчиками, т.е.
связь с удаленными устройствами (50-100 м) всего тянуть 2 провода а не к каждому
устройству ? Сорри за сумбурность вопроса.
 

pokos

аксакал

Я бы не парился, сделал бы через последовательный порт интерфейсом RS-485. Это если гальваническая развязка не нужна.
Есть такие зачотные микросхемки ADM485 (ADM1485) оченно годятся для этих целей.
 
UA gora_electric #27.06.2007 16:58
+
-
edit
 

gora_electric

новичок
Кто подскажет, почему CVAVR не поддерживает АТини 15 ? Или я ошибаюсь ?
Если нет то как для нее писать на СИ ? (Просто корпус dip8 уж очень подходящий)
 
RU termostat #27.06.2007 17:19
+
-
edit
 

termostat

аксакал

в ней оперативка отсутствует.

Используй тини13. Симулятор для нее "Онхонсофт" в низу avr123.nm.ru


Для тини без оперативки есть специальная версия компилятора ICC imagecraft.com
RU termostat #13.07.2007 11:41
+
-
edit
 

termostat

аксакал

kazus.ru/forum/topics/7963.html

Новейший Proteus 7.1 SP4 - много новых моделей и исправленией !

Главное модель маленького 8-ного ATtiny13 ТЕПЕРЬ РАБОТАЕТ !!! я проверил.

В прошлой версии она уже была но глючная.
+
-
edit
 

MartKot

втянувшийся

А кто, какими, алгоритмами для детекта снижения пользуется? А то у меня от дуноения ветра, контрольный светодиод моргать начинает:(
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
RU termostat #27.07.2007 00:51
+
-
edit
 

termostat

аксакал

Нужно гистерезис вводить - "мертвую зону". ширина этой зоны будет определять максимально переносимую величину помех и "вибраций".
RU MartKot #29.07.2007 22:15  @termostat#27.07.2007 00:51
+
-
edit
 

MartKot

втянувшийся

termostat> Нужно гистерезис вводить - "мертвую зону". ширина этой зоны будет определять максимально переносимую величину помех и "вибраций".

OK!
Дописал програмку АЦП для измерения давления и ускорения с алгоритмом детекта спуска.
Подробное описание внутри исходника файла adc.c Для моделирования работы в VMLab файл vmlab.prj //Странно, прикреплённый файл исчез.., какой-то глюк, теперь их 2 появилось, один удалять надо...
Где лучше размещать команду чтение данных с АЦП: в прерывании "АЦП заверно" или в самой программе, после флага АЦП?
Прикреплённые файлы:
ADC.rar (скачать) [25 кБ]
 
 
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
Это сообщение редактировалось 30.07.2007 в 08:50
AD Реклама Google — средство выживания форумов :)
RU termostat #04.08.2007 14:44
+
-
edit
 
1 41 42 43 44 45 46 47

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru