Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Родился
Сообщения: 1
Зарегистрирован: Вс фев 26, 2012 17:20:00

Сообщение Ильнур »

Добрый день уважаемые форумчане!,у меня к вам такой ворос,все ли контроллеры (микрочипы) нужно программировать? простите за глупый вопрос если он таковымявляется.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Не бывает глупых вопросов. Есть простые и сложные. В составе контроллера есть память. В нее заносится программа. Либо на предприятии-изготовителе, либо пользователем. Так что ответом на ваш вопрос является утверждение - все.
Docendo discimus
Контактная информация:
Реклама
Chettuser

Сообщение Chettuser »

Добавлю что бывают одноразовые и многоразовые (с буквой F у MICROCHIP).
Однако существовали, не знаю как сейчас, МК которые программировались на заводе - это уже узкоспециализированные и выпускались ограниченной партией.
Так что вопрос вполне нормальный.
Грызет канифоль
Аватара пользователя
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

Здраствуйте. Подскажите пожалуйста по такому вопросу. Есть мега8 и часики DS1307, пишу код в AVR Studio 5 и симулирую в PROTEUS 7.9. Так вот, дело в том что после запуска МК После инициализации портов и т.п. хочу выполнить запись в DS1307 настройку, в CONTROL регистр 0х10 (т.е. внешний такт 1Hz от ds1307), после чего делаю СТОП и сразу начинаю считывать с нулевой ячейки время. После чего время считывается каждую секунду. НО, настройку записывает, СТОП не выполняется, а данные начинают считыватся с последней ячейки т.е. 0х07 (Сontrol). Непойму в чем ошибка. :oops: Код ниже:

//-------------------Устанавливаем внешнюю генерацию на часах------------
twi_start_adress(DS1307_ID,TW_WRITE,TW_START);
twi_send_byte(CONTROL);
twi_send_byte(0x10);
STOP;
//-------------------Считываем время----------------------------------------------
DS1307_GetTime();


void DS1307_GetTime(void)
{
//-------------------Считывание времени и даты---------------------------
twi_start_adress(DS1307_ID,TW_WRITE,TW_START); //Не выполняется
twi_send_byte(0); //Не выполняется
twi_start_adress(DS1307_ID,TW_READ,TW_REP_START);
time[0] = twi_rec_byte(TWEA);
time[1] = twi_rec_byte(TWEA);
time[2] = twi_rec_byte(TWEA);
twi_rec_byte(TWEA);
time[3] = twi_rec_byte(TWEN);
STOP;
}
Вложения
1.png
(13.16 КБ) 319 скачиваний
Немного нервов и девайс готов
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 110
Зарегистрирован: Сб янв 08, 2011 12:56:03
Откуда: Москва

Сообщение канифоль »

собирал часики по этой статье http://kaligraf.narod.ru/kaligraf_narod_002.html с первого раза контроллер зашить правильно не удалось, пришлось стирать.. далее залил прошивку включаю часики показывают 9999. может я как то запорол контроллер? раньше имел дело с pic12f629 так там была константа из за нее у меня и не работал тогда девайс :)) а есть ли нечто подобное в этом мк?
Реклама
Chettuser

Сообщение Chettuser »

Очередной телепатический модуль летит в мусорку... :idea:
С прошивкой что делали?
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 260
Зарегистрирован: Ср фев 13, 2008 14:41:32
Откуда: Украина, Николаев

Сообщение Vergilium »

По поводу моего вопроса, никто ничего не посоветует? Может хотябы мыслей по этому поводу?
Немного нервов и девайс готов
Родился
Сообщения: 13
Зарегистрирован: Ср фев 29, 2012 19:21:08

Сообщение MorskoyZmey »

Поделитесь опытом, если не жалко^
Есть микросхемки памяти Atmel DataFlash с последовательным доступом по SPI, по типу AT45DB081D (8Mбит).
Валидно ли использовать такие, как хранилище звуковых файлов, если оные требуется воспроизводить по запросу без задержек?

Как мне показалось из ДШ, вроде как, перед чтением можно указывать страницу и смещение, т.е. ну практически RAM.
В чем же тут последовательность помимо того, что не нужно указывать адрес каждого блока и что интерфейс последовательный?

В чем я не прав? Оно дешевле всего остального в принципе. Меня волнует скорость и объем :))
Благодарю за внимание
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

MorskoyZmey, есть положительный опыт использования датафлэшь для хранения wav файлов. Из плюсов - действительно, нужно всего лишь указать начальный адрес и потом непрерывно читаешь. Весь код воспроизведения - около килобайта. Из минусов - неудобно заменять и закачивать в датафлэшь эти файлы. Пришлось писать отдельную прошивку и загонять через RS-232...
Но в целом свою цену оно оправдывает.
Контактная информация:
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

