Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Своими руками

Своими руками Завершенные и текущие проекты, хард & софт

Ответ
 
Опции темы Опции просмотра
Старый 19.03.2013, 06:36   #1
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию USB-CDC PIC24FJ64GB002 на ASM

Знаю,что сейчас это всё неактуально.И тех кому,это интересно можно пересчитать по пальцам одной руки.
Вложения
Тип файла: rar PIC24FJ64GB002.rar (37.6 Кб, 149 просмотров)
геннадий75 вне форума   Ответить с цитированием
Старый 20.03.2013, 11:32   #2
Vlad&mir
Senior Member
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 1,720
Вес репутации: 4345/92
Vlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
Знаю,что сейчас это всё неактуально.И тех кому,это интересно можно пересчитать по пальцам одной руки.
Класс! А пользоваться им как? Как Ваш модуль встроить в проект на С? У Вас должен быть файл - USB_CDC.s, который включается в проект и файл - USB_CDC.h, в котором описано то, чем можно пользоваться "юзеру", если "юзер"напишет: #include "USB_CDC.h". Вот как-то так.
_
Vlad&mir вне форума   Ответить с цитированием
Старый 27.03.2013, 23:23   #3
Геннадий Ходячих
Senior Member
 
Регистрация: 25.01.2009
Адрес: Харьков, Украина
Возраст: 57
Сообщений: 433
Вес репутации: 219/38
Геннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura about
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
Знаю,что сейчас это всё неактуально.И тех кому,это интересно можно пересчитать по пальцам одной руки.
Мне интересно.Спасибо. Все хотел с USB на asm повоевать. Будет с чего начать
Геннадий Ходячих вне форума   Ответить с цитированием
Старый 28.03.2013, 13:42   #4
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,125
Вес репутации: 2885/98
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Vlad&mir Посмотреть сообщение
Класс! А пользоваться им как? Как Ваш модуль встроить в проект на С? У Вас должен быть файл - USB_CDC.s, который включается в проект и файл - USB_CDC.h, в котором описано то, чем можно пользоваться "юзеру", если "юзер"напишет: #include "USB_CDC.h". Вот как-то так.
_
Можно, потом сравните размеры прошивок USB CDC для PIC24 vs USB-CDC PIC24FJ64GB002 на ASM ? Просто интересно стало насколько меньше. (нету у меня сейчас возможности это сделать) Спасибо.
AleksBak вне форума   Ответить с цитированием
Старый 28.03.2013, 14:57   #5
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Возраст: 38
Сообщений: 4,422
Вес репутации: 4370/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от AleksBak Посмотреть сообщение
Можно, потом сравните размеры прошивок USB CDC для PIC24 vs USB-CDC PIC24FJ64GB002 на ASM ? Просто интересно стало насколько меньше. (нету у меня сейчас возможности это сделать) Спасибо.
Си:Total program memory used (bytes): 0x1cbc (7356)
Ассемблер: Total program memory used (bytes): 0x432 (1074)

Почти в 7 раз короче, но, это не аргумент. Нужно ещё оценить функционал каждой прошивки.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 28.03.2013, 15:43   #6
Vlad&mir
Senior Member
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 1,720
Вес репутации: 4345/92
Vlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Си:Total program memory used (bytes): 0x1cbc (7356)
Ассемблер: Total program memory used (bytes): 0x432 (1074)

Почти в 7 раз короче, но, это не аргумент. Нужно ещё оценить функционал каждой прошивки.
Откуда Вы взяли 7356 байт?

А что касается геннадия75, то пусть сначала доведёт свой модуль до состояния, пригодного к применению, а вот потом сравним.
Миниатюры
usb_cdc.jpg  
Vlad&mir вне форума   Ответить с цитированием
Старый 28.03.2013, 15:58   #7
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Возраст: 38
Сообщений: 4,422
Вес репутации: 4370/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Vlad&mir Посмотреть сообщение
Откуда Вы взяли 7356 байт?
Может я не прав, но я сравнил параметр из окна Output: Total program memory used (bytes) для двух проектов (Си и Ассемблер). Разница почти в 7 раз.
Миниатюры
Total.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 28.03.2013, 16:17   #8
Vlad&mir
Senior Member
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 1,720
Вес репутации: 4345/92
Vlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond reputeVlad&mir has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Может я не прав, но я сравнил параметр из окна Output: Total program memory used (bytes) для двух проектов (Си и Ассемблер). Разница почти в 7 раз.
2710 - это, наверное, число 3-х байтовых программных слов.

Да, разница существенна (я пока оптимизацией модуля не занимался совсем, только собрал вместе всю рассыпуху)... Я не думаю, что программисты Microchip имеют такую низкую квалификацию, скорее всего геннадий75 что-то не доделал...

Кстати, если на ping pong "плюнуть", как геннадий75, намного короче будет?

P.S.
Просмотр программной памяти даёт ещё один результат: Я еще к такой адресации программной памяти в PIC24 не привык.
Миниатюры
pr_mem.jpg  

