AVR Transistortesterへの私の変更の文書。
トランジスタテスターは、さまざまな種類の電子コンポーネントを挿入して分析できるデバイスです。トランジスタを読み取り、NPNまたはPNPのかどうかを示すだけでなく、コンデンサの抵抗または容量などを示します。さまざまなタイプがあり、通常は非常に安価です。
BanggoodのGM328キットを持っています(もう利用できなくなりました)。
注目すべきハードウェア:
テスターの精度を向上させるには、できるいくつかの簡単な変更があります。
(https://github.com/upcycle-electronics/avr-transistor-testerからの画像)
Eevblogのこの投稿も参照してください。
k-firmwareのreadmeから:
「抵抗器R1からR6は測定に重要であり、この680Ωおよび470kΩ抵抗器は、完全な精度を得るために測定型抵抗(0.1%の耐性)でなければなりません。 」
「 PIN PC4(ADC4)で接続された追加の2.5V精度電圧参照を使用してVCC電圧をチェックして較正することができますが、必要ありません。LM4040-AIZ2.5(0.1%)、LT1004CZ-2.5(LT1004CZ-2.5( 0.8%)または電圧参照としてLM336-Z2.5(0.8%)は、リレー延長を追加しない場合は、プルアップ抵抗R16をPC4にインストールする必要があります。より高い抵抗値(47kΩ)。
m-firmwareのreadmeから:
「外部2.5V電圧参照は、電圧レギュレータの少なくとも10倍正確な場合にのみ有効にする必要があります。そうしないと、結果が悪化します。電圧レギュレータとして0.4%の典型的な耐性を持つMCP1702を使用する場合本当に2.5Vの電圧参照は必要ありません。 」
K-FirmwareのREADMEのR16については、M-FirmwareのREADMEで言及されていないため、混乱しています。この投稿は、K-Firmwareにのみ必要であることを確認しています。
「 M-Firmwareを実行する場合、ステップ#3をスキップしたり、R16を削除したり(交換する必要はありません)(デフォルト設定)、ファームウェアは外部電圧参照を無視します。違って、常に2.5Vの参照をチェックします(それを無効にするための設定はありません)。
電圧参照をスキップして、0.1%の抵抗とMCP1702電圧レギュレーターのみを注文することを選択しました。また、速度を上げるために16MHzのクリスタルを追加しました:
回路図を参照する具体的な変化:
これは、これらの変更が適切に見える方法です。
0.1%抵抗(黒)はデフォルト(青)よりも少し厚いため、少し重複しています。
トランジスタテスターには2つの異なるファームウェアの選択肢があります。オリジナルはK-Firmwareです。テスターにはバージョン1.12K(非常に古い)が付属しており、最新は1.13Kです。 K-Firmwareの開発は現在保留中です。それはM-Firmwareにフォークされており、それは書き直され、追加の機能を備えており、まだアクティブな開発中です。
K-Firmwareソースは、MEGA328_COLOR_KITディレクトリのAY-AT用の事前コンパイルされたファームウェアを備えています。また、正しいパラメーターを備えたメイクファイルもあります。 M-Firmwareのソースはここで入手できますが、ターボールとしてのみ利用できます。事前コンパイルされたバージョンはありません。両方のファームウェアもここにあります。
M-Firmwareを使用することを選択しました。これは、まだ積極的に開発されているためです。執筆時点での最新バージョンは1.42mです。
ファームウェアには、調整する必要がある3つの構成ファイルがあります。 AY-ATの互換性のあるファームウェアを構築するために必要な基本的な変更については、ファイル「クローン」(ファームウェアTGZから)を参照してください。私が行った追加の変更は、ここで文書化されています。ファイルもファームウェアディレクトリで利用できます。
HW_REF25
無効にしました。SW_IR_RECEIVER
無効にしました。 IRのサポートは私にとって重要ではないので、無効にしても大丈夫でした。UI_AUTOHOLD
有効にしました。結果を読むのに必要な時間をかけたいです。POWER_OFF_TIMEOUT
を有効にしたので、アイドル時にオフになります。SW_POWER_OFF
を有効にしたので、メニューからオフにすることができます。 LCD_LATE_ON
を有効にしたため、画面が初期化されたときに非常に文字化けされており、この設定により問題なく見えます。 FREQ
16に変更しました。 新しいファームウェアを構築するだけで、ここで説明するハードウェアの変更を気にしない場合は、これらの例外を除き、構成例に従うことができます。
HW_REF25
を有効にしますFREQ
8に設定しますこれにより、Banggoodの「ストック」GM328 AY-ATで実行されるファームウェアが提供されます。
すでにインストールされているビルドツールに加えて、次のパッケージを追加する必要がありました(OpenSuse)。
avr-libc
cross-avr-gcc9
その後、構築make
。
ビルドが完了したら、これらのファイルを使用する必要があります。これにより、ファームウェアが構成されます。
ComponentTester.eep
ComponentTester.hex
コンパイラの出力は次のようなもので終わるはずです。
AVR Memory Usage
----------------
Device: atmega328
Program: 32234 bytes (98.4% Full)
(.text + .data + .bootloader)
Data: 248 bytes (12.1% Full)
(.data + .bss + .noinit)
EEPROM: 738 bytes (72.1% Full)
(.eeprom)
これらのいずれかが100%を超えている場合、ファームウェアではあまりにも多くの有効化があり、機能しません。
ファームウェアをフラッシュするには、3つのファイルが必要です。上から2つのファームウェアファイル、およびcomponenttester.cfg。最後のファイルには、Atmega328pのヒューズの構成が含まれています。ヒューズ構成はMakeFileから抽出されます。ヒューズが何を意味するかを確認するには、このオンライン計算機を使用できます。
AY-ATは、箱から出るファームウェアをサポートしていません。それには2つの方法があります。
最初のオプションでは、トランジスタテスターにこれ以上の変更を必要としませんが、ファームウェアを更新するたびにソケットからチップを削除し、プログラマに挿入する必要があります。
Linux用のMiniproオープンソースソフトウェアとともに、TL866IIとユニバーサルプログラマーを使用しています。使用方法の詳細については、https://github.com/blurpy/miniproを参照してください。
プログラマにチップを使用して、これらのコマンドを実行するだけです。
minipro -p "ATMEGA328P@DIP28" -E
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e
それはそれであるべきです。
もう1つのオプションは、回路基板の背面にピンをはんだ付けして、回路のファームウェアをフラッシュできる欠落しているICSPヘッダーを追加することです。前もって作業しますが、ファームウェアを頻繁に更新する場合は非常に便利です。
このような直角ヘッダーピンを追加しました:
これはピンアウトです(上記と比較してミラーリング):
プログラマーとしてArduino UNOを使用してこの例のように、ICSPヘッダーでフラッシュするために使用できる多くの異なるデバイスがありますが、次のピンアウトでICSPモードもサポートするため、上記のTL866IIプラスを使用します。 :
トランジスタテスターとプログラマーとプログラマーの間にワイヤーが接続されている場合、これらのコマンドを実行するだけです。
minipro -p "ATMEGA328P@DIP28" -E -i
minipro -p "ATMEGA328P@DIP28" -c data -w ComponentTester.eep -e -i
minipro -p "ATMEGA328P@DIP28" -c code -w ComponentTester.hex -e -i
minipro -p "ATMEGA328P@DIP28" -c config -w ComponentTester.cfg -e -i
それはそれであるべきです。
これは、新しいファームウェアをフラッシュした後の完成した結果です。
既知の作業ファームウェアに復元する場合は、元のファームウェアをここに見つけることができます。
私は最初、コンパイルステップの後に出力に注意を払っていませんでした。
AVR Memory Usage
----------------
Device: atmega328
Program: 34784 bytes (106.2% Full)
ファームウェアをフラッシュするのは正常に動作しましたが、テスターを起動しようとすると、画面上ですぐに白くフラッシュしてからオフになります。最初はハードウェアの問題だと思いましたが、元のファームウェアをテストするときは機能しました。このファームウェアで十分な機能を無効にして100%を下回ると、メモリも正常に機能しました。
コンパイルおよびフラッシュする前にconfig_328.h
で画面を構成するのを忘れたとき、テスターは電源が削除されるまで白い画面をオンにして表示します。正しい構成を追加して再試行することで簡単に修正できます。
新しいファームウェアをフラッシュした後、READMEで説明されている手順に従って自己調整を実行することをお勧めします。
手順の短い概要:
Adjustment
選択しますSave
を選択し、スロット#1を選択しますプローブを短くするように求められたとき、私はテストポイント1とテストポイント2の間、およびZIFソケットのテストポイント2とテストポイント3の間に短いパンボードワイヤーを使用しました。