![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
![](https://electronix.ru/forum/uploads/set_resources_23/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
VladimirYU
-
Постов
426 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные VladimirYU
-
-
В опциях проекта выходной формат стоит ubrof8. установка intel-extended не влияет.
Повлияет, если есть инициализируемые переменные в ЕЕПРОМ, тогда на выходе будет два HEX файла. Прошивка для флэш и для ЕЕПРОМ.
Например:
int __eeprom val = 0x1234;
-
В опциях проекта выходной формат Intel-extended не забыть поставить.
-
Я предложила перейти на новую версию, главным образом, потому, что она "сертифицирована" на работу под Windows 7. И такой подход вполне разумен, когда переходишь на новую операционную систему.
Вот, положим, вы лично написали прогу для какого-то МК. Готовы ли вы гарантировать, что она заработает на тех МК, которые выйдут спустя полтора года, с даташитами, которых вы никогда не видели?
Нет, к сожалению, ничего вечного. С Ксенией полностью согласен
-
Тактовая частота должна быть кратна скорости обмена по UART.
Есть в ДШ табличка с ошибками.
U2X = 0 и UBRR=0 должно ровняться скорости 1М
А если включить перемычку TX + RX в USB to UART Bridge с поддержкой USB 2.0 то нормально работает?
Приммер инициализации USART1 для м128 на 1МГц, работает без ошибок, кварц 16МГц
//------------ Инициализация USART1 ----------------------- void MonitorUART :: InitUSART1 (ULONG baudrate, char frame, char stopbits ) { UCSR1B = (1<<RXEN1)|(1<<TXEN1); // Количество стоп битов if ( stopbits == 1) UCSR1C &= ~(1<<USBS1); // 1 bit else UCSR1C |= (1<<USBS1); //2 bit //Устанавливаем фрэйм UCSR1B &= ~(1<<UCSZ12); char tmp = 0; switch (frame) { case 5: tmp = ~(1<<UCSZ10); tmp &= ~(1<<UCSZ11); UCSR1C = tmp; break; case 6: tmp |= (1<<UCSZ10); tmp &= ~(1<<UCSZ11); UCSR1C = tmp; break; case 7: tmp |= (1<<UCSZ11); tmp &= ~(1<<UCSZ10); UCSR1C = tmp; break; case 8: UCSR1C |= (1<<UCSZ10)|(1<<UCSZ11); break; default: UCSR1C |= (1<<UCSZ10)|(1<<UCSZ11); break; } // Скорость обмена UINT ubrr = CPU_F_Hz/ ( 16UL*baudrate) -1; UBRR1L = (char) ubrr; UBRR1H = ubrr>>8; // Разрешаем прерывания RxcIntEnable (); TxcIntEnable (); }
-
только один файл?а все осталные?
В папке firmware лежат исходные тексты проекта, состоящего из нескольких файлов на ассемблере, для Вашей тиньки и загружаемый файл ldp.hex. Прошивать следует именно его.
-
another_one
А почему нельзя сразу частоту таймера поделить на 1.66 при измерении?
Значение таймера будет уже готовое для использования.
Начнем с того, что тем способом, о котором Вы писали, Вы измеряете не частоту, а период.
А относительно того, как действовать дальше Вам достаточно подробно ответили. Ибо других
подробностей Вашей задачи нам неизвестно.
-
Опубликовано · Изменено пользователем rezident
Нарушение п.3.4 Правил форума. · ПожаловатьсяТогда получается "магическое" число 39480 (39480/65536=0,602417). Исходное 16-и разрядное число умножаем на 39480, а затем делаем сдвиг результата умножения вправо на 16 разрядов.Кстати тема "магических" чисел уже, кажется, звучала на сахаре. Может автору топика будет полезно там покопаться
-
Дохлый номер. JTAGICE (клоном которого и является Olimex) не поддерживает ATmega644P. Отладчик IAR ругается, говорит не поддерживаемое устройство.
В общем это и ожидалось, совет defunct единственный в Вашем случае выход.
-
Olimex по незнанию :( JTAG выбирал чтобы была возможность отладки. При работе с IAR+ARM+JLINK всё прекрасно получалось. Захотелось и с AVR чего-то похожего, но поспешил. И, по незнанию, взял Olimex. Видимо, всё же куплю JTAGICE MkII, но это процесс долгий, пока закажу, пока пришлют. А начинать пробовать нужно уже сейчас.
Локбиты читаются как 0xFF, т.е. не залочены. Да и вряд-ли чистая микросхема с завода будет залоченной. Пробовал другой чип, правда, из той же партии - ведет себя аналогично.
Попробуйте из отладчика EWAVR IAR только врсия должна поддерживать м644.
-
Кстати, да. Что по умолчанию во FLASH зашито? Из EEPROM читаются FF а из FLASH 00 (или это оно так не читается).
Из флэш тоже должно из чистого кристалла 0xFF читаться. А почему на Olimex потянуло, отлаживать все равно не сможете? Любой AVR-программатор решит Ваши проблемы. Второе, не залочен ли случаем Ваш МК?
-
Есть в наличии клон JTAGICE (Olimex AVR USB JTAG) и чип ATmega644P (20PU). То, что отлаживать не получится я уже понял :( Но у меня не получается и прошить.
Сигнатура, фьюзы, локбиты читаются и пишутся. EEPROM читается и пишется. А вот FLASH не получается.
Пытаюсь использовать AVRStudio 4.18 Build 692. Файл прожовывает, пишет что записало OK, но при верификации читает из FLASH нули, кторые там до этого и были.
Что я упустил, куда копать?
Странно, что нули, а не 0xFF. У меня а м64 проблем не было.
-
nullakilla
Так как все же разрешилась Ваша проблема?
-
Если не нужна высокая точность, можно измеряемые сигналы проШИМить далее оптопары фильтр и АЦП.
-
Watchdog отключи.
Или наоборот вставь в цикл сброс собаки.
-
имхо - проверить питание да ресет, ну если на линиях спи что еще висит, то и их ессно...
Спасибо всем, проблема была в том что цепь питания 5В на STK200 была реализована через самовостанавливающийся предохранитель, который через определенное время подогревался у увеличивал сопроттивление. Этого хватало чтобы режим программирования сбивался. Закоротил его и все стало на место.
-
Может она откликается, покуда конденсаторы питания держат? С питанием всё в порядке?
Вроде да, но еще осциллом посмотрю.
-
Сталкивался кто-нибудь с таким эффектом. Имеется прибор на основе меги 128. Включаю питание пытаюсь зашить фузы и рабочую программу. Нескоько секунд мега откликается на программатор, а потом отькликаться перестает. Выключаю питание, вклаю снова то же самое. Программатор STK200 программа PONYPROG и Avreal эффект один и тот же. Прибор отлаженный, серийный.
-
сори, просто я с украины и общаюсь на укр языке. А с чего именно видно что у меня такой акцент?
Сейчас не видно
а апноуты все же посмотрите, там был вариант лоадера под мегу 16, если память мне не изменяет.
-
struct TItem { .......... }; const TItem Item { ................... };
-
Не зря для надёжного (пере)запуска МК по питанию супервизоры рекомендуют.
Но почему то на них все экономят, а потом преодолевают возникающие проблемы.
-
n+1) понятие обратной связи и устойчивости.
-
Могу предположить, что проблема с ресетом по питанию. При записи/чтении программатором ресет формируется программатором и все работает. При включении питания ресет собственный и имеем проблемы.
Включите фузы отвечающие за BOD или/и поставьте внешний супервизор.
-
Дык а что мешает измерить это смещение при замкнутых входах и вычесть при нормальном измерении?
Для этого собственно и есть такая возможность входного мультиплексора.
Только это придется делать при каждом измерении, т.к. если я правильно понял смещение плавает.
-
Помогите пожалуйста! С чего начать?Нужен синхронный преобразователь величины тока в ШИМ.
А что Вы вкладываете в понятие синхронный, какой ток? Постоянный или переменный, какой диапазон величин. Слишком эмоционально, но конкретики не достаточно.
ATMega16-16AU прошивается только один раз
в MCS51, AVR, PIC, STM8, 8bit
Опубликовано · Пожаловаться
Была похожая ситуация, попались бракованные кварцы. По умолчанию МК работает от внутреннего RC генератора, как только перешивали фузы на работу с внешним кварцем происходил кирдык, так как кварц не запускался.