Последний раз редактировалось Vlad&mir; 28.03.2013 в 16:35.
Vlad&mir вне форума   Ответить с цитированием
Старый 28.03.2013, 16:42   #9
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Возраст: 38
Сообщений: 4,422
Вес репутации: 4370/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Vlad&mir Посмотреть сообщение
Да, разница существенна (я пока оптимизацией модуля не занимался совсем, только собрал вместе всю рассыпуху)...
Всё в порядке. Ничего пока оптимизировать не нужно. Вот железа PIC24 с USB нет. Жаль.
А для проекта на Ассемблере описания нет, только комментарии по тексту, но это для тех, кто хорошо понимает USB.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 28.03.2013, 18:48   #10
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от Vlad&mir Посмотреть сообщение
Откуда Вы взяли 7356 байт?

А что касается геннадия75, то пусть сначала доведёт свой модуль до состояния, пригодного к применению, а вот потом сравним.
Здесь выложен просто пример,который принимает байты с ком порта и сразуже отправляет их назад.Весь модуль USB работает в прерываний.У меня в модуле USB после прихода SOFIF, программа смотрит есть данные на передачу или нет. Если есть просто переключаю конечную точку на нужный сектор памяти и всё,здесь в примере это убрано.В PIC24 если не использовать пин-понг пролазит 15 пакетов по 64 байта за кадр,с пин-понгом 17.В модуле да не обрабатываю некоторые запросы USB, они мне просто неинтересны.Что касается описания его просто нет.
геннадий75 вне форума   Ответить с цитированием
Старый 28.05.2013, 20:37   #11
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Переписал программу ,которую раньше скидывал в (Полезный софт своими руками) на PIC24FJ64GB002. Возможно, кому-то будет интересно,мониторить CAN сообщения.
Вложения
Тип файла: rar CAN.rar (662.1 Кб, 38 просмотров)
геннадий75 вне форума   Ответить с цитированием
Старый 27.10.2013, 22:14   #12
Геннадий Ходячих
Senior Member
 
Регистрация: 25.01.2009
Адрес: Харьков, Украина
Возраст: 57
Сообщений: 433
Вес репутации: 219/38
Геннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura about
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
Здесь выложен просто пример,который принимает байты с ком порта и сразуже отправляет их назад.Весь модуль USB работает в прерываний.У меня в модуле USB после прихода SOFIF, программа смотрит есть данные на передачу или нет. Если есть просто переключаю конечную точку на нужный сектор памяти и всё,здесь в примере это убрано.В PIC24 если не использовать пин-понг пролазит 15 пакетов по 64 байта за кадр,с пин-понгом 17.В модуле да не обрабатываю некоторые запросы USB, они мне просто неинтересны.Что касается описания его просто нет.
1. Зачем модуль отправлять на сброс, если хост и так производит RESET при подключении?
2. Смысл проверки SOFIF, если ничего не делается?
Код:
	BTSS	U1IR,#2
	BRA		USB
						; ПРИШЁЛ SOFIF
USB:
3. Эта конструкция работает?
Код:
		BCLR	U1IR,#0		;СБРОС	USB
в даташите Section 27. USB On-The-Go (OTG) указано, что сброс бита только через установку его в 1, причем рекомендуют, как я понял, следующую конструкцию
Код:
		mov	#0x01,W2
	mov	W2,U1IR
4.Возможно, ошибаюсь, но должно быть #0x8040
Код:
		MOV		#0X8140,W1
		MOV		W1,[W0++] 	;81400A80 2 OUT
		MOV		#_ADR2OUT,W1
		MOV		W1,[W0++]
5. Понятно, что конечная точка 1 не используется тут, но
Код:
		MOV		#0X15,W1
		MOV		W1,U1EP1	;15
0x15 мне кажется смысла не имеет - должно быть 0x05
6. Конструкцию
Код:
	RRNC	W0,W0
	RRNC	W0,W0
	RRNC	W0,W0
стоит, наверное, заменить
Код:
	lsr	W0,#3,W0
все же быстрее
7. И еще для убыстрения сделал бы следующее
Код:
	_U1BDTP1=0x0A00 ;ЗАДАЁМ СЕКТОР ДЕСКРИПТОРОВ
......
	MOV		#_U1BDTP1>>8,W1
	MOV		W1,U1BDTP1	;СЕКТОР ДЕСКРИПТОРОВ 0A
......
TOCHKA0_OUT10:
	MOV		#_U1BDTP1,W0
;	SWAP	        W0			; не нужна тогда
Ваша программа для понимания работы очень оказалась полезна, но с таблицей дескрипторов и обращением к ней пришлось поломать голову.
Пользоваться таблицей крайне неудобно.
Геннадий Ходячих вне форума   Ответить с цитированием
Старый 28.10.2013, 08:32   #13
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

1.При случайном сбросе микропроцессора сбрасывается модуль USB.
2.По флагу SOFIF проверяется наличие данных на отправку,здесь это убрано.
3.Это возможно лишнее.
4.Другие варианты не работают.
5.Первая конечная точка используется для отправки состояния управляющих входов COM порта.
6.Согласен можно упростить.
7.#_U1BDTP1 и U1BDTP1 это совершенно разные регистры.
Насчёт таблицы дескрипторов полностью согласен неудобно,изначально её небыло.Когда переводил программу на PIC32 тоже не использовал таблицу дескрипторов в памяти.
геннадий75 вне форума   Ответить с цитированием
Старый 28.10.2013, 12:07   #14
Геннадий Ходячих
Senior Member
 
