реклама на сайте
подробности

 
 
76 страниц V  « < 6 7 8 9 10 > »   
Reply to this topicStart new topic
> AvrUsb500 by Petka. продолжение, Вариант программатора AVR, доступный для простого изготовления. ч2.
simer
сообщение Nov 11 2009, 15:04
Сообщение #106


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 22-01-08
Пользователь №: 34 312



Petka, а когда планируется выход новой версии прошивки? Можно туда добавить мигание светодиодом при активности?
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 11 2009, 15:19
Сообщение #107


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(simer @ Nov 11 2009, 18:04) *
Petka, а когда планируется выход новой версии прошивки? Можно туда добавить мигание светодиодом при активности?

1) На днях появится прошивка с новой фичей, сейчас занимаюсь её отладкой.
2) Можно. А зачем?
Go to the top of the page
 
+Quote Post
simer
сообщение Nov 11 2009, 16:36
Сообщение #108


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 22-01-08
Пользователь №: 34 312



Цитата(Petka @ Nov 11 2009, 17:19) *
...
2) Можно. А зачем?


Ну для наглядности что-ли smile.gif все равно светодиод есть уже. Глазу приятнее и видно что прошивается smile.gif
Кстати, для диагностики удобнее будет сделать мигание при активности MISO, тем что если камень дохлый мигать не будет ничего.

P.S. А название фичи в новой прошивке секрет пока? smile.gif

Сообщение отредактировал simer - Nov 11 2009, 16:38
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 11 2009, 17:19
Сообщение #109


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(simer @ Nov 11 2009, 19:36) *
Глазу приятнее и видно что прошивается smile.gif

А программа-программатор не наглядно показывает, программируется или нет?
Цитата
P.S. А название фичи в новой прошивке секрет пока? smile.gif

Терпение.
Go to the top of the page
 
+Quote Post
kokaradik
сообщение Nov 12 2009, 09:37
Сообщение #110


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 14-07-09
Пользователь №: 51 247



собрал, зашил прогер, перемычку перекинул. при включении мигает, при подключении камня - горит диод. но понипрог не хочет видетьsad.gif ошибк 24
помогите плизsad.gif
я новичок rolleyes.gif
Go to the top of the page
 
+Quote Post
simer
сообщение Nov 12 2009, 10:15
Сообщение #111


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 22-01-08
Пользователь №: 34 312



Цитата(kokaradik @ Nov 12 2009, 11:37) *
собрал, зашил прогер, перемычку перекинул. при включении мигает, при подключении камня - горит диод. но понипрог не хочет видетьsad.gif ошибк 24
помогите плизsad.gif
я новичок rolleyes.gif


PonyProg не поддерживает этот программатор для прошивки таргета
Go to the top of the page
 
+Quote Post
kokaradik
сообщение Nov 12 2009, 14:51
Сообщение #112


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 14-07-09
Пользователь №: 51 247



все работает и очень быстро! спасибо, Petka!!!!!
Go to the top of the page
 
+Quote Post
IURY
сообщение Nov 13 2009, 10:03
Сообщение #113





Группа: Участник
Сообщений: 6
Регистрация: 11-11-09
Пользователь №: 53 554



Подскажите, как надо правильно?
Я развел свою платку и изменил расположение сигналов
в порту 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

Сообщение отредактировал IURY - Nov 13 2009, 10:29
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 13 2009, 12:00
Сообщение #114


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(IURY @ Nov 13 2009, 13:03) *
Подскажите, как надо правильно?

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)

где-то ошиблись в описании портов.
Go to the top of the page
 
+Quote Post
IURY
сообщение Nov 13 2009, 12:27
Сообщение #115





Группа: Участник
Сообщений: 6
Регистрация: 11-11-09
Пользователь №: 53 554



Цитата(Petka @ Nov 13 2009, 17:00) *
где-то ошиблись в описании портов.

Если я выбираю atmega48, то компиляция успешна.

Обозначил(в исходниках ничего не трогал, кроме контроллера и частоты) :
PC5 - mosi
PC4 - rst_adc
PC3 - target_rst
PC2 - miso
PC1 - sck
Atmega8
7372800 Hz
Go to the top of the page
 
+Quote Post
кт315
сообщение Nov 13 2009, 15:41
Сообщение #116





Группа: Участник
Сообщений: 9
Регистрация: 13-11-09
Пользователь №: 53 605



собрал ваш программатор на FT232BL и атмеге8. Атмегу прошил другим программатором от протоса. приподаче питания моргает, при подлючении камня загорается светодиод. На выходе 1 мГц не наблюдаю ни какой частоты. Она должна там присутствовать всё время? У протоса она там присутствует всё время, как тест правильной работы. И естественно соде вижен его не видит.
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 13 2009, 20:36
Сообщение #117


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(IURY @ Nov 13 2009, 15:27) *
Если я выбираю atmega48, то компиляция успешна.

Обозначил(в исходниках ничего не трогал, кроме контроллера и частоты) :
PC5 - mosi
PC4 - rst_adc
PC3 - target_rst
PC2 - miso
PC1 - sck
Atmega8
7372800 Hz

запакуйте zip'ом исходники, и выкладывайте сюда, посмотрю что там не собирается.

Цитата(кт315 @ Nov 13 2009, 18:41) *
...приподаче питания моргает, при подлючении камня загорается светодиод. На выходе 1 мГц не наблюдаю ни какой частоты. Она должна там присутствовать всё время?

Нет, частота там присутствует только в режие "1MHz" по умолчанию программатор работает в режиме "fast".
Цитата
И естественно соде вижен его не видит.

Ничего естественного. При правильной сборке программатор работает сразу. Пробовали заходить терминалкой на порт программатора (как написано в FAQ)?
Go to the top of the page
 
+Quote Post
IURY
сообщение Nov 14 2009, 03:43
Сообщение #118





Группа: Участник
Сообщений: 6
Регистрация: 11-11-09
Пользователь №: 53 554



Цитата(Petka @ Nov 14 2009, 01:36) *
запакуйте zip'ом исходники, и выкладывайте сюда, посмотрю что там не собирается.

Выкладываю исходники, которые компилировал.
Прикрепленные файлы
Прикрепленный файл  source.zip ( 25.61 килобайт ) Кол-во скачиваний: 16775
 
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 14 2009, 09:43
Сообщение #119


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(IURY @ Nov 14 2009, 06:43) *
Выкладываю исходники, которые компилировал.

Ваша правда.
Моя недоработка. Обновите файл "gpio.h"
Прикрепленные файлы
Прикрепленный файл  gpio.zip ( 776 байт ) Кол-во скачиваний: 233
 
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 15 2009, 11:02
Сообщение #120


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Доброго времени суток!
После продолжительной работы выкладываю на общее обсуждение следующую версию прошивки программатора.
Основное и единственное отличие новой версии - поддержка "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 ( 6.1 килобайт ) Кол-во скачиваний: 297
 
Go to the top of the page
 
+Quote Post

76 страниц V  « < 6 7 8 9 10 > » 
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016