Доброй ночи. Хотелось бы узнать, какова относительная погрешность у ИОН AVR8? Конкретно интересует Atmega8. В даташите не нашел, хотя, может быть потому, что плохо искал. Если кто знает - пожалуйста, напишите.
Не умеешь - не берись, но не взявшись не научишься...
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Погрешность ИОН еще ладно. Там эту кривую еще выпрямлять надо. И подгонять. Все описано в даташите.
Docendo discimus
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Ср фев 29, 2012 19:21:08

Сообщение MorskoyZmey »

AI_Disable писал(а):MorskoyZmey, есть положительный опыт использования датафлэшь для хранения wav файлов. Из плюсов - действительно, нужно всего лишь указать начальный адрес и потом непрерывно читаешь. Весь код воспроизведения - около килобайта. Из минусов - неудобно заменять и закачивать в датафлэшь эти файлы. Пришлось писать отдельную прошивку и загонять через RS-232...
Но в целом свою цену оно оправдывает.
Благодарю. Вдохновляет.
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Хотелось бы узнать, какова относительная погрешность у ИОН AVR8?
Зависит от температуры. При чём сильно. Опыты проводили уже.
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

Arlleex
Для АТмега8А есть график "BANDGAP VOLTAGE vs. VCC", где-то на стр. 276, там эти графики для трех температур -40, +25, +85С. А опорное напряжение получается из этого Bandgap Voltage
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

А то, что опора может быть от 2,3 до 2,9 В все молчат...
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

Gudd-Head
Ну это да, читали, в даташитах. А что, и правда такой разброс, или перестраховываются, а реально все лучше? Сам не могу собрать статистику, по двум имеющимся у меня АТмега.
Друг Кота
Аватара пользователя
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

SmarTrunk писал(а):А что, и правда такой разброс, или перестраховываются, а реально все лучше?
Правда. Сам долго тупил, когда вместо ожидаемых 2,56 опора была примерно 2,7 В (Мега8).
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Грызет канифоль
Сообщения: 265
Зарегистрирован: Пн окт 27, 2008 22:55:45

Сообщение К.С.А »

Мне попадались мега8 с опорой 2,47 и 2,65 вольт
Родился
Сообщения: 11
Зарегистрирован: Чт янв 19, 2012 17:13:20

Сообщение dnhftm »

Всем привет
Итак усиленно изучаю Си и сами контроллеры АВР
задача такая есть контроллер атмега 16 использую пока встроенный кварц на 8 мегагерц
нужно сделать срабатывания Шим на 1 канал по будильнику
регулирование шим по DS18B20
используя разные примеры и библиотеки СВАВР написал
Часы-будильник с использованием переполнения по таймеру 0
с антидребезговой обработкой кнопок
вывод этого всего на экран
програмный Шим я ещё не добавлял но он есть ( может сделаю на таймере они ещё в запасе есть )
эмулирую в протеус
я могу сказать смело что протеус как то это дело не очень жалует
часы будильник работают нормально но как подключаю термодатчик протеус начинает тормозить часы
при нажатии на кнопки часы тоже чутка тормозят из-за антидребезга delay_ms
и наоборот отдельно термометр без часов работает отлично

вопрос в том что или у меня код получился кривой поэтому протеус не оценивает
или протеус тормозит тк на симуляции все работает медленно и на реальной плате может все будет работать

какие решения я придумал
1)максимально разгрузить процессор установив выносные часики на i2c
2)с термометром врятли я что то сделаю пусть живет на атмеге
3)настроить шим по таймеру


буду рад услышать идеи если кто подскажет как реализовать выносные часики на какойнибудть микрушке без календарика
идеи по реализации стабильной работы сего устройства
Встал на лапы
Сообщения: 128
Зарегистрирован: Пт сен 23, 2011 23:49:20
Откуда: Симферополь, Украина

Сообщение juzik »

А как Вы антидребезг реализовали? Походу в теле процедуры в цикле опрашиваете состояние кнопок? Если так, то это естевственно будет тупить.

Вынесете опрос в прерывание по таймеру. Предположим он у вас будет срабатывать 100 раз в сек (т.е. каждые 10мсек). Вариант до 8 кнопок:
1. Создаем массив из N байт, где N кол-во проверок (возьмем 10, можно и меньше)
2. При каждом прерывании записываем в очередную ячейку байт состояния кнопок
3. Если все N раз бит соотвествующей своей кнопке выставлен, значит она нажата.

Это существенно разгрузит основную логику работы программы, а поигравшись с параметрами можно настроить под свои нужды.

З.Ы. я сам недавно собрал часы+будильник+термометр+брометр+психрометр. Всё дело выводится на экран 128*32 (вроде). И всё на меге32, без внешних модулей.
Ответить

Вернуться в «Разные вопросы по МК»