Регистрация: 25.01.2009
Адрес: Харьков, Украина
Возраст: 57
Сообщений: 433
Вес репутации: 219/38
Геннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura about
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
4.Другие варианты не работают.
Но у Вас буфер получается на 320 байт. Или я не правильно понимаю?
Цитата:
MOV #0X8140,W1
MOV W1,[W0++] ;81400A80 2 OUT
MOV #_ADR2OUT,W1
MOV W1,[W0++]
Я не доказать хочу, а для себя разобраться
Геннадий Ходячих вне форума   Ответить с цитированием
Старый 28.10.2013, 13:09   #15
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Дескрипторы начинаются с адреса 0x0A00 каждый по 4 байта ,буферы начинаются с адреса 0х0A28.

0 OUT 0A00-0A03 80080A28 начало буфера 0x0A28 длина 8 байт
0 IN 0A04-0A07 00000A30 начало буфера 0x0A30 длина 64
1 OUT 0A08-0A0B 00000000 начало буфера не используется
1 IN 0A0C-0A0F 00000A70 начало буфера 0x0A70 длина 10
2 OUT 0A10-0A13 81400A80 начало буфера 0x0A80 длина 64
2 IN 0A14-0A17 00000AC0 начало буфера 0x0AC0 длина 64

320 байт откуда взялись.

Последний раз редактировалось геннадий75; 28.10.2013 в 13:15.
геннадий75 вне форума   Ответить с цитированием
Старый 28.10.2013, 13:23   #16
Геннадий Ходячих
Senior Member
 
Регистрация: 25.01.2009
Адрес: Харьков, Украина
Возраст: 57
Сообщений: 433
Вес репутации: 219/38
Геннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura about
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
Дескрипторы начинаются с адреса 0x0A00 каждый по 4 байта ,буферы начинаются с адреса 0х0A28.

0 OUT 0A00-0A03 80080A28 начало буфера 0x0A28 длина 8 байт
0 IN 0A04-0A07 00000A30 начало буфера 0x0A30 длина 64
1 OUT 0A08-0A0B 00000000 начало буфера не используется
1 IN 0A0C-0A0F 00000A70 начало буфера 0x0A70 длина 10
2 OUT 0A10-0A13 81400A80 начало буфера 0x0A80 длина 64
2 IN 0A14-0A17 00000AC0 начало буфера 0x0AC0 длина 64

320 байт откуда взялись.
Код:
	MOV		#0X8140,W1
		MOV		W1,[W0++] 	;81400A80 2 OUT
		MOV		#_ADR2OUT,W1
		MOV		W1,[W0++]
10 последних битов в #0X8140 определяют размер буфера. Или я не прав?
Геннадий Ходячих вне форума   Ответить с цитированием
Старый 28.10.2013, 13:42   #17
геннадий75
Member
 
Регистрация: 05.02.2012
Адрес: г.Саяногорск
Возраст: 42
Сообщений: 84
Вес репутации: 255/23
геннадий75 is a jewel in the roughгеннадий75 is a jewel in the roughгеннадий75 is a jewel in the rough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Точно "ошибка" жду 320 байт.Но это никак не влияет , Хост не может отправить пакет больше 64 байт.
геннадий75 вне форума   Ответить с цитированием
Старый 28.10.2013, 13:46   #18
Геннадий Ходячих
Senior Member
 
Регистрация: 25.01.2009
Адрес: Харьков, Украина
Возраст: 57
Сообщений: 433
Вес репутации: 219/38
Геннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura aboutГеннадий Ходячих has a spectacular aura about
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

Цитата:
Сообщение от геннадий75 Посмотреть сообщение
Точно "ошибка" жду 320 байт.Но это никак не влияет , Хост не может отправить пакет больше 64 байт.
Понятно. Еще раз спасибо за образец программы
Геннадий Ходячих вне форума   Ответить с цитированием
Старый 26.07.2016, 15:48   #19
rvladislav
Junior Member
 
Регистрация: 08.07.2013
Сообщений: 13
Вес репутации: 100/17
rvladislav will become famous soon enoughrvladislav will become famous soon enough
По умолчанию Re: USB-CDC PIC24FJ64GB002 на ASM

В 7-ке и 8-ке прекрасно работает. Почему то не работает в WIN10.
В событиях драйвера есть пара "лишних" сообщений.
Миниатюры
USB_W10.png  
rvladislav вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача символа на USB Maksimka Общетехнические вопросы 9 15.07.2013 12:53
USB подключение ICD2 clone на 18F4550 Mario Продукция MICROCHIP 6 14.01.2011 20:15
Помогите написать программу BreAkeR Вопросы начинающих 59 20.12.2009 13:34


Часовой пояс GMT +3, время: 12:57.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot