Line 130... |
Line 130... |
130 |
other free libraries easier. We no longer require publication of the |
130 |
other free libraries easier. We no longer require publication of the |
131 |
circuit diagrams, but we STRONGLY encourage it. If you improve the driver |
131 |
circuit diagrams, but we STRONGLY encourage it. If you improve the driver |
132 |
itself, PLEASE grant us a royalty free license to your changes for our |
132 |
itself, PLEASE grant us a royalty free license to your changes for our |
133 |
commercial license. |
133 |
commercial license. |
134 |
|
134 |
|
- |
|
135 |
* Release 2007-03-29 |
- |
|
136 |
|
- |
|
137 |
- New configuration option "USB_PUBLIC" in usbconfig.h. |
- |
|
138 |
- Set USB version number to 1.10 instead of 1.01. |
- |
|
139 |
- Code used USB_CFG_DESCR_PROPS_STRING_DEVICE and |
- |
|
140 |
USB_CFG_DESCR_PROPS_STRING_PRODUCT inconsistently. Changed all occurrences |
- |
|
141 |
to USB_CFG_DESCR_PROPS_STRING_PRODUCT. |
- |
|
142 |
- New assembler module for 16.5 MHz RC oscillator clock with PLL in receiver |
- |
|
143 |
code. |
- |
|
144 |
- New assembler module for 16 MHz crystal. |
- |
|
145 |
- usbdrvasm.S contains common code only, clock-specific parts have been moved |
- |
|
146 |
to usbdrvasm12.S, usbdrvasm16.S and usbdrvasm165.S respectively. |
- |
|
147 |
|
- |
|
148 |
* Release 2007-06-25 |
- |
|
149 |
|
- |
|
150 |
- 16 MHz module: Do SE0 check in stuffed bits as well. |
- |
|
151 |
|
- |
|
152 |
* Release 2007-07-07 |
- |
|
153 |
|
- |
|
154 |
- Define hi8(x) for IAR compiler to limit result to 8 bits. This is necessary |
- |
|
155 |
for negative values. |
- |
|
156 |
- Added 15 MHz module contributed by V. Bosch. |
- |
|
157 |
- Interrupt vector name can now be configured. This is useful if somebody |
- |
|
158 |
wants to use a different hardware interrupt than INT0. |
- |
|
159 |
|
- |
|
160 |
* Release 2007-08-07 |
- |
|
161 |
|
- |
|
162 |
- Moved handleIn3 routine in usbdrvasm16.S so that relative jump range is |
- |
|
163 |
not exceeded. |
- |
|
164 |
- More config options: USB_RX_USER_HOOK(), USB_INITIAL_DATATOKEN, |
- |
|
165 |
USB_COUNT_SOF |
- |
|
166 |
- USB_INTR_PENDING can now be a memory address, not just I/O |
- |
|
167 |
|
- |
|
168 |
* Release 2007-09-19 |
- |
|
169 |
|
- |
|
170 |
- Split out common parts of assembler modules into separate include file |
- |
|
171 |
- Made endpoint numbers configurable so that given interface definitions |
- |
|
172 |
can be matched. See USB_CFG_EP3_NUMBER in usbconfig-prototype.h. |
- |
|
173 |
- Store endpoint number for interrupt/bulk-out so that usbFunctionWriteOut() |
- |
|
174 |
can handle any number of endpoints. |
- |
|
175 |
- Define usbDeviceConnect() and usbDeviceDisconnect() even if no |
- |
|
176 |
USB_CFG_PULLUP_IOPORTNAME is defined. Directly set D+ and D- to 0 in this |
- |
|
177 |
case. |
- |
|
178 |
|
- |
|
179 |
* Release 2007-12-01 |
- |
|
180 |
|
- |
|
181 |
- Optimize usbDeviceConnect() and usbDeviceDisconnect() for less code size |
- |
|
182 |
when USB_CFG_PULLUP_IOPORTNAME is not defined. |
- |
|
183 |
|
- |
|
184 |
* Release 2007-12-13 |
- |
|
185 |
|
- |
|
186 |
- Renamed all include-only assembler modules from *.S to *.inc so that |
- |
|
187 |
people don't add them to their project sources. |
- |
|
188 |
- Distribute leap bits in tx loop more evenly for 16 MHz module. |
- |
|
189 |
- Use "macro" and "endm" instead of ".macro" and ".endm" for IAR |
- |
|
190 |
- Avoid compiler warnings for constant expr range by casting some values in |
- |
|
191 |
USB descriptors. |
- |
|
192 |
|
- |
|
193 |
* Release 2008-01-21 |
- |
|
194 |
|
- |
|
195 |
- Fixed bug in 15 and 16 MHz module where the new address set with |
- |
|
196 |
SET_ADDRESS was already accepted at the next NAK or ACK we send, not at |
- |
|
197 |
the next data packet we send. This caused problems when the host polled |
- |
|
198 |
too fast. Thanks to Alexander Neumann for his help and patience debugging |
- |
|
199 |
this issue! |
- |
|
200 |
|
- |
|
201 |
* Release 2008-02-05 |
- |
|
202 |
|
- |
|
203 |
- Fixed bug in 16.5 MHz module where a register was used in the interrupt |
- |
|
204 |
handler before it was pushed. This bug was introduced with version |
- |
|
205 |
2007-09-19 when common parts were moved to a separate file. |
- |
|
206 |
- Optimized CRC routine (thanks to Reimar Doeffinger). |
- |
|
207 |
|
- |
|
208 |
* Release 2008-02-16 |
- |
|
209 |
|
- |
|
210 |
- Removed outdated IAR compatibility stuff (code sections). |
- |
|
211 |
- Added hook macros for USB_RESET_HOOK() and USB_SET_ADDRESS_HOOK(). |
- |
|
212 |
- Added optional routine usbMeasureFrameLength() for calibration of the |
- |
|
213 |
internal RC oscillator. |
- |
|
214 |
|
- |
|
215 |
* Release 2008-02-28 |
- |
|
216 |
|
- |
|
217 |
- USB_INITIAL_DATATOKEN defaults to USBPID_DATA1 now, which means that we |
- |
|
218 |
start with sending USBPID_DATA0. |
- |
|
219 |
- Changed defaults in usbconfig-prototype.h |
- |
|
220 |
- Added free USB VID/PID pair for MIDI class devices |
- |
|
221 |
- Restructured AVR-USB as separate package, not part of PowerSwitch any more. |
- |
|
222 |
|
- |
|
223 |
* Release 2008-04-18 |
- |
|
224 |
|
- |
|
225 |
- Restructured usbdrv.c so that it is easier to read and understand. |
- |
|
226 |
- Better code optimization with gcc 4. |
- |
|
227 |
- If a second interrupt in endpoint is enabled, also add it to config |
- |
|
228 |
descriptor. |
- |
|
229 |
- Added config option for long transfers (above 254 bytes), see |
- |
|
230 |
USB_CFG_LONG_TRANSFERS in usbconfig.h. |
- |
|
231 |
- Added 20 MHz module contributed by Jeroen Benschop. |
- |
|
232 |
|
- |
|
233 |
* Release 2008-05-13 |
- |
|
234 |
|
- |
|
235 |
- Fixed bug in libs-host/hiddata.c function usbhidGetReport(): length |
- |
|
236 |
was not incremented, pointer to length was incremented instead. |
- |
|
237 |
- Added code to command line tool(s) which claims an interface. This code |
- |
|
238 |
is disabled by default, but may be necessary on newer Linux kernels. |
- |
|
239 |
- Added usbconfig.h option "USB_CFG_CHECK_DATA_TOGGLING". |
- |
|
240 |
- New header "usbportability.h" prepares ports to other development |
- |
|
241 |
environments. |
- |
|
242 |
- Long transfers (above 254 bytes) did not work when usbFunctionRead() was |
- |
|
243 |
used to supply the data. Fixed this bug. [Thanks to Alexander Neumann!] |
- |
|
244 |
- In hiddata.c (example code for sending/receiving data over HID), use |
- |
|
245 |
USB_RECIP_DEVICE instead of USB_RECIP_INTERFACE for control transfers so |
- |
|
246 |
that we need not claim the interface. |
- |
|
247 |
- in usbPoll() loop 20 times polling for RESET state instead of 10 times. |
- |
|
248 |
This accounts for the higher clock rates we now support. |
- |
|
249 |
- Added a module for 12.8 MHz RC oscillator with PLL in receiver loop. |
- |
|
250 |
- Added hook to SOF code so that oscillator can be tuned to USB frame clock. |
- |
|
251 |
- Added timeout to waitForJ loop. Helps preventing unexpected hangs. |
- |
|
252 |
- Added example code for oscillator tuning to libs-device (thanks to |
- |
|
253 |
Henrik Haftmann for the idea to this routine). |
- |
|
254 |
- Implemented option USB_CFG_SUPPRESS_INTR_CODE. |
- |
|
255 |
|
- |
|
256 |
* Release 2008-10-22 |
- |
|
257 |
|
- |
|
258 |
- Fixed libs-device/osctune.h: OSCCAL is memory address on ATMega88 and |
- |
|
259 |
similar, not offset of 0x20 needs to be added. |
- |
|
260 |
- Allow distribution under GPLv3 for those who have to link against other |
- |
|
261 |
code distributed under GPLv3. |
- |
|
262 |
|
- |
|
263 |
* Release 2008-11-26 |
- |
|
264 |
|
- |
|
265 |
- Removed libusb-win32 dependency for hid-data example in Makefile.windows. |
- |
|
266 |
It was never required and confused many people. |
- |
|
267 |
- Added extern uchar usbRxToken to usbdrv.h. |
- |
|
268 |
- Integrated a module with CRC checks at 18 MHz by Lukas Schrittwieser. |
- |
|
269 |
|
- |
|
270 |
* Release 2009-03-23 |
- |
|
271 |
|
- |
|
272 |
- Hid-mouse example used settings from hid-data example, fixed that. |
- |
|
273 |
- Renamed project to V-USB due to a trademark issue with Atmel(r). |
- |
|
274 |
- Changed CommercialLicense.txt and USBID-License.txt to make the |
- |
|
275 |
background of USB ID registration clearer. |
- |
|
276 |
|
- |
|
277 |
* Release 2009-04-15 |
- |
|
278 |
|
- |
|
279 |
- Changed CommercialLicense.txt to reflect the new range of PIDs from |
- |
|
280 |
Jason Kotzin. |
- |
|
281 |
- Removed USBID-License.txt in favor of USB-IDs-for-free.txt and |
- |
|
282 |
USB-ID-FAQ.txt |
- |
|
283 |
- Fixed a bug in the 12.8 MHz module: End Of Packet decection was made in |
- |
|
284 |
the center between bit 0 and 1 of each byte. This is where the data lines |
- |
|
285 |
are expected to change and the sampled data may therefore be nonsense. |
- |
|
286 |
We therefore check EOP ONLY if bits 0 AND 1 have both been read as 0 on D-. |
- |
|
287 |
- Fixed a bitstuffing problem in the 16 MHz module: If bit 6 was stuffed, |
- |
|
288 |
the unstuffing code in the receiver routine was 1 cycle too long. If |
- |
|
289 |
multiple bytes had the unstuffing in bit 6, the error summed up until the |
- |
|
290 |
receiver was out of sync. |
- |
|
291 |
- Included option for faster CRC routine. |
- |
|
292 |
Thanks to Slawomir Fras (BoskiDialer) for this code! |
- |
|
293 |
- Updated bits in Configuration Descriptor's bmAttributes according to |
- |
|
294 |
USB 1.1 (in particular bit 7, it is a must-be-set bit now). |
- |
|
295 |
|
- |
|
296 |
* Release 2009-08-22 |
- |
|
297 |
|
- |
|
298 |
- Moved first DBG1() after odDebugInit() in all examples. |
- |
|
299 |
- Use vector INT0_vect instead of SIG_INTERRUPT0 if defined. This makes |
- |
|
300 |
V-USB compatible with the new "p" suffix devices (e.g. ATMega328p). |
- |
|
301 |
- USB_CFG_CLOCK_KHZ setting is now required in usbconfig.h (no default any |
- |
|
302 |
more). |
- |
|
303 |
- New option USB_CFG_DRIVER_FLASH_PAGE allows boot loaders on devices with |
- |
|
304 |
more than 64 kB flash. |
- |
|
305 |
- Built-in configuration descriptor allows custom definition for second |
- |
|
306 |
endpoint now. |
- |
|
307 |
|
- |
|
308 |
* Release 2010-07-15 |
- |
|
309 |
|
- |
|
310 |
- Fixed bug in usbDriverSetup() which prevented descriptor sizes above 255 |
- |
|
311 |
bytes. |
- |
|
312 |
- Avoid a compiler warning for unused parameter in usbHandleResetHook() when |
- |
|
313 |
compiler option -Wextra is enabled. |
- |
|
314 |
- Fixed wrong hex value for some IDs in USB-IDs-for-free.txt. |
- |
|
315 |
- Keep a define for USBATTR_BUSPOWER, although the flag does not exist |
- |
|
316 |
in USB 1.1 any more. Set it to 0. This is for backward compatibility. |
- |
|
317 |
|
- |
|
318 |
* Release 2012-01-09 |
- |
|
319 |
|
- |
|
320 |
- Define a separate (defined) type for usbMsgPtr so that projects using a |
- |
|
321 |
tiny memory model can define it to an 8 bit type in usbconfig.h. This |
- |
|
322 |
change also saves a couple of bytes when using a scalar 16 bit type. |
- |
|
323 |
- Inserted "const" keyword for all PROGMEM declarations because new GCC |
- |
|
324 |
requires it. |
- |
|
325 |
- Fixed problem with dependence of usbportability.h on usbconfig.h. This |
- |
|
326 |
problem occurred with IAR CC only. |
- |
|
327 |
- Prepared repository for github.com. |
- |
|
328 |
|
- |
|
329 |
* Release 2012-12-06 |
135 |
|
330 |
|