simer 0 11 ноября, 2009 Опубликовано 11 ноября, 2009 · Жалоба Petka, а когда планируется выход новой версии прошивки? Можно туда добавить мигание светодиодом при активности? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 11 ноября, 2009 Опубликовано 11 ноября, 2009 · Жалоба Petka, а когда планируется выход новой версии прошивки? Можно туда добавить мигание светодиодом при активности? 1) На днях появится прошивка с новой фичей, сейчас занимаюсь её отладкой. 2) Можно. А зачем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simer 0 11 ноября, 2009 Опубликовано 11 ноября, 2009 (изменено) · Жалоба ... 2) Можно. А зачем? Ну для наглядности что-ли :) все равно светодиод есть уже. Глазу приятнее и видно что прошивается :) Кстати, для диагностики удобнее будет сделать мигание при активности MISO, тем что если камень дохлый мигать не будет ничего. P.S. А название фичи в новой прошивке секрет пока? :) Изменено 11 ноября, 2009 пользователем simer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 11 ноября, 2009 Опубликовано 11 ноября, 2009 · Жалоба Глазу приятнее и видно что прошивается :) А программа-программатор не наглядно показывает, программируется или нет? P.S. А название фичи в новой прошивке секрет пока? :) Терпение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kokaradik 0 12 ноября, 2009 Опубликовано 12 ноября, 2009 · Жалоба собрал, зашил прогер, перемычку перекинул. при включении мигает, при подключении камня - горит диод. но понипрог не хочет видеть:( ошибк 24 помогите плиз:( я новичок :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
simer 0 12 ноября, 2009 Опубликовано 12 ноября, 2009 · Жалоба собрал, зашил прогер, перемычку перекинул. при включении мигает, при подключении камня - горит диод. но понипрог не хочет видеть:( ошибк 24 помогите плиз:( я новичок :rolleyes: PonyProg не поддерживает этот программатор для прошивки таргета Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kokaradik 0 12 ноября, 2009 Опубликовано 12 ноября, 2009 · Жалоба все работает и очень быстро! спасибо, Petka!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IURY 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 (изменено) · Жалоба Подскажите, как надо правильно? Я развел свою платку и изменил расположение сигналов в порту C контроллера. Изменил выводы в analog.h и spi.h, а также контроллер и частоту в Makefile. После компиляции получаю ошибку: Compiling C: main.c avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=7372800UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main.o In file included from main.c:13: timeout.h:12:1: warning: "F_CPU" redefined <command-line>: warning: this is the location of the previous definition main.c:816:1: error: macro "_cpl" requires 3 arguments, but only 2 given main.c: In function '__vector_9': main.c:816: error: '_cpl' undeclared (first use in this function) main.c:816: error: (Each undeclared identifier is reported only once main.c:816: error: for each function it appears in.) make.exe: *** [main.o] Error 1 Изменено 13 ноября, 2009 пользователем IURY Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 · Жалоба Подскажите, как надо правильно? main.c:816:1: error: macro "_cpl" requires 3 arguments, but only 2 given main.c: In function '__vector_9': main.c:816: error: '_cpl' undeclared (first use in this function) где-то ошиблись в описании портов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IURY 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 · Жалоба где-то ошиблись в описании портов. Если я выбираю atmega48, то компиляция успешна. Обозначил(в исходниках ничего не трогал, кроме контроллера и частоты) : PC5 - mosi PC4 - rst_adc PC3 - target_rst PC2 - miso PC1 - sck Atmega8 7372800 Hz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
кт315 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 · Жалоба собрал ваш программатор на FT232BL и атмеге8. Атмегу прошил другим программатором от протоса. приподаче питания моргает, при подлючении камня загорается светодиод. На выходе 1 мГц не наблюдаю ни какой частоты. Она должна там присутствовать всё время? У протоса она там присутствует всё время, как тест правильной работы. И естественно соде вижен его не видит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 · Жалоба Если я выбираю atmega48, то компиляция успешна. Обозначил(в исходниках ничего не трогал, кроме контроллера и частоты) : PC5 - mosi PC4 - rst_adc PC3 - target_rst PC2 - miso PC1 - sck Atmega8 7372800 Hz запакуйте zip'ом исходники, и выкладывайте сюда, посмотрю что там не собирается. ...приподаче питания моргает, при подлючении камня загорается светодиод. На выходе 1 мГц не наблюдаю ни какой частоты. Она должна там присутствовать всё время? Нет, частота там присутствует только в режие "1MHz" по умолчанию программатор работает в режиме "fast". И естественно соде вижен его не видит. Ничего естественного. При правильной сборке программатор работает сразу. Пробовали заходить терминалкой на порт программатора (как написано в FAQ)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IURY 0 14 ноября, 2009 Опубликовано 14 ноября, 2009 · Жалоба запакуйте zip'ом исходники, и выкладывайте сюда, посмотрю что там не собирается. Выкладываю исходники, которые компилировал. source.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 14 ноября, 2009 Опубликовано 14 ноября, 2009 · Жалоба Выкладываю исходники, которые компилировал. Ваша правда. Моя недоработка. Обновите файл "gpio.h" gpio.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 15 ноября, 2009 Опубликовано 15 ноября, 2009 · Жалоба Доброго времени суток! После продолжительной работы выкладываю на общее обсуждение следующую версию прошивки программатора. Основное и единственное отличие новой версии - поддержка "printf - отладки". Что это такое? При отладке программ зачастую необходимо знать, в какой стадии выполнения находится программа. Закончила ли подпрограмма вычисления или нет? Чему равно значение некоторой внутренней переменной? В каком порядке выполняются составные части алгоритма и прочие задачи. Большую часть этих задач позволяет решить аппаратный отладчик. Однако не у всех есть возможность использования аппаратных отладчиков. Цена, дополнительные разъёмы, программная поддержка отладчика, неудобство или неумение использования - всё это может препятствовать использованию аппаратных отладчиков. Что предлагается взамен? Многие в качестве альтернативы используют для отладки debug_printf, "my_printf", библиотечный printf. Вставляя в интересующие точки своих программ для контроллеров что-то типа: printf("test point #1"); printf("internal var 'speed' = %i \n", speed); Обычно вывод функций printf настраивается на uart. Однако это тоже требует некоторых накладных расходов: дополнительные разъёмы, выделенный uart специально для отладки, требования к частоте тактирования. Предлагается использовать для вывода отладочного "printf" пины контроллера, которые используются для его программирования (MOSI, MISO, SCK). Всё равно на стадии отладки программатор уже подключен к чипу, есть все необходимые разъёмы и подключения. Штатный uart при этом в большинстве случаев останется свободным! Осталось выбрать 3х-проводный интерфейс для передачи данных от чипа к программатору. Для себя я выбрал следующие требования к интерфейсу: 1) Интерфейс должен быть полностью синхронным. (Снимаем требования к частоте контроллеров. Контроллеры могут спать, снижать свою частоту и т.д.) 2) Интерфейс должен быть дуплексным. (Хочется не только получать данные, но и отправлять) 3) Любая сторона может на неограниченное время приостановить обмен (с обоих сторон контроллеры, которые могут производить передачу данных в фоновом, низкоприоритетном процессе). При этом передаваемые данные не должны разрушаться. Как результат этого требования обмен данными должен происходить на максимальной скорости, которую могут обеспечить ОБЕ стороны. 4) В протоколе должно быть заложено выделение границ слов в передаваемом битовом потоке. Из известных мне протоколов ни один не смог удовлетворить вышеперечисленным требованиям. Пришлось изобретать велосипед протокол. Что получилось и предлагаю обсудить: Протокол называется "abd-протокол". В нём используются 3 линии: "a" - линия тактирования. Для мастера выход, для слэйва вход. "b" - возвратная линия тактирования. Для мастера вход, для слэйва выход. "d" - двунаправленная линия данных. Является как входом так и выходом для двух сторон. Между мастером и слэйвом должен быть подключен последовательный токоограничивающий резистор, для обеспечения надёжной работы в моменты переключения выводов вход/выход. Мастер наблюдает за состоянием линии "b". Если линия "b" переключилась в то же состояние, что и линия "a", - значит слэйв уже принял свой бит данных на линии "d", переключил линию на выход и выдал очередной свой бит на линию "d". После этого мастер может прочитать очередной бит от слэйва и выставить на передачу очередной свой бит. После этого мастер переводит состояние линии "a" в состояние, противоположное линии "b". И процесс повторяется заново. Это общая идея обмена. Теперь детали: данные передаются в каждую сторону как на возрастающем фронте клоков, так и на спадающем. По одному фронту передаётся очередной бит в сдвиговый регистр приёмника, а по другому фронту выдаётся признак конца слова (тот момент, когда из сдвигового регистра можно читать данные). Кроме того в протокол заложена возможность остановить клоки, когда данных ни у мастера ни у слэйва нет. Более подробное описание содержится в исходниках (Файлы "abd.c" и "abd.h"). Этот протокол был реализован, оттестирован на моделях, а затем и в реальном железе. В программатор "by Petka" добавлена реализация слэйва протокола "abd". Итого: Для того, чтобы добавить в свою программу возможность отладки, надо в список компилируемых файлов проекта добавить "abd.c" и "abd_putchar.c". В main добавить: #include "abd_putchar.h" FILE abd_file = FDEV_SETUP_STREAM(abd_master_putchar, NULL, _FDEV_SETUP_WRITE); int main(void){ stderr = stdout = stdin = &abd_file; Всё. Теперь в любом месте можно просто писать: printf("Hello World! №%i\n", num); num++; В прикрепленном к посту файле "abd_demo.zip" демка использования. Как увидеть получившийся "Hello World!" ? Прошиваете чип. Открываете терминалкой ком порт программатора, замыкаете перемычку "1Mhz" (программатор должен быть в режиме "fast"). И наблюдаете свой "Hello World!"! Исходник сделан для winavr. С небольшими доработками будет работать и для любого другого компилятора. Скоро выложу портированные версии для других компиляторов. abd_demo.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться